在多任务操作系统环境中,有时您会听到术语循环调度。 它指的是什么?
那还有什么其他的安排?

===============>>#1 票数:21 已采纳

循环调度

如果您是100位客人的聚会的主持人,循环调度将意味​​着您每位客人花费1分钟(固定金额)。 您将逐个浏览每位客人,100分钟后,您将与每位客人共度1分钟。 更多关于维基百科

还有许多其他类型的日程安排,例如基于优先级(即最先重要的人),先来先服务,最早期限(即最早离开的人),等等。您可以通过谷歌搜索开始用于调度算法或检查维基百科的调度

===============>>#2 票数:7

时间安排是实践中任何循环调度系统固有的,AFAIK。

我不同意InSciTek Jeff的暗示,以下循环调度:

也就是说,可以允许循环旋转中具有相同优先级的每个任务运行,直到它们在轮换到轮换中的下一个任务之前达到资源阻塞条件。

我不知道如何将其视为循环法。 这实际上是抢占式调度。 但是,可以使用具有循环和抢占调度元素的调度算法,如果启用了循环调度和抢占,则VxWorks会执行该调度算法(默认情况下禁用循环法)。 启用循环调度的方法是在kernelTimeSlice中提供非零值。

我同意这个说法:

因此,虽然基于时间的调度意味着循环调度,但是循环调度不需要基于时间的相等时间。

你是对的,它不需要相同的时间。 抢占可以扼杀它。 实际上在VxWorks中,如果任务在循环调度期间被抢占,则当任务再次获得控制时,它将在其分配的剩余时间内执行。

编辑针对InSciTek Jeff(我没有评论权限)是的,我指的是任务锁定/中断禁用,虽然我显然没有表达得那么好。 你的第二条评论是先发制人(哈!)。 我希望能够讨论一个更为突出的观点,即你认为循环调度可以在没有时间切片的情况下存在。 或者你的意思是基于时间相等的时间切片? 我不同意前者,但同意后者。 我渴望学习。 谢谢。

Edit2针对杰夫:

循环可以没有时间限制地存在。 这正是在禁用kernelTimeSlice(零)时VxWorks中发生的情况。

我不同意这个说法。 请参阅本文档第2.2.3节,标题为Round-Robin Scheduling。

循环调度使用时间分片来实现CPU对具有相同优先级的所有任务的公平分配。 在具有相同优先级的一组任务中的每个任务执行定义的间隔或时间片。 通过调用kernelTimeSlice()来启用循环调度,该函数采用时间片或时间间隔的参数。 [...]如果启用了循环调度,并且为执行任务启用了抢占,则系统节拍处理程序会增加任务的时间片计数。

时间周期是循环调度中固有的。 否则,您依赖的任务是放弃CPU控制,循环调度旨在解决。

===============>>#3 票数:3

这里的答案甚至维基百科的文章都描述了循环调度本身就包括周期性的时间限制。 虽然这很常见,但我认为Round-Robin调度和时间排列并不完全相同。 当然,对于有意义的时间限制,在旋转到每个任务时会隐含循环调度,但是您可以进行循环调度而无需进行时间调整。 也就是说,可以允许在循环轮换中具有相同优先级的每个任务运行,直到它们达到资源块条件并且仅在旋转运行中具有下一个任务。 换句话说,当存在相同的优先级任务时,重新安排点不是时间先发制人。

上述想法实际上是在Wind River的VxWorks内核的情况下实现的。 在其优先级方案中,每个优先级的任务都循环运行,但如果没有在内核中专门启用该功能,则不会进行时间片。 这种灵活性的原因是为了避免在一个有限时间内将已知的任务分配到块中的开销。

因此,虽然基于时间的调度意味着循环调度,但是循环调度不需要基于时间的相等时间。

===============>>#4 票数:1

一个观点。 似乎我们将两种机制交织在一起。 假设只有OP的原始断言“在多任务操作系统上下文中”

1 - 循环调度程序始终调度循环队列中的下一个项目。

2 - 调度程序如何重新获得控制以执行调度是独立且无关的。

我不同意2最流行的方法是等待资源的时间切片/产量,但正如已经注意到的还有其他方法。 如果我没有弄错,第一台Mac没有使用时间切片,他们使用自愿产量/产量等待资源(20年以上的脑细胞有时可能是错误的;)。

===============>>#5 票数:0

实际上,你会对先发制人的调度和循环赛感到困惑。 实际RR是抢占式调度的一部分。

===============>>#6 票数:0

循环调度基于时间共享,也称为量子(CPU一次性给予任何进程的最大时间)。 在队列中有多个进程(需要不同的时间来完成aka突发时间),并且CPU必须全部处理它们,以便它在进程之间保持切换,以便根据量子值为每个进程提供相等的时间。 这种类型的调度称为循环调度。 查看此简单视频,轻松了解循环计划: https//www.youtube.com/watch?v = 9hw-_qJ55K4

===============>>#7 票数:0

循环法是一种简单的调度算法,其中时间在没有优先级的作业之间平均分配。

例如 - 如果您正在运行5个进程 - 在允许另一个进程运行之前,每个进程将允许运行1/5个单位时间。 循环法通常易于在OS中实现。

  ask by Benoit translate from so

未解决问题?本站智能推荐:

1回复

我需要一些长期调度程序和短期调度程序的示例

我已经搜索了一些有关调度程序的信息,可以找到许多调度程序算法,但是我找不到哪些是长期调度程序,哪些是短期调度程序。 例如,我知道什么是短期作业优先调度器算法,但是我不知道它是长期调度器还是短期调度器。
1回复

哪个是更有效的抢先式或非抢先式调度程序?

我只是在学习抢先式和非抢先式调度程序,因此我想知道抢先式或非抢先式调度程序哪个更有效? 还是同样有效? 还是他们只是专注于一项任务并且以自己的方式高效?
1回复

打破循环调度

我对Round Robin CPU进程调度的基本概念感到困惑,其中短期调度程序将进程添加到就绪队列中。 如果系统中有3个进程P0,P1和P2,并且P1在5秒时发生上下文切换,同时P2到达(即第5秒)。 在这种情况下,哪个进程将首先插入就绪队列P1或P2? 在这两种情况下,总体平均等待时
1回复

优先权在循环调度中扮演什么角色?

我正在尝试为操作系统类解决以下作业问题: 正在使用抢占式循环调度算法来调度以下进程。 每个进程都分配了一个数字优先级,数字越大表示相对优先级越高。 除了下面列出的过程外,系统还具有一个空闲任务(该任务不占用CPU资源,并且被标识为P idle )。 该任务的优先级为0,并且在系
1回复

循环调度

我在这里有一个关于循环的问题,我想知道这个答案是否正确(这是博士的答案)。 我们应该得到如图所示顺序同时出现的所有进程的平均周转时间,它使用循环时间为5秒的循环 给定答案就是这样 但是我认为那里还有一些额外的时间,所以我的回答是这样的 (26 + 27 + 12 +
1回复

流程调度器

因此,我必须为我的OS类实现一个离散事件cpu调度程序,但是我不太了解它是如何工作的。 我读过的每本说明/教科书总是把事情放在有点太抽象的角度,以至于我无法弄清楚它是如何工作的,也没有把事情放在cpu突发和io突发方面(有些虽然做了,但仍然没有帮助)足够)。 我没有发布任何代码(实际上我
2回复

循环调度程序

我需要使用无法修改的作业类来实现“轮询”调度程序。 循环调度程序应首先处理等待时间最长的作业,然后将计时器重置为零。 如果两个作业的等待时间相同,则首先处理较低的ID。 作业类别仅提供三个值(作业ID,剩余工期和优先级(不需要),每个作业都有一个开始时间,因此在第一个周期中只有几个作业可用
1回复

调度程序类型和调度算法的差异

我已经研究过Job Scheduler的主题,并且有长期,中期和短期调度程序之类的不同类型,最终使他们感到困惑。 所以我的问题是,“在这三个调度程序中,哪种调度程序类型将利用调度算法(例如FCFS,SJF等)” 到目前为止,我的理解是:“ 调度算法将从就绪队列中获取作业(该队列包含要
3回复

在进程调度的上下文中,调度程序和调度程序之间有什么区别

我目前正在攻读操作系统的本科课程。 我对调度程序和调度程序在进程调度中的功​​能感到有些困惑。 基于我所学到的,中期调度程序选择交换和输入的过程,并且一旦选择了过程,实际的交换操作由Dispatcher通过上下文切换执行。 此外,短期调度程序负责根据所遵循的调度算法调度进程并为它们分配CP
1回复

调度程序的工作

Scheduler是一个程序,用于调度OS中的不同进程。 想到的问题是: 由于调度程序也是一个进程,因此它正在通过上下文切换来调度其他进程。 因此,有时调度程序会自动将其与任何其他进程切换。 如果发生这种情况,那么调度将如何进行。 或,如果不是那样,那么它如何工作,就像在多任务