当进程将其状态从运行状态更改为非运行状态(就绪、等待等)时,无论是由进程本身还是由调度程序,该进程使用的所有页面并且不与其他正在运行的进程共享的页面是否都从主内存中换出?
或者有没有可能当一个进程没有运行时,该进程使用的、没有与其他正在运行的进程共享的一些页面仍然在主内存中?
谢谢。
答案1
不,通常非运行进程的页面保持原样。仅当内存压力需要时才会将其换出,然后仅换出最近未使用的页面。
大多数进程每秒会多次从运行状态切换到非运行状态,并且大部分时间都处于非运行状态;想象一下,如果所有进程在不运行时被换出,对性能的影响...(如果让桌面环境整夜运行,并且在夜间运行后台作业,这会占用大量内存,您会看到这种情况发生桌面环境中不活动的进程将被换出,并且您必须在早上等待相当长的时间系统才能再次响应。)