谁安排调度程序?
这是创建的第一个任务以及如何创建第一个任务?它不需要任何资源或内存吗?不像鸡蛋和鸡蛋的情景?
调度程序不是一项任务吗?是否在每个时间片结束时获取CPU来检查哪个任务需要给CPU?
是否有任何良好的联系使得一个人能够深入思考和理解所有这些概念,而不是泄露出一些需要被遗忘的理论?
调度程序由
简而言之,它可能由任何可能需要运行的任务集和/或要重新评估这些任务的优先级的事件触发。调度程序决定下一个运行的任务,并将控制权交给下一个任务。
通常,调度程序的这种“调度”是由与硬件中断相关联的代码或与系统调用相关联的代码引起的。
虽然您可以将调度程序视为真正的线程,但实际上它不需要以这种方式实现...因为它的执行优先级高于任何其他任务。事实上,复杂的操作系统可能会留出一个特殊的线程作为调度程序,并在调度程序获得控制权时将其标记为繁忙。这使它很漂亮,但调度程序没有安排虚假线程
可以有多个调度程序:最高优先级的调度程序(例如,我们刚刚描述的调度程序),以及其他真正是线程的调度程序,并像其他用户任务一样运行。这种较低优先级的调度程序倾向于用于管理以更长的间隔发生的动作,例如后台作业。
它通常由定时CPU中断定期调用