【发布时间】:2018-06-05 13:06:06
【问题描述】:
我曾经认为一个进程可以通过系统调用从用户态切换到内核态,内核例程执行完后,它会在返回用户态之前检查是否有其他优先级更高的进程,如果没有,它将直接返回用户模式。但是Understanding the Linux Kernel, 3rd Edition 1.6.1。进程/内核模型让我很困惑:
在单处理器系统上,一次只运行一个进程,并且 它可以在用户模式或内核模式下运行。如果它在内核中运行 模式下,处理器正在执行一些内核例程。图 1-2 说明了用户模式和内核模式之间的转换示例。 用户模式下的进程 1 发出系统调用,之后进程 切换到内核模式,系统调用得到服务。过程 1 然后在用户模式下恢复执行,直到发生定时器中断, 并且调度程序在内核模式下被激活。进程切换需要 位置,进程 2 开始在用户模式下执行,直到 硬件设备引发中断。由于 中断,进程 2 切换到内核模式并为 中断。
下面的描述没有意义
进程 1 然后在用户模式下恢复执行,直到定时器中断 发生,调度程序在内核模式下被激活。
我认为返回用户模式与中断有关,“调度程序在内核模式下激活”是什么意思?
【问题讨论】:
标签: linux-kernel system-calls context-switch