假设进程正在运行并且它调用系统调用。这是否意味着现在将阻止进程。所有系统调用是否阻止进程并将其状态从运行更改为阻止?或者它取决于当时的情景?
答案 0 :(得分:3)
不,这并不意味着该过程被阻止。有些系统调用是阻塞的,有些则不是。但请注意,在内核处理系统调用的持续时间内,当进程继续运行时,您自己的用户代码不会执行,但内核代码正在代表进程执行。
答案 1 :(得分:1)
某些操作系统甚至还有上行调用,其中用户应用程序在某些情况下注册一些内核调用的函数(返回用户空间)。 Unix信号机制是一个非常简单的例子,但是一些操作系统有更复杂的上行调用。
我认为有一些操作系统会在系统调用中触发一些内核处理,这可能会在用户空间中触发一些上调。
我忘记了细节