操作系统原理之进程问题
本文记录5道经典系统进程问题
1、 有三个批处理作业,第一个作业 10:00 到达,需要执行 2 小时;第二个作业在 10:10 到
达,需要执行 1 小时;第三个作业在 10:25 到达,需要执行 25 分钟。分别采用先来先服
务,短作业优先和最高响应比优先三种调度算法,各自的平均周转时间是多少?
先来先服务:
作业一:等待时间0,执行时间120分钟,周转时间为120分钟;
作业二:等待时间110分钟,执行时间60分钟,周转时间为170分钟;
作业三:等待时间155分钟,执行时间25分钟,周转时间为180分钟。
平均周转时间为156.7分钟。
短作业优先:
作业一:等待时间0,执行时间120分钟,周转时间为120分钟;
作业二:等待时间为135分钟,执行时间为60分钟,周转时间为195分钟。
作业三:等待时间95分钟,执行时间为25分钟,周转时间为120分钟;
平均周转时间为145分钟。
最高响应比优先:
作业一:等待时间0,执行时间120分钟,周转时间为120分钟;
作业二:等待时间为135分钟,执行时间为60分钟,周转时间为195分钟。
作业三:等待时间95分钟,执行时间为25分钟,周转时间为120分钟;
平均周转时间为145分钟。
2、 在一单道批处理系统中,一组作业的提交时刻和运行时间如下表所示。试计算一下三种
作业调度算法的平均周转时间 T 和平均带权周转时间 W。
( 1) 先来先服务; ( 2) 短作业优先 ( 3) 高响应比优先
(1)先来先服务:运行顺序为1,2,3,4
作业 |
提交时刻 |
运行时间 |
开始时刻 |
结束时刻 |
1 |
8.0 |
1.0 |
8.0 |
9.0 |
2 |
8.5 |
0.5 |
9.0 |
9.5 |
3 |
9.0 |
0.2 |
9.5 |
9.7 |
4 |
9.1 |
0.1 |
9.7 |
9.8 |
平均周转时间:((9.0-8.0)+(9.5-8.5)+(9.7-9.0)+(9.8-9.1))/4=0.85
平均带权周转时间:((9.0-8.0)/1.0+(9.5-8.5)/0.5+(9.7-9.0)/0.2+(9.8-9.1)/0.1)/4=3.375
(2)短作业优先:运行顺序为1,3,4,2
作业 |
提交时刻 |
运行时间 |
开始时刻 |
结束时刻 |
1 |
8.0 |
1.0 |
8.0 |
9.0 |
2 |
8.5 |
0.5 |
9.3 |
9.8 |
3 |
9.0 |
0.2 |
9.0 |
9.2 |
4 |
9.1 |
0.1 |
9.2 |
9.3 |
平均周转时间:((9.0-8.0)+(9.8-8.5)+(9.2-9.0)+(9.3-9.1))/4=0.675
平均带权周转时间:((9.0-8.0)/1.0+(9.8-8.5)/0.5+(9.2-9.0)/0.2+(9.3-9.1)/0.1)/4=1.65
(3)高响应比优先:运行顺序为1,2,4,3
作业 |
提交时刻 |
运行时间 |
开始时刻 |
结束时刻 |
1 |
8.0 |
1.0 |
8.0 |
9.0 |
2 |
8.5 |
0.5 |
9.0 |
9.5 |
3 |
9.0 |
0.2 |
9.6 |
9.8 |
4 |
9.1 |
0.1 |
9.5 |
9.6 |
平均周转时间:((9.0-8.0)+(9.5-8.5)+(9.8-9.0)+(9.6-9.1))/4=0.825
平均带权周转时间:((9.0-8.0)/1.0+(9.5-8.5)/0.5+(9.8-9.0)/0.2+(9.6-9.1)/0.1)/4=3
3、 设系统中有 3 种类型的资源( A, B, C)和 5 个进程( P1, P2, P3, P4, P5), A 资源
的数量为 17, B 资源的数量为 5, C 资源的数量为 20。在 T0 时刻系统状态表如下表所
示。
系统采用银行家算法试试死锁避免策略。
( 1) T0 时刻是否为安全状态?若是,请给出安全序列。
( 2) 在 T0 时刻若进程 P2 请求资源( 0,3,4),是否能实施资源分配?为什么?
( 3) 在( 2)的基础上,若进程 P4 请求资源( 2,0,1),是否能实施资源分配?为什么?
( 4) 在( 3)的基础上,若进程 P1 请求资源( 0,2,0),是否能实施资源分配?为什么?
(1)是安全状态。安全序列为P4、P5、P3、P2、P1。
(2)不能,因为A、B、C的资源剩余量为(2,3,3),其中C资源不能满足需求。P2会阻塞。
(3)能,若分配给P4,还存在安全序列P4、P5、P3、P2、P1。
(4)不能,如果分配给P1,剩余(0,1,2)资源不能满足任一进程,将成为死锁。
4、 某系统有 R1,R2,R3 共 3 类资源,在 T0 时刻 P1,P2,P3 和 P4 这 4 个进程对资源的占用和
需求情况见下表,此刻系统可用资源向量为( 2,1,2)。
问题:
( 1)将系统中各种资源总量和此刻各进程对各资源的需求数目用向量或矩阵表示出来
( 2)如果此时 P1,P2 均发出资源请求向量 Request(1,0,1),为了保持系统的安全性应该如
何分配资源? 说明你所采用策略的原因。
( 3)如果( 2)中两个请求立刻得到满足后,系统此刻是否处于死锁状态?
(1)资源总量:
R1 R2 R3
9 3 6
需求数目:
R1 R2 R3
P1 2 2 2
P2 2 0 2
P3 1 0 3
P4 4 2 0
(2)应该分配给P2。因为如果分配给P1,则系统剩余(1,1,1)讲不能满足任意一个进程,为不安全状态,而分配给P2为安全状态,存在安全序列为P2、P1、P3、P4
(3)是。因为任何进程的需求都不能得到满足,也不能结束释放资源。
5、 设有 3 个进程 P、 Q、 R,它们共享 10 个同类资源, P、 Q、 R 进程的资源最大需求量依次
为 4、 7 和 8。现假定它们对资源的请示序列如下表所示:
为了避免死锁,系统分配资源时采用银行家算法。如果申请资源得不到满足,进程就转入阻
塞态。根据上述信息,试描述各步骤结束时,申请资源的进程是得到满足,还是转入阻塞状
态,为什么?(起始状态:各进程均不拥有资源,无进程处于阻塞态)
(1)满足P进程申请。分配后为安全状态。
(2)满足Q进程申请。分配后为安全状态,存在安全序列P,Q,R。
(3)满足R进程申请。分配后为安全状态,存在安全序列P,Q,R。
(4)阻塞Q进程,若分配给Q资源,则剩余资源不能满足任意一进程完成任务,会出现死锁。
(5)阻塞R进程,理由同上。
(6)满足P进程申请。分配后为安全状态,P可以完成任务,释放资源,存在安全序列Q,R。