システム管理
キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 

ページサイズの定義について

mikie
時折のコントリビューター

ページサイズの定義について

プロセスのサイズをpsコマンドで調べようとしています。

psで表示されるSZの値はページ単位で、manでps(1)を見るとページサイズはヘッダーファイルで_SC_PAGE_SIZEによって定義されていると書かれていたので調べみたところ、

『# define _SC_PAGE_SIZE 3001 /* PAGE_SIZE: Software page size */』

と定義されていました。これは1ページ3001バイトということでしょうか?

本フォーラムの以前の質問を調べていたら1ページは=4KBというのを見つけました。私の調べたオンラインマニュアルの記述はどう考えればよいでしょうか?

ご存知の方がいたら教えてください。よろしくお願い致します。
3 件の返信
hiroomi
頻繁なアドバイザー

ページサイズの定義について

sysconf(2)の方を見ると分かりますが、_SC_PAGE_SIZEというのはsysconfに渡す引数で、3001がその値です。この引数でsysconfを実行するとPAGE_SIZEを返り値として得られます。

例)

#include

main(){

printf("PAGE_SIZE:%d(KB)\n",sysconf(3001));

}

hiroomi
頻繁なアドバイザー

ページサイズの定義について

すみません。上の訂正です(KB) → (Byte)

ページサイズは可変なので、システムによって違う値になるかもしれませんが、デフォルトでは4096Byte(4KB)になると思います

mikie
時折のコントリビューター

ページサイズの定義について

ありがとうございます。

教えて頂いたプログラムを実行してみたところ4096の値が返ってきました。

psのオンラインマニュアルって不親切ですね。ともかくページサイズの値がわかったのでプロセスサイズを調べられます。ありがとうございました。