それは言う
p: SWAP -- Swapped size (kb)
The non-resident portion of a task's address space.
q: RES -- Resident size (kb)
The non-swapped physical memory a task has used.
RES = CODE + DATA.
さて、「非居住者の部分」とはどういう意味ですか?
SWAPはハードドライブを追加メモリと呼びますか?
答え1
はい、スワップとは、RAMがいっぱいになったときにハードドライブを使用してメモリを節約することを意味します。 Linuxでは通常、別々のスワップパーティションに保存されますが、ファイルを使用できます。 MacとWindowsは通常のファイルシステムのファイルを使用します。このように余分なメモリをディスクにページングすると、オペレーティングシステムが実際のRAMを解放するためにプロセスを終了する必要がなくなります。これがLinuxインストール用のスワップパーティションを設定することが推奨される理由です。しかし、実際のRAMよりもはるかに遅いので、最後の手段としてのみ使用されます(そしてスワップで送信されるページ(4kBメモリブロック)を把握するのに時間がかかりすぎる理由)。
答え2
設定されたページングデバイスに加えて、スワップはmmapを使用してマッピングされたファイルのページも計算します。これらのページは、プログラムが参照するときにのみ物理RAMにロードされます。これらのページは、ページアウトが必要な場合、スワップデバイスではなく元のファイルにページアウトされます。
paxdiabloはこれについて次のように説明します。https://stackoverflow.com/questions/1972765/mmap-problem-allocates-huge-amounts-of-memory
または、mmap のマニュアルページを参照してください。