最短作业优先调度算法和时间片轮转调度算法例子
时间: 2023-09-05 18:10:39 浏览: 135
最短作业优先调度算法的例子:
假设有三个作业,它们的运行时间分别为10ms、5ms和8ms。那么按照最短作业优先调度算法,应该先运行第二个作业,再运行第三个作业,最后运行第一个作业。这是因为第二个作业是运行时间最短的,其次是第三个作业,最后是第一个作业。
时间片轮转调度算法的例子:
假设有三个进程需要运行,它们的运行时间分别为20ms、30ms和40ms。时间片大小为10ms。那么按照时间片轮转调度算法,应该先运行每个进程的第一个时间片,然后再按照顺序轮流运行每个进程的下一个时间片,直到所有进程都运行完毕。
具体来说,第一个进程第一次运行时能运行10ms,第二次运行时能运行10ms,最后一次运行时能运行剩余的时间,即20ms-2*10ms=0ms。因此,第一个进程总共运行了20ms。
第二个进程第一次运行时能运行10ms,第二次运行时能运行10ms,最后一次运行时能运行剩余的时间,即30ms-2*10ms=10ms。因此,第二个进程总共运行了40ms。
第三个进程第一次运行时能运行10ms,第二次运行时能运行10ms,第三次运行时能运行10ms,最后一次运行时能运行剩余的时间,即40ms-3*10ms=10ms。因此,第三个进程总共运行了50ms。
综上所述,按照时间片轮转调度算法,三个进程的运行时间分别为20ms、40ms和50ms。
相关问题
有三道作业,它们的提交时间及执行时间由下表给出: 作业号 提交时间 执行时间 1 8 3 2 8 4 3 8 1 试计算在单道程序环境下,采用最短作业优先调度算法和时间片轮转调度算法(时间片大小为1)的平均周转时间(时间单位:小时,以十进制进行计算;要求写出计算过程)
首先,我们需要计算出每个作业的完成时间、周转时间和带权周转时间。
按照最短作业优先调度算法,作业的执行顺序为3-1-2。
作业3完成时间 = 提交时间 + 执行时间 = 8 + 1 = 9
作业3周转时间 = 完成时间 - 提交时间 = 9 - 8 = 1
作业3带权周转时间 = 周转时间 / 执行时间 = 1 / 1 = 1
作业1完成时间 = 前一作业完成时间 + 执行时间 = 9 + 3 = 12
作业1周转时间 = 完成时间 - 提交时间 = 12 - 8 = 4
作业1带权周转时间 = 周转时间 / 执行时间 = 4 / 3 = 1.33
作业2完成时间 = 前一作业完成时间 + 执行时间 = 12 + 4 = 16
作业2周转时间 = 完成时间 - 提交时间 = 16 - 8 = 8
作业2带权周转时间 = 周转时间 / 执行时间 = 8 / 4 = 2
平均周转时间 = (1 + 4 + 8) / 3 = 4.33
平均带权周转时间 = (1 + 1.33 + 2) / 3 = 1.44
按照时间片轮转调度算法,作业的执行顺序为1-2-3。
作业1完成时间 = max(提交时间, 前一作业完成时间) + 执行时间 = max(8, 8) + 1 = 9
作业1周转时间 = 完成时间 - 提交时间 = 9 - 8 = 1
作业1带权周转时间 = 周转时间 / 执行时间 = 1 / 3 = 0.33
作业2完成时间 = max(提交时间, 前一作业完成时间) + 执行时间 = max(8, 9) + 1 = 10
作业2周转时间 = 完成时间 - 提交时间 = 10 - 8 = 2
作业2带权周转时间 = 周转时间 / 执行时间 = 2 / 4 = 0.5
作业3完成时间 = max(提交时间, 前一作业完成时间) + 执行时间 = max(8, 10) + 1 = 11
作业3周转时间 = 完成时间 - 提交时间 = 11 - 8 = 3
作业3带权周转时间 = 周转时间 / 执行时间 = 3 / 1 = 3
平均周转时间 = (1 + 2 + 3) / 3 = 2
平均带权周转时间 = (0.33 + 0.5 + 3) / 3 = 1.28
因此,在单道程序环境下,采用最短作业优先调度算法的平均周转时间为4.33小时,平均带权周转时间为1.44;采用时间片轮转调度算法(时间片大小为1)的平均周转时间为2小时,平均带权周转时间为1.28。
进程调度算法;先来先服务调度算法、短作业优先调度算法、时间片轮转调度算法流程图
以下是三种进程调度算法的流程图:
1. 先来先服务调度算法(FCFS):
![FCFS](https://img-blog.csdnimg.cn/20210711160153185.png)
2. 短作业优先调度算法(SJF):
![SJF](https://img-blog.csdnimg.cn/20210711160418471.png)
3. 时间片轮转调度算法(RR):
![RR](https://img-blog.csdnimg.cn/20210711160754691.png)
以上三种调度算法是操作系统中常用的进程调度算法,在实际应用中根据不同场景选择不同的算法可以提高系统的性能和效率。