在 UNIX 中,当在内核模式下执行的进程需要读取磁盘时,它会进入睡眠状态。当磁盘读取完成时,硬件中断 CPU 并且中断处理程序唤醒进程。那么现在,当这个进程最初进入睡眠状态时,交换进程可以把这个进程交换到交换设备吗?
这个问题可能看起来很幼稚。但是我不太清楚一个进程何时执行哪些转换。任何具有非常清晰描述的页面也受到欢迎。
提前致谢
在 UNIX 中,当在内核模式下执行的进程需要读取磁盘时,它会进入睡眠状态。当磁盘读取完成时,硬件中断 CPU 并且中断处理程序唤醒进程。那么现在,当这个进程最初进入睡眠状态时,交换进程可以把这个进程交换到交换设备吗?
这个问题可能看起来很幼稚。但是我不太清楚一个进程何时执行哪些转换。任何具有非常清晰描述的页面也受到欢迎。
提前致谢
是的,它可以。但是,它几乎不会,因为虚拟内存管理器的一个非常基本的实现会考虑将引用的局部性作为一种方法——并且该进程可能是系统中最近管理的数据。
您指出的这一事实的退化,即进程可能从主内存中取出并交换的情况,称为thrashing。