首先,采用单处理器系统,其中多个进程以伪并行方式运行。当进程触发页面错误时,这是否会强制CPU停止执行所有程序,直到从磁盘加载页面为止?
如果是这样,这会在多核或多处理器系统上发生变化,还是在处理页面错误时其他进程是否可以继续读取和写入内存?
谢谢!
答案 0 :(得分:6)
首先,调度不适用于进程,但适用于线程。页面错误仅挂起发生故障的线程(在Linux和Windows上)。线程被取消预定,CPU可以自由地做其他工作。
在OS接口硬件级别,无论如何都没有同步IO。它不存在(至少在现代硬件上)。操作系统不会处于紧密的自旋循环中,等待硬件发出IO完成信号。相反,线程被取消调度,直到IO完成(或相应的等待句柄发出信号)。
答案 1 :(得分:1)
是的,这根本不是问题。没有人能够设计出一个无法运行多个进程的多进程操作系统,也不会随意阻止进程A,因为B正在等待磁盘I / O.