dx_*_*_dt 3 operating-systems parallel-processing task-scheduler
我从未完全理解计算机如何在不使用其所有处理能力的情况下运行。(这种混乱可能源于大学里可怕的操作系统课程。)
据我所知,一个线程(例如操作系统的调度程序)必须在任何给定的时间点做某事。如果有什么可以做,它只是循环,直到有是事做。我认为,这种性质的循环总是尽可能快地运行,这会耗尽处理器的所有计算能力。
我猜我的误解是一个错误的假设,即“如果无事可做,它就会循环”。但是,我不知道它还能做什么。
计算机具有硬件计时器,可用于在经过特定时间长度时向处理器发出信号。一个这样的项目是高精度事件计时器 (HPET),在历史上,甚至 RTC 也可以实现类似的目的。
CPU 还能够使用 HLT 指令暂停执行单元并有效地使自己进入睡眠状态。没有循环运行,并且出于所有意图和目的,除了等待中断线被断言的硬件之外,CPU 已经死了。
处理器不是通过循环进行自旋等待,而是简单地告诉硬件在特定时间过去时向它发出警报,然后让核心执行单元进入睡眠状态。一旦时间过去,定时器就会发出一个中断,从而唤醒 CPU 并重新开始执行。
诸如 RTC 之类的低精度计时器将以类似的方式工作,对于每个滴答数,您检查每个滴答声的计数并休眠直到下一个滴答声出现。这是一种实现等待状态的成本相对较低(处理器功率明智)的方法。
| 归档时间: |
|
| 查看次数: |
893 次 |
| 最近记录: |