system management
1752798 メンバー
6242 オンライン
108789 解決策
新規ポスト

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

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