当前位置: 首页 > 知识库问答 >
问题:

FCFS与SJF与RR

牟辰龙
2023-03-14

在C语言中,假设每个算法被赋予完全相同的一组进程,那么先到先得、最短作业优先和循环之间的周转时间是否相等?还是调度算法不同?

共有3个答案

饶明亮
2023-03-14

与SJF的平均周转时间和平均等待时间相比

苍恩
2023-03-14

SJF的平均周转时间最好,其次是FCFS。相比之下,RR的周转时间最差。

解释:

FCFS调度是最简单的调度算法,但它会导致短进程等待很长的进程(车队效应)。

SJF 调度是对 FCFS 的改进,考虑到进程需要完成的时间长度(CPU 突发)。SJF是可证明的最佳选择,提供最短的平均等待时间。但是,实现 SJF 调度很困难,因为预测下一个 CPU 突发的长度很困难。此外,如果短进程太多,运行时间较长的进程可能会在 SJF 下匮乏。

RR提供了公平问题的解决方案,提供了更好的平均响应时间。然而,这通常是以较高的平均周转时间为代价的。

归根结底,这是平均周转时间和响应时间公平性之间的权衡。

这里有另一个链接可以帮助你:https://homes.cs.washington.edu/~arvind/cs422/lectureNotes/sched-6.pdf

或者,您可以查看以下书籍的第6章CPU调度:

操作系统概念,第9版,Silberschatz、Galvin和加涅

公良泰宁
2023-03-14

通常,实施先到先得 (FCFS) 和最短作业优先 (SJF) 是为了支持周转时间,而实施循环 (RR) 是为了支持响应时间。这通常是一种权衡。这意味着给定相同的流程(也取决于工作负载的类型),SJF 和 FCFS 通常比 RR 具有更好的周转时间,反之亦然,RR 通常比两者具有更好的响应时间。

为了更好地理解这一点,你可以读读http://pages.cs.wisc.edu/~remzi/OSTEP/cpu-sched.pdf

 类似资料:
  • 在同时处理大量任务的超级计算机操作系统中,是否存在SJF策略比FCFS策略花费更长的时间的情况,说到等待时间指标? 可以假设系统中存在不止一个内核。

  • 在上面的例子中,我们假设所有的进程只是CPU绑定进程。但是也忽略了上下文切换时间。 然而,如果考虑调度器在上下文切换中花费的时间,则系统的平均等待时间将增加,这也影响系统的效率。 上下文切换始终是开销。以下示例描述如果在系统中考虑上下文切换时间,效率将受到影响。 示例 在下面的例子中,假设有五个进程:,,,,和。 他们的到达时间和爆发时间如下。 进程ID 到达时间 突发时间 1 0 3 2 1 2

  • 我拿到这张桌子是为了抢先做最短工作 在G之前,它执行前有2秒,我需要包括它吗? 我在回答中用甘特图给出的表格是 我的问题是,是否可以包括F到达之前的等待时间?

  • 主要内容:以下是纠正/补充内容:先来先服务(FCFS)调度算法根据其到达时间简单地调度作业。 就绪队列中第一个工作将首先获得CPU。 工作到达时间越少,工作得到的CPU就越快。 如果第一个进程的突发时间是所有作业中最长的,则FCFS调度可能会导致饥饿问题。 FCFS的优势 简单 容易 先到先得 FCFS的缺点 调度方法是非抢先式的,该进程将运行到完成。 由于算法的非抢先性,可能会出现饥饿问题。 尽管实现起来很容易,但由于平均等待

  • 在基本级别队列的多级反馈调度中,进程以循环方式循环,直到它们完成并离开系统。基本级别队列中的进程也可以按先到先得的方式进行安排。为什么不能将它们安排在最短作业优先 (SJF) 算法而不是先到先得 (FCFS) 算法上,这似乎提高了算法的平均性能。

  • 如果第一个作业的爆发时间是最高的,FCFS可能会受到队列影响。 就像在现实生活中一样,如果队列在路上经过,那么其他人可能会被堵塞,直到完全通过。 这也可以在操作系统中进行模拟。 如果CPU在就绪队列的前端获得较高突发时间的进程,则较低突发时间的进程可能被阻塞,这意味着如果执行中的作业具有非常高的突发时间,则它们可能永远不会获得CPU。 这被称为队列效应或饥饿。 示例 在这个例子中,我们有个进程被命