微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

处理器在什么时间间隔比较 SRTF 算法中的进程和它们的突发时间?

如何解决处理器在什么时间间隔比较 SRTF 算法中的进程和它们的突发时间?

我正在研究操作系统,并且一直在学习调度算法。我正在使用最短剩余时间优先 (SRTF) 算法(SJF 的抢占版)并有一个小疑问。大多数示例都能够解释分配和抢占发生的过程,我已经掌握了这一部分。但是我一直无法弄清楚处理器实际上在什么时间间隔检查/比较进程。就像现实中一样。是每一秒吗?如果是,那不是非常低效吗?请帮我弄清楚这个概念。

解决方法

这是个好问题。实际上,您遇到了许多近期操作系统研究探索的主要痛点。

如你所说,如果算法每秒钟都检查一次,那么算法就不会很有效。如果算法检查过于频繁(例如,每隔几微秒),则算法可能会浪费大量时间进行检查,而这些时间可用于运行进程。

对于标准内核调度程序(例如 Linux CFS),检查通常发生在以下两个点:

  1. 每当一个正在运行的进程产生、阻塞、死亡等,这会导致调度程序被调用。
  2. 每当收到定时器中断时。时间段是可配置的,但人们通常将时间段设置为几毫秒。

实现 SRTF 算法的内核也可能会检查这些点。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。