用户模式和内核模式:同时使用不同的程序



是否有可能一个进程同时在内核模式下运行,另一个进程在用户模式下运行?

我知道,这不是一个编码问题,但如果有人知道答案,请指导我。

要使两个进程实际同时运行,必须有多个 CPU。事实上,当你有多个CPU时,在不同CPU上运行的东西是非常隐蔽的耦合,你绝对可以让一个进程在一个CPU上运行用户代码,而另一个进程在另一个CPU上运行内核代码(例如,在系统调用中做一些工作)。

如果您只询问一个 CPU,在这种情况下,您不能同时有两个正在运行的进程。但是你可以有两个可运行的进程,这意味着两个进程都准备好运行,但由于只有一个CPU,只有一个可以实际运行。其中一个可运行的进程可能处于用户模式 - 例如,考虑一个长时间运行的紧循环,该循环在其时间配额结束后被抢占。另一个可运行的进程可能处于内核模式 - 例如,考虑一个从磁盘执行 read() 系统调用的进程,内核将读取请求发送到磁盘,但读取请求已完成,因此现在进程已准备好在内核模式下再次运行并完成 read() 调用。

是的,这是可能的。甚至多个进程也可以同时处于内核模式。

只是单个进程不能同时处于两种模式。

纠正我,但我想内核模式下没有任何进程,只有线程。

最新更新