1

全て。

以下のコードのように、プロセス A が大量のページを割り当てたとします。
そして、process'A はこのコードを定期的に実行するため、メモリ リークが発生します。

 // allocates 1Mb
for(i=0;i<10;i++)
{
  page_p=alloc_pages(gfp_mask, 8);
}

ところで、空きページなしでプロセスを強制終了した後、割り当てられたページはどうなりますか?
割り当てられたページは永続的にリークされますか?

4

1 に答える 1

0

Linux には、プロセスごとのメモリ マップである仮想メモリがあります。プロセス メモリはこのマップから割り当てられ、OS はこのメモリを物理メモリ (RAM またはスワップ) にマップします。

プロセスが終了すると、OS はプロセスのメモリ マップを削除し、別のプロセスがそれを再利用できるようにします。したがって、リークされたメモリは、プロセスが実行されているときにのみリークされます。

于 2013-11-15T07:17:53.380 に答える