操作系统习题及三.docx
《操作系统习题及三.docx》由会员分享,可在线阅读,更多相关《操作系统习题及三.docx(10页珍藏版)》请在冰豆网上搜索。
![操作系统习题及三.docx](https://file1.bdocx.com/fileroot1/2022-11/29/91077fb9-81dc-49a4-b797-d387090661e7/91077fb9-81dc-49a4-b797-d387090661e71.gif)
操作系统习题及三
习题三同步、通信与死锁
一、单项选择题
1、在单一处理机上,将执行时间有重叠的几个程序称为〔A.顺序程序B.多道程序C.并发程序2、进程间的根本关系为〔〕。
A.相互独立与相互制约B.同步与互斥C.并行执行与资源共享D.信息传递与信息缓冲
〕。
D.并行程序
3、两个进程合作完成一个任务,在并发执行中,一个进程要等待其合作伙伴发来信息,或者建立某个条件后再向前执行,这种关系是进程间的〔〕关系。
A.同步
B.互斥
C.竞争
D.合作
4、在一段时间内,只允许一个进程访问的资源称为〔〕。
A.共享资源B.临界区C.临界资源D.共享区5、在操作系统中,对信号量S的P原语操作定义中,使进程进入相应阻塞队列等待的条件是〔〕。
A.S>0
B.S=0
C.S<0
D.S0
6、信号量A.10
S的初值为
8,在B.8
S上执行了10C.6
次P操作,6次D.4
V操作后,
S的值为〔
〕。
7、临界区是指()。
并发进程中用于实现进程互斥的程序段B.并发进程中用于实现进程同步的程序段C.并发进程中用户实现进程通信的程序段D.并发进程中与共享变量有关的程序段8、以下对线程的描述中,()是错误的。
A.不同的线程可执行相同的程序B.线程是资源的分配单位C.线程是调度和执行单位D.同一进程中的线程可共享该进程的主存空间
9、P,V操作是〔
〕
A.两条低级进程通信原语C.两条系统调用命令10、假设P,V操作的信号量A.0个B.1个11、〔〕是一种只能进行A.调度B.进程
B.两组不同的机器指令D.两条高级进程通信原语S初值为2,当前值为-1,那么表示有〔C.2个D.3个P操作和V操作的特殊变量.C.同步D.信号量
〕等待进程。
A.12、下面的表达中正确的选项是〔〕。
操作系统的一个重要概念是进程,因此不同进程所执行的代码也一定不同为了防止发生进程死锁,各进程只能逐个申请资源
C.操作系统用PCB管理进程,用户进程可以从PCB中读出与本身运行状况有关的信息
A.进程同步是指某些进程之间在逻辑上的相互制约关系13、对于两个并发进程,设互斥信号量为mutex,假设mutex=0,那么〔〕.表示没有进程进入临界区
表示有一个进程进入临界区表示有两个进程进入临界区14、发生死锁的必要条件有四个,要防止死锁的发生,可以破坏这四个必要条件,但破坏〔〕条件是不太实际的。
A.互斥B.不可抢占C.局部分配D.循环等待15、资源的按序分配策略可以破坏〔〕条件。
A.互斥使用资源B.占有且等待资源C.非抢夺资源D.循环等待资源16、在〔〕的情况下,系统出现死锁。
.计算机系统发生了重大故障B.有多个封锁的进程同时存在C.假设干进程因竞争资源而无休止地相互等待他方释放己占有的资源D.资源数大大小于进程数或进程同时申请的资源数大大超过资源总数17、银行家算法是一种〔〕算法。
A.死锁解除B.死锁防止C.死锁预防D.死锁检测
18、某系统中有3个并发进程,都需要同类资源少资源数是〔〕。
4个,试问该系统不会发生死锁的最
A.9
B.10
C.11
D.12
19、信箱通信是一种〔〕通信方式。
A.直接通信B.间接通信C.低级通信D.信号量
20、并发进程失去了封闭性是指()。
.多个相对独立的进程以各自的速度向前推进.并发进程共享变量,其执行结果与速度有关二、填空题
1、假设一个进程已进入临界区,其他欲进入临界区的进程必须
。
2、用P,V操作管理临界区时,任何一个进程在进入临界区之前应调用
操作,退出临
界区时应调用操作。
3、用信箱实现通信时,应有和两条根本原语。
4、有m个进程共享同一临界资源,假设使用信号量机制实现对临界资源的互斥访问,那么信号量值的变化范围是。
5、死锁产生的必要条件有四个,即、、、6、银行家算法中,当一个进程提出的资源请求将导致系统从进入拒绝它的资源请求。
7、PV操作也可看作为进程间的一种通信方式,由于只交换了少量的信息,故称为
。
时,系统就。
8、在多线程操作系统中,线程与进程的根本区别在于进程作为是单位。
单位,而线程
9、界区是指并程中与10、操作系中信号量的与
有关的程序段
______的使用情况有关,它的能由
来改。
三、简答题1、什么是程的互斥与同步?
2、一个程入界区的度原是什么?
3、在操作系中,P操作和V操作各自的作是如何定的?
4、什么并程行可能会生与有关的?
如何防止?
5、什么采用有序源分配法不会生死?
四、应用题
1、四个程A、B、C、D都要一个共享文件制是程A和程C不能同文件F,程四个程并行能按系要求使用文件,用
B
F,系允多个程同文件F。
但限和程D也不能同文件F。
了使PV操作行管理,答复下面的:
1〕如何定信号量及初;2〕在以下的程序中填上适当的P、V操作,以保它能正确并工作:
程A
程B
程C
程D
⋯
⋯
⋯
⋯
[1];
[3];
[5]
;
[7];
readF;
readF;
readF;
readF;
[2];
[4];
[6]
;
[8];
⋯
⋯
⋯
⋯
2、有一台算机,有两条I/O通道,分接一台卡片入机和一台打印机。
卡片机把一叠卡片逐一入到冲区B1中,加工理后再搬到冲区B2中,并在打印机上打印,:
①系要几个程来完成个任?
各自的工作是什么?
②些程有什么的相互制关系?
③用P、V操作写出些程的同步算法。
3、生者-消者表述如下:
一生者程和一消者程通冲区生系。
生者程将生的品送入冲区,消者程从中取出品。
假定形冲池中共有N个冲区,号0~N-1。
了描述生者程和消者程,指in和out分指向生者程和消者程当前所用的冲区(buffer),初均0。
〔1〕置三个信号量两程的同步,分是full、empty和mutex。
出它的含及初。
〔2〕下面是生者程的算法描述,填写相的P、V操作句。
while(TRUE){;;品送往buffer〔in〕;in=〔in+1〕modN;/*mod取模运算*/;;
〔3〕指出生产者进程算法中的临界区是哪一段程序?
4、在银行家算法中,假设出现下述资源分配情况:
Allocation
Need
Available
P0
0
0
3
2
0
0
1
2
1
6
2
2
P1
1
0
0
0
1
7
5
0
P2
1
3
5
4
2
3
5
6
P3
0
3
3
2
0
6
5
2
P4
0
0
1
4
0
6
5
6
试问:
(1)该状态是否平安?
(2)如果进程P2提出请求Request2(1,2,2,2)后,系统能否将资源分配给?
5、桌上有一空盘,允许存放一只水果。
爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。
规定当盘空时一次只能放一只水果供吃者取用,请用P,V原语实现爸爸、儿子、女儿三个并发进程的同步。
6、哲学家甲请哲学家乙、丙、丁到某处讨论问题,约定全体到齐后开始讨论:
在讨论的间隙四位哲学家进餐,每人进餐时都需使用刀、叉各一把,餐桌上的布置如下图。
请用信号量及P、V操作说明这四位哲学家的同步、互斥过程。
丁刀1
叉2
¥b
丙食品甲b¥刀2叉1乙
答案三
同步、通信与死锁
一、
1、C
2、B
3、A
4、C
5、A
6、C
7、D
8、B
9、A
10、B
11、D
12、D
13、B
14、A
15、D
16、C
17、B
18、B
19、B
20、D
二、填空1、等待2、P、V3、送、接收4、1至-(m-1)5、互斥条件、不剥条件、局部分配、路条件6、平安状、不平安状7、低通信8、源分配、度和行位9、共享量
10、源、
PV
操作
三、答1.程的互斥是指在上本来完全独立的假设干程,由于争同一个源而生的相互制关系。
程的同步是程共同完成一任直接生相互作用的关系,也就是,些具有伙伴关系的程在行次序上必遵循确定的律。
2.一程入界区的度原是:
①如果有假设干程要求入空的界区,一次允一个程入。
②任何候,于界区内的程不可多于一个。
如已有程入自己的界区,其它所有入界区的程必等待。
③入界区的程要在有限内退出,以便其它程能及入自己的界区。
④如果程不能入自己的界区,出CPU,防止程出“忙等〞象。
3.P操作序行下述两个作:
①信号量的减1,即S=S-1;②如果S≥0,程行;如果S<0,把程的状置阻塞,把相的PCB入信号量列的末尾,并放弃理机,行等待〔直至其它程在S上行V操作,把它放出来止〕。
操作序行下述两个作:
①S加1,即S=S+1;②如果S>0,程运行;如果S≤0,放信号量列上的第一个PCB〔即信号量指所指向的PCB〕所的程〔把阻塞改就〕,行V操作的程运行。
4.有交往的并程可能会同使用共享源,如果种情况不加控制,由于程占用理器的、行的速度和外界的影响等,就会引起与有关的。
只要使假设干并程的相关界区互斥行,就可防止造成。
5.了便于明,不妨系中有m源,n个程,分用Rl,R2,⋯,Rm(1,2,⋯,m可看作源号)和P1,P2,⋯Pn表示。
根据有序源分配法可知,程申
源必按照源号的升序行,即任何程在占有了Ri源后,再申的源
Rj
的号
j一定大于
i。
因此在任一刻,系中至少存在一个程
Pk,它占有了高号
的资源
Rh,且它继续请求的资源必然是空闲的,因而
Pk
可以一直向前推进直至完成,当
Pk运行完成后即会释放它占有的所有资源;在Pk完成之后,剩下的进程集合中同样会存在一个进程,它占有了较高编号的资源,且它继续请求的资源必然是空闲的,因而它可以一直向前推进直至完成;以此类推,所有进程均可运行完成,故不会发生死锁。
四、应用题
1.解:
1〕定义二个信号量S1、S2,初值均为1,即:
S1=1,S2=1〔共2分〕2〕从[1]到[8]分别为:
P(S1),V(S1),P(S2),V(S2),P(S1),V(S1),P(S2),V(S2)2、解:
①系统可设三个进程来完成这个任务:
R进程负责从卡片输入机上读入卡片信息,输入到缓冲区B1中;C进程负责从缓冲区B1中取出信息,进行加工处理,之后将结果送到缓冲区B2中;P进程负责从缓冲区B2中取出信息,并在打印机上印出。
R进程受C进程影响,B1放满信息后R进程要等待——等C进程将其中信息全部取走,才能继续读入信息;C进程受R进程和P进程的约束:
B1中信息放满后C进程才可从中取出它们,且B2被取空后C进程才可将加工结果送入其中;P进程受C进程的约束:
B2中信息放满后P进程才可从中取出它们,进行打印。
③信号量含义及初值:
B1full——缓冲区B1满,初值为0;B1empty——缓冲区B1空,初值为0;B2full——缓冲区B2满,初值为0;B2empty——缓冲区B2空,初值为0;
R进程
C进程
P进程
输入信息写入缓冲区
B1;
V(B1full);
P(B1full);
;
P(B2full)
P(B1empty);
从B1中取出信息;
从B2中取出信息进行打印;
加工信息;
V(B2empty);
结果送入B2;V(B1empty);V(B2full);P(B2empty);
(3.答:
〔1〕full表示放有产品的缓冲区数,初值为0;empty表示可供使用的缓冲区数,初值为N;mutex为互斥信号量,初值为1,表示互斥进入临界区。
2〕P〔empty〕,P〔mutex〕,V〔mutex〕,V〔full〕3〕生产者进程算法中的临界区是如下程序段:
产品送往buffer〔in〕;
in=(in+1)modN;/*mod为取模运算*4.解:
(1)利用银行家算法对此时刻的资源分配情况进行分析,可得此时刻的平安性分析情况:
Work
Need
Allocation
Work+Allocation
Finish
P0
1
6
2
2
0
0
1
2
0
0
3
2
1
6
5
4
true
P3
1
6
5
4
0
6
5
2
0
3
3
2
1
9
8
6
true
P4
1
9
8
6
0
6
5
6
0
0
1
4
1
9
9
10
true
P1
1
9
9
10
1
7
5
0
1
0
0
0
2
9
9
10
true
P2
2
9
9
10
2
3
5
6
1
3
5
4
312
14
14
true
从上述分析中可以看出,此时存在一个平安序列
{P0,P3,P4,Pl,P2},故该状态是
平安的。
〔2〕P2提出请求Request2(1,2,2,2),按银行家算法进行检查:
.Request2(1,2,2,2)
≤Need2(2,3,5,6)
Request2(1,2,2,2)≤Available(1,6,2,2)试分配并修改相应数据结构,资源分配情况如下:
Allocation
Need
Available
P0
0
0
3
2
0
0
1
2
0
4
0
0
P1
1
0
0
0
1
7
5
0
P2
2
5
7
6
1
1
3
4
P3
0
3
3
2
0
6
5
2
P4
0
0
1
4
0
6
5
6
.再利用平安性算法检查系统是否平安,可用资源Available〔0,4,0,0〕已不能满足任何进程的需要,故系统进入不平安状态,此时系统不能将资源分配给P2。
5.解:
在此题中,应设置三个信号量S,So,Sa,信号量S表示盘子是否为空,其初值为1;信号量So表示盘中是否有桔子,其初值为0;信号量Sa表示盘中是否有苹果,其初值为0。
同步描述如下:
intS=1;intSo=0;intSa=0;main〔〕tcobeginfather〔〕;son〔〕;daughter〔〕;coend}father()
{while
(1){P(S);
将水果放入盘中:
If(放入的是桔子elseV(Sa):
)
V(So);
}
}son({
)
while
(1){P(So);从盘中取出桔子;V(S):
吃桔子;}}daughter(){while
(1){P(Sa):
从盘中取出苹果;V(S):
吃苹果;}}
6.解:
在此题中,应设置四个信号量forkl、fork2、knifel、knife2,其初值均为表示资源叉1、叉2、刀1、刀2是否可用。
同步描述如下:
1,分别
intfork1=l;intfork2=1;intknife1=l;intknife2=l;main(){
cobegin
Pa(
);/*分别用进程Pa、Pb、Pc、Pd代表哲学家甲、乙、丙、丁的活动*/
Pb(
);
Pc(
);
Pd(
);
coend
}
Pa(){while
(1){P(knife1);P(fork1);进餐;V(knife1);V(fork1);讨论问题:
}}Pb()·{while
(1){P(knife2);P(fork1);进餐;V(knife2);V(fork1);讨论问题;}}Pc(){while
(1){P(knife2);P(fork2);进餐;V(knife2);V(fork2);讨论问题:
}}‘Pd(){while
(1){P(knife1);P(fork2);进餐:
V(knife1);
V(fork2);讨论问题;}}