Operating system 什么是调度程序延迟?

Operating system 什么是调度程序延迟?,operating-system,scheduling,scheduler,multitasking,Operating System,Scheduling,Scheduler,Multitasking,这似乎是一个基本问题,但我在谷歌上找不到答案 据我所知,调度程序延迟是使任务再次可运行所花费的时间。我的意思是,如果有100个进程,即1,2,e.t.c,那么它们是按照从1开始的顺序执行的。因此,延迟是再次执行进程1的时间。这意味着延迟是进程的等待时间以及它在runqueue中准备执行时的等待时间 或 我误解了整个要点,调度程序延迟只是进程之间的上下文切换时间而已?调度延迟是系统因调度任务而无法生产的时间。这是由于必须花费时间进行调度而导致的系统延迟 具体而言,它包括两个要素: 任务唤醒和实际

这似乎是一个基本问题,但我在谷歌上找不到答案

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


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

调度延迟是系统因调度任务而无法生产的时间。这是由于必须花费时间进行调度而导致的系统延迟

具体而言,它包括两个要素:

  • 任务唤醒和实际运行之间的延迟(“上下文切换时间”)
  • 做出调度程序决策所花费的时间(调度程序的实际作业,它消耗了实际任务无法再使用的资源)

我总是将延迟理解为作业完成所需的时间+该作业等待的时间。@Chris:我总是将延迟理解为作业开始所需的时间。@DavidSchwartz多么奇怪。@Chris:当系统正在处理作业时,它不是潜伏的。当它有工作要做但还没有开始做时,它是潜在的。@DavidSchwartz,这意味着我的理解是正确的?好的,这意味着我误解了整个部分?但是上下文切换延迟是如何增加的,还是取决于进程的数量?它遍历可运行进程的列表,并根据优先级决定要运行的进程。但这会占用这么长的上下文切换时间吗?关键是它基于公平性——所有正在运行的线程和进程都会得到公平的时间分配。调度需要时间,而且算法显然会随着复杂性的增加而变得更昂贵-平衡1000个进程及其优先级意味着调度端比10个更痛苦,并且在该级别丢失的每一个时间片都会无处不在。谢谢!我发现runqueue中进程的等待时间以及上下文切换时TLB条目的刷新也会增加延迟。