内核调度程序如何知道时间片已过去?

亚当·汤普森

在我之前的问题中,内核调度程序如何知道如何抢占进程?我得到了关于抢占如何发生的答案。

现在我想知道,内核调度程序如何知道时间片已过去?我阅读了对我来说有意义的硬件计时器解决方案,但是随后我了解到,大多数当前的操作系统(例如Windows,Linux等)使用硬件计时器,而是使用软件计时器。

一旦进程占用了时间片(例如,它没有抢占自己的时间片),如何使用软件计时器来抢占该进程。似乎有些硬件计时器是必需的?

斯蒂芬·基特

似乎需要一些硬件计时器?

是的,内核依靠硬件定期产生中断。在PC上,从历史上看,这是8253/8254可编程间隔计时器或其仿真,然后是本地APIC计时器,然后是HPET

当前的Linux内核可以构建为在可能的情况下“滴答作响”地运行:内核将对计时器进行编程,使其仅在必要时触发,并且如果给定的CPU在运行单个进程,则可能“永不”。在大多数情况下,使用的是动态滴答,因此内核会根据其要求将计时器设置为在不同的间隔触发—更少的中断意味着更少的唤醒,这意味着空闲的CPU可以在低功耗模式下保持更长的时间,这节省能源。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

内核调度程序如何知道如何抢占进程?

来自分类Dev

如何更改Linux CPU调度程序使用的时间片的长度?

来自分类Dev

如何查看Python中的时间点已过去

来自分类Dev

jQuery-Onclick-提醒已过去的时间

来自分类Dev

如何知道用户使用我的应用程序时是否已经过去了一段时间?

来自分类Dev

如何使用JavaScript中的时区检查打开到关闭时间是否已过去

来自分类Dev

调度程序会调度内核线程吗?

来自分类Dev

如何检查是否已过去3天

来自分类Dev

了解Linux内核调度程序

来自分类Dev

如何让我的Luigi调度程序使用带有并行调度标志的多个内核?

来自分类Dev

知道时间是否已经过去python

来自分类Dev

Linux调度:时间片和量子概念

来自分类Dev

GPU上的CUDA内核调度程序

来自分类Dev

如何在Ubuntu 17.10内核4.13中启用Kyber调度程序?

来自分类Dev

如何在内核引导命令行上指定多个调度程序?

来自分类Dev

内核如何知道哪些驱动程序属于哪些外围设备?

来自分类Dev

模拟时间和Akka调度程序

来自分类Dev

调度程序中的时间跨度

来自分类Dev

Linux pthread互斥锁和内核调度程序

来自分类Dev

Linux pthread互斥锁和内核调度程序

来自分类Dev

阻止调度程序在FreeBSD上使用某些内核

来自分类Dev

抑制Linux内核调度程序中的进程(不终止)

来自分类Dev

如何检查特定时间是否过去

来自分类Dev

如何检索过去某个时间的标签数量

来自分类Dev

内核已过时

来自分类Dev

Kubernetes的调度程序如何工作?

来自分类Dev

当线程实际执行时,POSIX线程与内核的完全公平调度程序的调度策略

来自分类Dev

Databricks Notebooks-如何知道哪个内核

来自分类Dev

如何知道在内核中启用什么?

Related 相关文章

热门标签

归档