(我主要是从计算机科学的角度来问下面几个操作系统问题。下面如果需要具体说操作系统,我主要讲的是linux)
进程被定义为一个或多个程序的执行。
然而,我们经常区分用户程序和操作系统内核(也由程序组成)。
一个进程是否只执行用户程序,而不是操作系统内核中的程序?
当一个进程发出系统调用时,cpu然后从用户模式切换到内核模式并执行内核代码中的系统调用处理程序。系统调用处理程序(作为内核代码的一部分)的执行是进程的一部分,还是操作系统内核执行的一部分?
谢谢。
(我主要是从计算机科学的角度来问下面几个操作系统问题。下面如果需要具体说操作系统,我主要讲的是linux)
进程被定义为一个或多个程序的执行。
然而,我们经常区分用户程序和操作系统内核(也由程序组成)。
一个进程是否只执行用户程序,而不是操作系统内核中的程序?
当一个进程发出系统调用时,cpu然后从用户模式切换到内核模式并执行内核代码中的系统调用处理程序。系统调用处理程序(作为内核代码的一部分)的执行是进程的一部分,还是操作系统内核执行的一部分?
谢谢。
在大多数操作系统中,“内核”在进程的上下文中执行。有些工作方式不同,但这是一般机制的使用。进程在用户模式和内核模式之间切换(某些系统还有其他模式)。
一个进程是否只执行用户程序,而不是操作系统内核中的程序?
操作系统内核中没有程序(通常)。进程可以在内核模式下执行中断和异常处理程序。
当一个进程发出系统调用时,cpu然后从用户模式切换到内核模式并执行内核代码中的系统调用处理程序。系统调用处理程序(作为内核代码的一部分)的执行是进程的一部分,还是操作系统内核执行的一部分?
过程。中断也会发生同样的事情。
Bill 执行 I/O 请求。Jim 的进程开始运行。Bill 的 I/O 请求完成并触发中断。Jim 的进程进入内核模式并处理 Bill 的 I/O 请求。
当然,系统安全性会阻止 Jim 的用户模式代码对 Bill 的数据进行任何访问。