<操作系统导论>第七章 进程调度:介绍

本文分析了不同的进程调度算法——短作业优先(SJF)、先来先服务(FIFO)和时间片轮转(RR)——在不同工作负载下的表现。在特定条件下,SJF和FIFO的周转时间相同,而RR通过时间片实现快速响应,但周转时间较长。随着作业执行时间增加,SJF的响应时间也增加。对于RR,增大时间片会导致响应时间增加,最坏情况下的响应时间可通过公式计算。
摘要由CSDN通过智能技术生成

通过程序scheduler.py,我们能够观察到不同进程调度算法执行情况,譬如响应时间、周转时间和总等待时间。
在这里插入图片描述

首先,我们要找到需要用到的程序。
在这里插入图片描述


1.使用SJF和FIFO调度程序运行长度为200的三个作业时,计算响应时间和周转时间。

SJF
在这里插入图片描述

可以看出三个进程的周转时间分别是200,400,600;平均周转时间是400
响应时间分别是0,200,400;平均响应时间是200

FIFO
在这里插入图片描述

可以看出和SJF算法的结果一致三个进程的周转时间分别是200,400,600;平均周转时间是400
响应时间分别是0,200,400;平均响应时间是200

2.现在做同样的事情,但有不同长度的作业,即100、200和300。
SJF

在这里插入图片描述

他们的响应时间分别是0,100,300。平均响应时间是133.33
周转时间分别是100,300,600.平均周转时间是333.33

FIFO

在这里插入图片描述

这里因为三个程序的顺序本来就是递增排列又同时到达,所以和SJF的结果相同
响应时间分别是0,100,300。平均响应时间是133.33
周转时间分别是100,300,600.平均周转时间是333.33

3.现在做同样的事情,但采用RR调度程序,时间片为1。

在这里插入图片描述

轮转是将三个进程切片公平地运行
三个进程的响应时间分别是0,1,2。平均响应时间是1
周转时间分别是598,599,600.平均周转时间是599。
可以看出轮转这种算法响应时间很优,但是周转时间却很糟糕。

4.对应什么类型的工作负载,SJF提供与FIFO相同的周转时间?

答:只要到达的进程的执行时间是从小到大排列就可以

5.对应什么类型的工作负载和量子长度,SJF和RR提供相同的响应时间?

答:每个程序的执行时间都等于轮转划分的时间片的长度。

6.随着工作长度的增加,SJF的响应时间会怎么样?你能使用模拟程序来展示趋势吗?

答:会增加;以5,5,5和10,10,10举例
在这里插入图片描述

在这里插入图片描述
这种趋势是:随着程序执行时间的增加,响应时间会变长。

7.随着量子长度的增加,RR的响应时间会怎么样?你能写一个方程计算给定N个工作时,最坏的响应时间吗?

我想题目中的量子长度指的是划分的时间片的长度。时间片长度增加RR的响应时间一定会增加。
假定时间片长度为t,那么平均的响应时间为:
[0+t+2*t+······(N-1)*t]/N=[(N-1)*t]/2
由于时间片必须是时钟的倍数,又要小于最短的一个进程的执行时间,我们便能找到这个t值。将它带入上面的式子就能得到最坏响应时间。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值