题目
设系统中有3种类型的资源(A,B,C)和5个进程P1、P2、P3、P4、P5,A资源的数量为17,B资源的数量为5,C资源的数量为20。在T0时刻系统状态如表所示。系统采用银行家算法实施死锁避免[1]策略。T时刻系统状态进程最大资源需求量已分配资源数量A B CA B CP15 5 92 1 2P25 3 6 4 0 2P34 0 114 0 5P44 2 52 0 4P54 2 43 1 4剩余资源数A B C2 3 3(1)T0时刻是否为安全状态?若是,请给出安全序列。 (2)若在T0时刻进程P2请求资源(0,3,4),是否能实施资源分配[2]?为什么?(3)在(2)的基础上,若进程P4请求资源(2,0,1),是否能实施资源分配?为什么?(4) 在(3)的基础上,若进程P1请求资源(0,2,0),是否能实施资源分配?为什么?
设系统中有3种类型的资源(A,B,C)和5个进程P1、P2、P3、P4、P5,A资源的数量为17,B资源的数量为5,C资源的数量为20。在T0时刻系统状态如表所示。系统采用银行家算法实施死锁避免[1]策略。
T时刻系统状态
进程 | 最大资源需求量 | 已分配资源数量 |
A B C | A B C | |
P1 | 5 5 9 | 2 1 2 |
P2 | 5 3 6 | 4 0 2 |
P3 | 4 0 11 | 4 0 5 |
P4 | 4 2 5 | 2 0 4 |
P5 | 4 2 4 | 3 1 4 |
剩余资源数 | A B C | |
2 3 3 |
(1)T0时刻是否为安全状态?若是,请给出安全序列。 (2)若在T0时刻进程P2请求资源(0,3,4),是否能实施资源分配[2]?为什么?
(3)在(2)的基础上,若进程P4请求资源(2,0,1),是否能实施资源分配?为什么?
(4) 在(3)的基础上,若进程P1请求资源(0,2,0),是否能实施资源分配?为什么?
题目解答
答案
解:由题目所给出的最大资源需求量和已分配资源数量,可以计算出T0时刻各进程的资源需求量need,need=最大资源需求量-已分配资源数量,如下表:
资源情况 进程 | allocation | need | available |
A B C | A B C | A B C | |
P1 | 2 1 2 | 3 4 7 | 2 3 3 |
P2 | 4 0 2 | 1 3 4 | |
P3 | 4 0 5 | 0 0 6 | |
P4 | 2 0 4 | 2 2 1 | |
P5 | 3 1 4 | 1 1 0 |
(1)利用银行家算法对T0时刻的资源分配情况进行分析,可得此刻的安全性分析情况,如表:
资源情况 进程 | work | need | allocation | Work+allocation | finish |
A B C | A B C | A B C | A B C | ||
P5 | 2 3 3 | 1 1 0 | 3 1 4 | 5 4 7 | true |
P4 | 5 4 7 | 2 2 1 | 2 0 4 | 7 4 11 | true |
P3 | 7 4 11 | 0 0 6 | 4 0 5 | 11 4 16 | true |
P2 | 11 4 16 | 1 3 4 | 4 0 2 | 15 4 18 | true |
P1 | 15 4 18 | 3 4 7 | 2 1 2 | 17 5 20 | true |
从T0时刻的安全性分析中可以看出,存在一个安全系列『P5,P4,P3,P2,P1』,故T0时刻的状态是安全的。
(2)若在T0时刻进程P2请求资源(0,3,4),因请求资源数(0,3,4)大于剩余资源数(2,3,3),所以不能分配。
(3)在(2)的基础上,若进程P4请求资源(2,0,1),按银行家算法进行检查:
P4请求资源(2,0,1)<=P4资源需求量(2,2,1)
P4请求资源(2,0,1)<=剩余资源数(2,3,3)
试分配并修改相应数据结构,由此形成的资源分配情况如下表所示。
资源情况 进程 | allocation | need | available |
A B C | A B C | A B C | |
P1 | 2 1 2 | 3 4 7 | 0 3 2 |
P2 | 4 0 2 | 1 3 4 | |
P3 | 4 0 5 | 0 0 6 | |
P4 | 4 0 5 | 0 2 0 | |
P5 | 3 1 4 | 1 1 0 |
再利用安全性算法检查系统是否安全,可得到如下表所示的安全性检测表。
资源情况 进程 | work | need | allocation | Work+allocation | finish |
A B C | A B C | A B C | A B C | ||
P4 | 0 3 2 | 0 2 0 | 4 0 5 | 4 3 7 | true |
P5 | 4 3 7 | 1 1 0 | 3 1 4 | 7 4 11 | true |
P3 | 7 4 11 | 0 0 6 | 4 0 5 | 11 4 16 | true |
P2 | 11 4 16 | 1 3 4 | 4 0 2 | 15 4 18 | true |
P1 | 15 4 18 | 3 4 7 | 2 1 2 | 17 5 20 | true |
可见,此时存在一个安全序列『P4,P5,P3,P2,P1』故该状态是安全的,可以立即将P4所申请的资源分配给它。
(4)在(3)的基础上,若进程P1请求资源(0,2,0),按银行家算法进行检查:
P1请求资源(0,2,0)<=P1资源需求量(3,4,7)
P1请求资源(0,2,0)<=剩余资源数(0,3,2)
P1请求资源后,试分配并修改相应数据结构,由此形成的资源分配情况如表所示。
资源情况 进程 | allocation | need | available |
A B C | A B C | A B C | |
P1 | 2 3 2 | 3 2 7 | 0 1 2 |
P2 | 4 0 2 | 1 3 4 | |
P3 | 4 0 5 | 0 0 6 | |
P4 | 4 0 5 | 0 2 0 | |
P5 | 3 1 4 | 1 1 0 |
再利用安全性算法检查系统是否安全,可用资源available(0,1,2)已不能满足任何进程的资源需求,故系统进入不安全状态,此时系统不能将资源分配给P1。
试化简下图中的进程-资源图,并利用死锁[3]定理给出相应的结论。


解:在图(a)中,系统中共有R1类资源2个,R2类资源3个,在当前状态下仅有一个R2类资源空闲。进程P2占有一个R1类资源及一个R2类资源,并申请一个R2类资源;进程P1占有一个R1类资源及一个R2类资源,并申请一个R1类资源及一个R2类资源。因此,进程P2是一个既不孤立又非阻塞的进程,消去进程P2的资源请求边和资源分配边,便形成了下图所示情况:

当进程P2释放资源后,系统中有2个R2类空闲资源,1个R1类空闲资源,因此系统能满足进程P1的资源申请,使得进程P1成为一个既不孤立又非阻塞的进程,消去进程P1的资源请求边和资源分配边,便形成了下图所示情况:

由死锁定理可知,图中的进程-资源图不会产生死锁。
在图(b)中,系统中共有R1类资源1个,R2类资源2个,R3类资源2个,R4类资源3个,在当前状态下有一个R3类资源、2个R4类资源空闲。进程P1占有一个R2类资源,并申请一个R1类资源;进程P2占有一个R1类资源及一个R3类资源,并申请一个R4类资源;进程P3占有一个R4类资源及一个R2类资源,并申请一个R3类资源及一个R2类资源。
因此,进程P2是一个既不孤立又非阻塞的进程,消去进程P2的资源请求边和资源分配边,便形成了下图所示情况:

当进程P2释放资源后,系统中有1个R1类空闲资源,2个R3类空闲资源,2个R4类空闲资源,因此系统能满足进程P1的资源申请,使得进程P1成为一个既不孤立又非阻塞的进程,消去进程P1的资源请求边和资源分配边,便形成了下图所示情况:

当进程P1释放资源后,系统中有1个R1类空闲资源,1个R2类空闲资源,2个R3类空闲资源,2个R4类空闲资源,因此系统能满足进程P3的资源申请,使得进程P3成为一个既不孤立又非阻塞的进程,消去进程P3的资源请求边和资源分配边,便形成了下图所示情况:

有三个批处理作业。第一个作业10:00到达,需要执行2小时;第二个作业在10:10到达,需要执行1小时;第三个作业在10:25到达,需要执行25分钟。分别采取如下三种作业调度算法:
在3.X版本以前的MS-DOS是(A)操作系统,Windows 95是(B)操作系统,Windows XP是(C),它们都是由(D)开发的。
A,B,C:(1)单用户单任务;(2)单用户多任务;(3)多用户单任务;(4)多用户多任务。
D:(1)IBM公司;(2)Microsoft公司;(3)Microsoft和IBM联合;(4)Bell实验室。
OS/2操作系统最初是由(A)开发的,它属于(B)类操作系统;UNIX操作系统最初是由(C)推出的,它属于(D)类操作系统。
A,C:(1)IBM公司;(2)Microsoft公司;(3)Microsoft和IBM联合;(4)Bell实验室。
B,D:(1)单用户单任务;(2)单用户多任务;(3)多处理机;(4)多用户多任务。
在WINDOWS 98操作系统中,用户在用word输入文字的同时用real player看电影,那么,word和real player这两个进程是 D 执行。
A.并行 B.串行 C.顺序 D.并发
一般来说,为了实现多道程序设计,计算机首先需要有 A 。
A. 更大的内存 B. 更快的外部设备 C. 更快的CPU D. 更先进的终端
采用Microkernel结构的操作系统有 B 。
A. DOS B. WINDOWS XP C. WINDOWS 98 D. Linux
紧耦合系统就是 D 。
A. 分时操作系统 B. 分布式操作系统 C. 网络操作系统 D. 并行操作系统
以下不属于操作系统部件的是 B 。
A.进程管理 B. 数据库管理 C.保护系统 D.命令解释器系统
从用户的观点看,操作系统是 A 。
A.用户与计算机之间的接口
B.控制和管理计算机资源的软件
C.合理地组织计算机工作流程的软件
D.由若干层次的程序按一定的结构组成的有机体
操作系统的功能是进行处理机管理、 B 管理、设备管理及信息管理。
调度算法1:
作业号 | 到达时间 | 开始执行时间 | 执行结束时间 |
1 2 3 | 10:00 10:10 10:25 | 10:00 12:00 13:00 | 12:00 13:00 13:25 |
调度算法2:
作业号 | 到达时间 | 开始执行时间 | 执行结束时间 |
1 2 3 | 10:00 10:10 10:25 | 11:50 10:50 10:25 | 13:50 11:50 10:50 |
调度算法3:
作业号 | 到达时间 | 开始执行时间 | 执行结束时间 |
1 2 3 | 10:00 10:10 10:25 | 10:00 12:25 12:00 | 12:00 13:25 12:25 |
(1)计算各调度算法下的作业平均周转时间。
(2)调度算法1、3分别是什么作业调度算法?
解:(1)采用调度算法1时:
作业1的周转时间为2小时
作业2的周转时间为2.83小时
作业3的周转时间为3小时
平均周转时间为:(2+2.83+3)/3=2.61小时
采用调度算法2时:
作业1的周转时间为3.83小时
作业2的周转时间为1.67小时
作业3的周转时间为0.42小时
平均周转时间为:(3.83+1.67+0.42)/3=1.97小时
采用调度算法3时:
作业1的周转时间为2小时
作业2的周转时间为3.25小时
作业3的周转时间为2小时
平均周转时间为:(2+3.25+2)/3=2.42小时
(2)调度算法1是按照作业到达的先后次序执行的,所以它是先来先服务调度算法。调度算法3是按照作业执行时间从短到长的次序执行的,所以它是短作业优先调度算法。
19、CPU调度可能发生的时机有哪些?
答:
CPU调度可能发生在当一个进程:
从运行转到等待
运行转到就绪
从等待转到就绪
终止运行
三个进程P1、P2、P3互斥使用一个包含N(N>0)个单元的缓冲区。P1每次用produce()生成一个正整数并用put()送入缓冲区某一空单元中;P2每次用getodd()从该缓冲区中取出一个奇数并用countodd()统计奇数个数;P3每次用geteven()从该缓冲区中取出一个偶数并用counteven()统计偶数个数。请用信号量机制实现这三个进程的同步与互斥活动,并说明所定义的信号量的含义。要求用伪代码描述。
答案:
(1)缓冲区是一互斥资源,因此设互斥信号量mutex。
(2)同步问题:P1、P2因为奇数的放置与取用而同步,设同步信号量odd;P1、P3因为偶数的放置与取用而同步,设同步信号量even;P1、P2、P3因为共享缓冲区,设同步信号量empty。
Semaphore mutex=1;
Semaphore odd=0; even=0;
Semaphore empty=N;
main()
cobegin{
Process P1
while(True)
{
number=produce();
P(empty);
P(mutex);
put();
V(mutex);
if number % 2==0
V(even);
else
V(odd);
}
Process P2
while(true)
{
P(odd);
P(mutex);
getodd();
V(mutex);
V(empty);
countodd();
}
Process P3
while(true)
{
P(even);
P(mutex);
geteven();
V(mutex);
V(empty);
counteven();
}
}coend
某车站售票厅,任何时间最多可容纳100名购票者进入,当售票厅中少于100名购票者时,则厅外的购票者可立即进入,否则需在外面等待。若把一个购票者看作一个进程,请回答以下问题:
(1)用PV操作管理这些并发进程时,应怎样定义信号量?写出信号量的初值以及信号量各种取值的含义。
(2)根据所定义的信号量,把应执行的PV操作填入下列方框中,以保证进程能够正确地并发执行。
cobegin process pi(i=1,2,…,n)
begin
进入售票厅;
购票;
退出;
——————
end
coend
(3)若欲购票者最多为n个人,写出信号量可能的变化范围(最大值和最小者)。
解析:
(1)应定义一个信号量S,S的初值为100,
当0<=100时,允许厅外的购票者进入;