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

时间:2019-04-29 16:02:08

标签: unix operating-system kernel usermode user-mode-linux

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

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

2 个答案:

答案 0 :(得分:2)

要使两个进程实际上同时运行,您必须有多个CPU。实际上,当您有多个CPU时,运行在不同CPU上的耦合非常松散,您肯定可以让一个进程在一个CPU上运行用户代码,而另一个进程在运行内核代码(例如,在系统调用中做一些工作)在另一个CPU上。

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

答案 1 :(得分:1)

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

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