java - 计算循环和 fcfs 作业时间

标签 java c multithreading

为什么 fcfs 从 0 99 到 99 到 198

而对于Round robin,我不明白为什么第一个作业完成时间是500。

解释和示例会有所帮助,谢谢 enter image description here

最佳答案

在 FCFS 下,作业 1 的等待时间为 0,因为它在时间 t = 0 时是唯一的作业,因此立即被调度。作业 2 在 t=1 时出现,但在作业 1 在时间 t=100 完成后被调度,这意味着等待 99 秒(t=1 到 t=100)直到它被安排好。类似地,作业 3 在 t=2 时出现,并且仅在作业 1 和 2 完成后才被安排,即在 t=200,这意味着等待 200-2 = 198 秒。

对于循环法,每个作业运行 1 秒并切换上下文。这有条不紊地发生。因此,在作业 1 从 t=0 运行到 t=1 之后,作业 2 从 t=1 运行到 2,作业 3 从 t=2 运行到 3,依此类推,直到作业 1 从 t=5 运行到 t=6。这样,作业 1 在 5 个周期内执行一次。由于 proc 1 总共需要 100 秒,它将在 500 秒时完成。

如果您认为此解释有帮助,请点赞。

编辑:

循环详细信息:

作业 1 运行总计 100 秒,每 block 1 秒,每 block 间隔 4 秒(1(作业 2 的 block )+1(作业 3)+1(作业 4)+1(作业 5))。因此,它在 t=0、t=5、t=10... 时运行,每次仅运行 1 秒,与类似的 1 秒作业 2、3、4、5 的执行交错​​。这样,它的第 100 次也是最后一次执行将在 t=500。

关于java - 计算循环和 fcfs 作业时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15672244/

相关文章:

java解析文本文件并以不同的方式处理每一行

使用 Flex 计算行数

c - 取消共享挂载命名空间未按预期工作

multithreading - 无法从自生成线程访问 FacesContext.getCurrentInstance()

java - 是什么原因导致该按钮崩溃?

java.io.IOException : Posted content length of 1130270 exceeds limit of 1048576

java - 如何通过 https 启动 java servlet?

c - 字符串数组、strcpy 和字符串的问题

c# - 等待直到任务在循环内完成,然后再执行下一行代码

c++ - std::atomic<struct> 是否使所有成员也是原子的?