それらは常に4kBの時間ですか?
すべての
Sizes
を合計するとどれくらい大きいスマップで?
回答 2 件
smaps プロセスで使用されるメモリページが含まれます。proc マニュアルページ:
man 5 proc
したがって、Rssブロックの合計サイズは、ホストのRAMより大きくありません。 仮想メモリの合計サイズは、CPUデータバスサイズによって制限されます。ただし、64ビットCPUでは、64行すべてが使用されるわけではないため、アドレス可能なスペースの実際のサイズは、cpuinfo:
cat /proc/cpuinfo | grep 'address'
次のようなものを出力します
address sizes : 39 bits physical, 48 bits virtual
ここで、「physical」はサポートされる物理RAMサイズであり、「virtual」は仮想メモリのアドレス指定に使用される最大ビットです。したがって、2 ^ 48はCPUの最大アドレス可能スペースであり、プロセスの仮想メモリの最大合計です。
サイズは、RAMページサイズの時間です。
RAMページサイズは次の方法で確認できます。
getconf PAGESIZE
通常は4096です。
関連した質問
- mesonからmakefileコマンドを実行しますか?
- コマンドライン引数を使用して印刷する
- これらの答えのうち、Ubuntu 1404 LTSのO_RDWRに相当するものはどれですか?
- カスタム/ dev /ファイルに書き込まれた文字列を取得する
- get_user内のユーザースペースの逆参照が正しいのはなぜですか?
- muslでコンパイルすると: '再配置エラー:secure_getenv:シンボルが見つかりません '
- WindowsとLinuxの間でmalloc()とfree()の動作にこの違いが生じる原因は何ですか?
- 複数のターゲットが同じ依存関係
- `struct siginfosi_int`を送信するには、SI_QUEUEを使用してカーネルからリアルタイム信号を送信する必要がありますか?
- fscanfを使用して/ sys/class/Thermal /内のファイルから温度を読み取ると、同じ値が永久に返され続けます
メモリのページサイズがあります。または4096または8192バイト(または他の何かでさえも不明です)。通常は
sysconf(_SC_PAGESIZE)
で決定できます または、事前定義されたPAGE_SIZE
を使用します 利用可能な場合はマクロ。すべての
Size
の合計の上限 entriesは、仮想アドレス空間全体のサイズ、つまり2^32
です。 32ビットシステムおよび2^64
のバイト 64ビットの場合はバイト。 もちろん、少なくともカーネルはアドレス空間の一部を占有し、それが/proc/<pid>/smaps
で報告されないため、実際のケースは少なくともこの制限を常に下回っています。 。