【发布时间】:2017-05-06 05:17:27
【问题描述】:
根据我的理解,CPU 有一个“硬件计时器”,它会在其间隔到期时触发中断。
内核使用这个硬件定时器来实现进程的调度机制,所以如果硬件定时器触发一个编号为123的中断,内核会将这个中断编号映射到一个执行调度程序代码的中断处理程序中(这将决定接下来执行哪个进程)。
我有两个问题:
- 内核是否可以设置硬件定时器的时间间隔,或者该时间间隔是一个不能通过编程改变的固定数字?
- CPU 是否有专用的硬件定时器用于调度,或者有很多硬件定时器,内核可以选择它想使用的任何一个定时器来进行调度?
编辑:我比较感兴趣的硬件架构是PC,但我想知道其他架构(例如:手机,树莓派) PI 等)以类似的方式工作。
【问题讨论】:
-
我认为这两个问题的答案都是肯定的,但细节是特定于计算机的(在 PC 笔记本电脑和 RaspBerry Pi 上可能会有所不同)。您需要明确您正在谈论的特定硬件架构。所以编辑你的问题来改进它
-
@Basile Starynkevitch 我编辑了我的问题。
-
'内核使用这个硬件定时器来实现进程的调度机制'很好,这实际上是经济的:)它更像是'内核使用这个硬件定时器来超时系统调用和当就绪/正在运行的线程多于核心时,共享 CPU。
标签: timer operating-system kernel cpu scheduling