答案1
一切看起来都很好。
有 2 个空闲内存列表。分别是空闲列表和空闲零列表。当内存首次空闲时,它会进入空闲列表,但这只是暂时的。内核有一个低优先级线程,它将空闲内存清零,然后将其放在空闲零列表中。通常空闲列表中的内存很少。
出于安全原因,内存被清零。进程不允许查看其他进程之前使用过的内存,除非先将其清除。因此,空闲零内存可立即分配给任何进程用于任何目的。空闲列表中的内存只能立即用于代码块,在进程查看之前,这些代码块将被覆盖。如果必须使用空闲列表中的内存,内核必须先将其清零,这需要时间。