用户进程正在运行内核功能,或者用户进程在系统调用后等待

时间:2019-04-02 09:02:52

标签: operating-system kernel

我正在听OS讲座,对这两个短语感到困惑。

  1. “当用户进程调用IO时,它将调用系统调用并等待直到系统调用完成”
  2. “当用户进程调用系统调用时,用户进程本身将以内核模式执行内核功能”

我相信用户进程会调用系统调用来使用IO,内核会执行内核指令,而内核正在运行时,用户进程会等待IO进程完成。所以我认为第2句话一定是错误的。但是教授说,两者都是正确的。有人可以帮我理解为什么吗?

1 个答案:

答案 0 :(得分:1)

实际上,两者有时都是正确的。

  

“当用户进程调用IO时,它会调用系统调用并等待直到系统调用完成”

仅当系统服务执行同步I / O时才如此。某些操作系统具有不引起等待的异步I / O调用。

  

“当用户进程调用系统调用时,该用户进程本身将以内核模式执行内核功能”

当系统以内核模式实现其所有系统服务时,这是正确的。某些系统具有多种模式(通常为4种),这些模式允许实现无法使系统崩溃的系统服务。

无论如何,这可能不是同步I / O系统服务调用。在这种情况下,它可能不会等待。如果您调用时间系统服务,则您的进程不太可能会等待。