谁在OS中安排调度程序 - 这不是一个鸡蛋和鸡蛋的场景吗?

时间:2010-02-12 08:10:39

标签: operating-system scheduling scheduler rtos

谁安排调度程序?

创建的第一个任务是什么?第一个任务是如何创建的?它不需要任何资源或内存吗?是不是像鸡蛋和鸡蛋一样?

调度程序不是一项任务吗?是否在每个时间片结束时获取CPU来检查哪个任务需要给CPU?

是否有任何良好的联系使得一个人能够深入思考和理解所有这些概念,而不是泄露出一些需要被理解的理论?

2 个答案:

答案 0 :(得分:14)

调度程序由

安排
  • 一个(外部)事件,如中断,(磁盘完成,鼠标点击,计时器勾选)
  • 或内部事件(例如线程的完成,线程发出的需要等待某事的信号,或者发布了资源的线程的信号,或线程执行的陷阱)像零除零的非法事物)

简而言之,它可能由任何可能需要运行的任务集和/或要重新评估这些任务的优先级的事件触发。调度程序决定下一个运行的任务,并将控制权交给下一个任务。

通常,调度程序的这种“调度”是由与硬件中断相关的代码或与系统调用相关的代码引起的。

虽然您可以将调度程序视为真正的线程,但实际上它不需要以这种方式实现...因为它的执行优先级高于任何其他任务。事实上,复杂的操作系统可能会留出一个 调度程序的特殊线程,并在调度程序获得控制权时将其标记为忙。这很漂亮,但调度程序没有安排虚假线程

可以有多个调度程序:最高优先级的调度程序(例如,我们刚才描述的调度程序),以及其他真正是线程的调度程序,并像其他用户任务一样运行。这种较低优先级的调度程序倾向于用于管理以更长的时间间隔发生的操作,例如后台作业。

答案 1 :(得分:0)

通常由定时CPU中断定期调用