【发布时间】:2023-10-02 05:15:01
【问题描述】:
我一直在研究 Linux 内核的子系统。那里写道,Linux 内核负责上下文切换(让另一个进程使用 CPU)。以下是内核执行上下文切换的步骤:
- CPU(实际硬件)基于中断当前进程 在内部计时器上,切换到内核模式,并手动控制 回到内核。
- 内核记录CPU和内存的当前状态, 对于恢复刚刚中断的流程至关重要。
- 内核执行在运行期间可能出现的任何任务 之前的时间片(例如从输入和输出中收集数据, 或 I/O、操作)。
- 内核现在已准备好让另一个进程运行。内核分析 准备运行的进程列表并选择一个。
- 内核为这个新进程准备内存,然后准备 CPU。
- 内核告诉 CPU 新进程的时间片有多长 会持续下去。
- 内核将 CPU 切换到用户模式并控制 进程的 CPU。
我的问题是我无法理解上面的第三步。有人可以解释一下这句话吗?谢谢!
【问题讨论】:
-
用户模式/内核模式(管理员模式)不是由内核关闭/打开,而是由页表条目中的标志确定。 (搜索用户/主管位)。关于第三个子弹,你有什么不明白的?
-
哪些任务可以留给内核稍后执行?这个问题来自“内核执行任何可能在前一个时间片内出现的任务”这句话。
-
每个中断都有自己的句柄,但一个简单的例子是在接收数据时将数据包从内核空间缓冲区复制到用户空间缓冲区。不必处于定时器中断状态
标签: linux linux-kernel operating-system multitasking