什么是调度程序延迟?

Joh*_*ohn 3 operating-system scheduling scheduler multitasking

这似乎是一个基本问题,但我在谷歌搜索中找不到任何答案。

据我所知,调度程序延迟是使任务再次可运行所花费的时间。我的意思是,如果有 100 个进程,即 1、2 等,那么它们将按照从 1 开始的顺序执行。所以延迟是进程 1 再次执行的时间。这意味着延迟是进程的等待时间以及它在运行队列中准备执行时的等待时间。

或者

我误解了整点,调度器延迟只是进程之间的上下文切换时间?

Nie*_*jes 5

调度延迟是系统因调度任务而无效率的时间。这是系统延迟,因为它必须花时间进行调度。

具体来说,它由 2 个元素组成:

  • 任务唤醒和实际运行之间的延迟(“上下文切换时间”)
  • 花费在调度器决策上的时间(调度器的实际工作,它消耗了不能再被实际任务使用的资源)

  • [抢占式多任务处理](http://en.wikipedia.org/wiki/Preemption_(computing)#Preemptive_multitasking) 的要点在于它基于公平性 - 所有正在运行的线程和进程都获得了公平的时间分配。调度需要时间,并且算法显然会随着复杂性的增加而变得更加昂贵 - 平衡 1000 个进程及其优先级意味着调度端的痛苦比 10 个更痛苦,并且在该级别丢失的每个时间片随处可见。 (2认同)