计算机四级网络工程师(操作系统原理)模拟试卷47
操作系统原理——单选题
1.有m个消费者进程Q1、Q2、…、Qm,其伪码如下:
j:=0;
while (true) {
P (full) ; //full初值为0
P (mutex); //mutex初值为1
从Buffer[j]取产品;
j:= (j+1) mod k; //k为缓冲区大小
V (mutex);
V (empty); //empty初值为C,C>0,整数
消费产品;
};
这些消费者进程在执行过程中,可能会出现下列哪一种现象?(B)
A. 可能死锁
B. 正常运行
C. 出现活锁
D. 产生饥饿
解析:当进程了n次消费后(或n个消费者,每人都消费一个产品) ,当缓冲池为满的时候,消费者可以从缓存池取出产品,执行P(mutex)取产品(此时mutex=1),然后判断缓冲区大小,如果缓冲区是满缓冲区,则执行V(mutex)消费产品,所以该过程不会发生死锁,能正常运行,因为过程中会判断满缓冲区的大小,不会让消费者从空的缓冲区里取产品。故选择B选项。
2.有m个消费者进程Q1、Q2、….、Qm,其伪码如下:
j:=0;
while (true){
P (mutex) ; //mutex初值为1
P (full) ; //full初值为0
从Buffer[j]取产品;
j:=(j+1) mod k; //k为缓冲区大小
V (empty); //empty初值为C,C〉0,整数
V (mutex);
消费产品;
};
这些消费者进程在执行过程中,可能会出现下列哪一种现象()?(B)
A. 正常运行
B. 可能死锁
C. 出现活锁
D. 产生饥饿
解析:在生产者与消费者的问题中,信号量mutex用于实现临界区(环形缓冲池)的互斥,信号量full用于指示缓冲池中满缓冲区数目。根据题意,在在消费者进程中,若先执行P(mutex)进入到环形缓冲池中,再执行P(full)从满缓冲区中取产品。假设当消费者进入临界区,而满缓冲区数目为0,那么此刻需要等待生产者向缓冲区放入产品,而消费者又占用了临界区,生产者会等着消费者退出临界区,消费者又等待生产者向缓冲区放入产品,那么可能会发生死锁。故选择B选项。
3.读者-写者经典模型的程序如下:
读者进程:
while(true){
P(mutex);
read_counter= read_counter+1;
if(read_counter==1)P(write);
V(mutex);
read(files);
P(mutex);
read_counter= read_counter-1;
if(read_counter==0)V(write);
V(mutex);
}
写者进程:
while(true){
P(write);
Write(files);
V(write);
}
若读者源源不断涌入,写者进程可能会()。(C)
A. 发生活锁
B. 出现死锁
C. 发生饥饿
D. 正常运行
解析:在读者写者问题中,多个读者可以同时读文件,读写不能同时进行(若有写着对文件操作,则不允许读者或写着对文件操作;同样,若有读者在读文件,则不允许任何进程去写文件)。若读者源源不断涌入,那么写者进程会一直处于等待状态,无法对文件进行操作,最终会饥饿而死。故答案选择C选项。
4.某计算机系统中共有3个进程P1、P2和P3,4类资源r1、r2、r3和r4。其中r1和r3每类资源只有1个,r2资源有2个,r4有3个。
当前的资源分配状态如下:
(B)
A. 死锁
B. 无死锁
C. 活锁
D. 饥饿
解析:本题中进程P1,P2,P3对资源r1,r2,r3,r4的资源分配图,进程状态如下:
进程P1已占用一个r1类资源,且正在等待获得一个r2类资源;
进程P2已占用一个r3类资源,且正在等待获得一个r1类资源;
进程P3已占用一个r2类资源,且正在等待获得一个r3类资源;
目前系统资源剩余量为r4类资源4个,r2类资源1个。若进程P3申请一个r1类资源,那么可以找到安全序列P1→P2→P3或P1→P3→P2,系统处于安全的状态。故选择B选项。
5.读者-写者经典模型的程序如下:
读者进程:
while(true){
P(mutex);
read_counter=read_counter+1;
if(read_counter==1)P(write);
V(mutex);
read(files);
P(mutex);
read_counter= read_counter-1;
if(read_counter==0)V(write);
V(mutex);
}
写者进程:
while(true)(
P(write);
Write(files);
V(write);
}
若写者源源不断涌入,读者进程(A)
A. 正常运行
B. 发生死锁
C. 出现活锁
D. 出现饥饿
解析:读者和写者必须遵循如下的规定:①多个进程可以同时读文件;②任一个进程在对文件F进程写时,不允许其他进程对文件进程读和写;③当有进程正在读文件时不允许任何进程去写文件;写者和写者之间要互斥,写者与读者之间也要互斥,读者与读者之间可以同时进行。根据题意,写者源源不断涌入,读者可以正常运行,因为读者已经有权限在读文件了,不会发生死锁。
6.下列进程资源分配图显示出现了死锁现象:
(D)
A. 互斥条件
B. 保持并请求条件
C. 不可剥夺条件
D. 循环等待条件
解析:循环等待又称环路等待,环路中每一个进程已占有的资源同时被另一个进程所申请,即前一个进程占有后一个进程所请求的资源。不可剥夺条件又称不可抢占或不可强占,进程所获得的资源在未使用完毕之前,不能被其他进程强行剥夺,而只能由获得该资源的进程资源释放。请求和保持条件又称部分分配或占有申请,进程每次申请它所需要的一部分资源,在申请新的资源的同时,继续占用已分配到的资源。互斥条件表示资源是独占的且排他使用。根据题意,采用进程p1、p2先申请打印机,再申请磁带机的方法,不会导致进程去申请资源的时候有其他进程占用在,所以循环等待条件是不成立的。故选择D选项。
7.下列进程资源分配图显示出现了死锁现象:
本文档预览:3600字符,共9373字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载