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

什么时候SJF比FCFS差?

王曜文
2023-03-14

在同时处理大量任务的超级计算机操作系统中,是否存在SJF策略比FCFS策略花费更长的时间的情况,说到等待时间指标?

可以假设系统中存在不止一个内核。

共有1个答案

郑宏朗
2023-03-14

首先我认为这是不可能的,然后我花了一些时间终于得出了这个结果:

是的,它可能是。

假设就绪队列充满了具有相等突发时间(all=x)的进程:

Process    Burst time
 P1          x
 P2          x
 P3          x
 P4          x
 .           .
 .           .
 .           .
 Pn          x

现在,在这种情况下,FCFS会做什么,先来的进程将被分配CPU,然后先来的下一个进程将被配置CPU,以此类推,而不会浪费任何时间。

但是 SJF 要做的是:它将首先从就绪队列中的可用作业中找到突发时间最短的作业,在这种情况下,这是浪费时间,因为所有作业都有相同的突发时间,SJF 最终会遍历就绪队列而没有任何富有成效的结果。

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

  • 问题内容: 我听说在某些情况下,由于JIT优化,Java程序或Java程序的某些部分比C ++(或其他预编译的代码)中的“相同”代码执行得更快。这是由于编译器能够确定某些变量的范围,避免某些条件并在运行时提取类似的技巧。 您能否举一个(或更佳的)例子,在哪里适用?也许概述了编译器能够优化字节码的确切条件,超出了预编译代码的范围? 注意: 此问题 不是 关于将Java与C ++进行比较。关于JIT编

  • 问题内容: 我是这方面的初学者。 我研究过,,和并行线程。 我注意到,这将创建一个线程,这比使用创建新进程要少。另外,线程将与父进程共享文件描述符,内存等。 但是,当是和比并行线程更好?您能举个真实的例子给我解释一下吗? 提前致谢。 问题答案: (和公司)的优缺点是,他们创建了一个新流程,该流程是现有流程的克隆。 正如您所指出的那样,这是一个弱点,因为创建新流程会产生相当大的开销。这也意味着进程之

  • 这里的Better可能意味着更快或更容易阅读/更短的语法,也可能意味着该命令甚至不能在中执行。 我不经常使用,我想知道是否有我应该使用的情况。因为我不经常使用它,所以我能想到的唯一示例是,据我所知,它没有模拟,而且我看到的所有其他示例都在和中完成smth,后者更快、更容易阅读/更紧凑。

  • 本文向大家介绍什么时候用delegate,什么时候用Notification?相关面试题,主要包含被问及什么时候用delegate,什么时候用Notification?时的应答技巧和注意事项,需要的朋友参考一下 答:delegate针对one-to-one关系,并且reciever可以返回值 给sender,notification 可以针对one-to-one/many/none,recieve

  • 问题内容: 奇怪的是: 似乎或多或少被定义为。通过这种方式很容易产生错误: 一些fname意外地以else块结尾。修复很简单,我们应该改用它,但是从表面上看,这似乎是一种不错的pythonic方式,并且比“正确”的方式更具可读性。 由于字符串是不可变的,所以为什么字符串错误是什么技术细节?什么时候进行身份检查更好,什么时候进行平等检查更好? 问题答案: 据我所知,检查对象身份是否相等。由于没有强制