【发布时间】:2019-08-23 13:04:48
【问题描述】:
我在听操作系统讲座,被这两个短语弄糊涂了。
- “当用户进程调用IO时,它会调用系统调用并等待系统调用完成”
- “当用户进程调用系统调用时,用户进程本身在内核模式下执行内核函数”
我认为用户进程调用系统调用来使用 IO,内核执行内核指令,而内核正在运行用户进程等待直到 IO 进程完成。所以我认为短语2一定是错误的。但教授说两者都是正确的。有人可以帮我理解为什么吗?
【问题讨论】:
-
“用户进程调用系统调用来使用 IO,内核执行内核指令” - 内核在某个进程的上下文中执行指令。在许多操作系统中,用户进程和处理系统调用的内核进程是相同的进程。这就是为什么第二个短语也是正确的。
-
@Tsyvarev 让我说清楚。从进程来看,内核指令是在同一个进程中执行的,所以第二句话是正确的?
-
是的,正是如此。