执行内核代码以处理来自进程的系统调用是否被视为进程的一部分



(我主要从计算机科学的角度问以下操作系统问题。在下面,如果我需要具体介绍操作系统,我主要说的是linux)

进程定义为一个或多个程序的执行。

然而,我们经常区分用户程序和操作系统内核(也由程序组成)。

  • 进程是否只执行用户程序,而不执行操作系统内核中的程序?

  • 当进程发出系统调用时,CPU 会从用户模式切换到内核模式,并在内核代码中执行系统调用处理程序。系统调用处理程序(作为内核代码的一部分)的执行是进程的一部分,还是操作系统内核执行的一部分?

谢谢。

在大多数操作系统中,"内核"在进程的上下文中执行。有一些工作方式不同,但这是一般机制的使用。进程在用户模式和内核模式之间切换(某些系统具有其他模式)。

进程是否只执行用户程序,而不执行操作系统内核中的程序?

操作系统内核中没有程序(通常)。进程可以在内核模式下执行中断和异常处理程序。

当进程发出系统调用时,CPU 会从用户模式切换到内核模式,并在内核代码中执行系统调用处理程序。系统调用处理程序(作为内核代码的一部分)的执行是进程的一部分,还是操作系统内核执行的一部分?

过程。中断也会发生同样的事情。

比尔执行 I/O 请求。吉姆的过程开始运行。比尔的 I/O 请求完成并触发和中断。Jim 的进程进入内核模式并处理 Bill 的 I/O 请求。

当然,系统安全性会阻止 Jim 的用户模式代码访问 Bill 的数据。

最新更新