6

Linuxでのコマンドの出力からの列のzero (deleted)下の意味は何ですか? とどう違うの?マニュアルページからは何も見つかりませんでした。Mappingpmap -x pidanon

Address   Kbytes     RSS   Dirty Mode   Mapping
adf00000     132      36      36 rw---    [ anon ]
adf21000     892       0       0 -----    [ anon ]
ae0ff000       4       0       0 -----    [ anon ]
aea69000     504       0       0 rw-s-  zero (deleted)
aeae7000       4       0       0 -----    [ anon ]
aeae8000    8192      24      24 rw---    [ anon ]
af2e8000   65536   11968       0 rw-s-  apc.eEfjkY (deleted)
b32fd000     236       8       0 r-x--  libxslt.so.1.1.26
b3338000       4       4       4 rw---  libxslt.so.1.1.26
4

1 に答える 1

3

列の下の「 sshared 」で示されるマッピングが削除済みとして表示されていることがわかります。プロセスによって使用される共有メモリ領域は 1 回だけカウントされる必要があるため、呼び出しのフラグによって宣言された共有マッピングは、pmap で削除済みとして表示されます。modeMAP_SHAREDmmap

ゼロに関しては、ファイルによってサポートされていないすべてのマッピングがzero初期化されます。Linux は、データが書き込まれるときにのみメモリを割り当てることがわかっています。

したがって、共有されていて初期化されていない (プロセスによってデータが書き込まれていない) 領域は、pmap によって として認識されzero(deleted)ます。

また、 を削除しMAP_SHAREDて say に置き換えるとMAP_PRIVATE

addr = mmap(NULL,4096,PROT_READ | PROT_WRITE,MAP_ANON|MAP_PRIVATE,-1,0)

ゼロ (削除) は pmap 出力に表示されなくなります。

于 2013-04-20T13:45:18.630 に答える