进程同步习题全

进程管理
semaphore chopstick[5]={1,1,1,1,1}; void philosopher(int i) { while(true) { think(); if(i%2 == 0) //偶数哲学家,先右后左。 { wait (chopstick[ i + 1 ] mod 5) ; wait (chopstick[ i]) ; eat(); signal (chopstick[ i + 1 ] mod 5) ; signal (chopstick[ i]) ; } Else //奇数哲学家,先左后右。 { wait (chopstick[ i]) ; wait (chopstick[ i + 1 ] mod 5) ; eat(); signal (chopstick[ i]) ; signal (chopstick[ i + 1 ] mod 5) ; } }
semaphore chopstick[5]={1,1,1,1,1}; while(true) { think(); Swait(chopstick[(I+1)]%5,chopstick[I]); eat(); Ssignal(chopstick[(I+1)]%5,chopstick[I]); }
进程管理
eat(); signal(chopstick[(i+1)%5]); //释放右手边的筷子 signal(chopstick[i]); //释放左手边的筷子 signal(mutex); //释放信号量mutex
until false
}
进程管理
原理:规定奇数号的哲学家先拿起他左边的筷子,然后再去拿 他右边的筷子;而偶数号的哲学家则相反.按此规定,将是1,2 号哲学家竞争1号筷子,3,4号哲学家竞争3号筷子.即五个哲学 家都竞争奇数号筷子,获得后,再去竞争偶数号筷子,最后总会 有一个哲学家能获得两支筷子而进餐。而申请不到的哲学家 进入阻塞等待队列,根FIFO原则,则先申请的哲学家会较先 可以吃饭,因此不会出现饿死的哲学家。
进程管理
进程管理
题解:盘子是三个人的公有信号量,设为mutex,初值为1, 服务员的私有信号量设为empty初值为1,男顾客的私有 信号量为ba,初值为0,女顾客的私有信号量为cm,初值 为0。
waiter :begin
L1: p(empty);
p(mutex); 放香蕉或草 莓;
v(mutex); 如果放香蕉 则v(ba); 否则v(cm); goto L1;
限制人数 semaphore chopstick[5]={1,1,1,1,1};
semaphore mutex=4;
{
Repeat
think(); wait(mutex); //请求进餐 wait(chopstick[i]); //请求左手边的筷子 wait(chopstick[(i+1)%5]); //请求右手边的筷子
Parbegin Father:begin L1: p(empty);
p(mutex); 放苹果; v(mutex); v(apple); goto l1; end;
Mather:begin L2:p(empty);
p(mutex); 放橘子; v(mutex); v(orange); goto l2; end;
进程管理
解答:可以用两个信号量s1、s2,分别表示可以开
门和可以开车,其初始值都为0,用PV操作实现为:
司机:
售票员:
L0:正常行车
L1:售票
到站停车
P(S1)
V(S1)
开车门
P(S2)
关车门
启动开车
V(S2)
goto L0
goto L1
进程管理
和尚挑水问题:寺庙里有多个小、老和尚,一水缸。 小和尚取水,老和尚饮水。水缸容积10桶水,水取自 同一水井,水井每次只容一个桶取水,桶总数3个,每 次入、取水缸水仅为一桶。试用P、V操作描述和尚取 水、饮水的互斥与同步过程。
mutex1=mutex2=1; 分别代表水井和 水缸 empty=10; 水缸的入水量 full=0; 水缸的取水量 count=3;水桶个数
进程管理
打水:begin p(empty) p(count) p(mutex1) 从水井打水; v(mutex1) p(mutex2) 往缸中放水 v(mutex2) v(full) v(count) end
Coend end
进程管理
南京大学2000年试题 ❖ 桌子上有一只盘子,最多可容纳两个水果,每
次只能放入或取出一个水果。爸爸专向盘子中 放苹果,妈妈专向盘子中放橘子,两个儿子专 等吃盘子中的橘子,两个女儿专等吃盘子中的 苹果。请用信号量操作来实现爸爸、妈妈、儿 子、女儿之间的同步与互斥关系。
进程管理
进程管理
(经典理发师问题)
❖ 假设后街有家理发店,店里有一个理发师、一把理发 椅和n把等候理发的顾客椅子。 (1).如果没有顾客则理发师便在理发椅上看报纸; (2).当有一个顾客到达时,首先查看理发师在干什 么,如果在看报纸则告诉理发师理发,然后坐到理发 椅上开始理发;如果理发师正在理发,则查看是否有 空的椅子可坐,如果有,他就坐下等待,如果没有, 则离开; (3).理发师为一位顾客理完发后,查看是否有人等 待,如有则唤醒一位为其理发,如没有则在理发椅上 看报纸; (4).顾客不分优先级
进程管理
(1) 描述一个保证不会出现两个邻座同时要求吃饭的通信算法。 (2) 描述一个既没有两邻座同时吃饭,又没有人饿死(永远拿不到 筷子)的算法。 (3) 在什么情况下,5 个哲学家全部吃不上饭?
进程管理
1.begin P(s1) ; P(s2) ; 吃饭 ; V(s1) ; V(s2) ;
End
进程管理
❖ 有一间酒吧里有3个音乐爱好者队列,第一队的音乐爱好 者只有随身听,第二队的音乐爱好者只有音乐磁带,第 三队的音乐爱好者只有电池。然而,要听音乐就必须随 身听、音乐磁带和电池三种物品俱全。酒吧老板一次出 售这三种物品中的任意两种。当一名音乐爱好者得到这 三种物品并听完一首乐曲后,酒吧老板才能再一次出售 这三种物品中的任意两种,于是第2名音乐爱好者得到这 三种物品,并开始听乐曲。全部买卖就这样进行下去。 试用信号量实现它们之间的同步关系。
进程管理
进程同步习题
1. 一条小河上有一座独木桥,规定每次只允许一 人过桥。如果把每个过桥这看作一个进程,为 保证安全,请用信号量操作实现正确管理。
进程管理
进程同步习题
begin s:semaphore; s:=1;
cobegin begin wait(s); 过桥; signal(s); end
Daughter:begin L3:p(apple);
p(mutex); 取苹果; v(mutex); v(empty); goto l3; end;
进程管理
L4:p(orange); p(mutex); 取橘子; v(mutex); v(empty); Goto l4; end;
进程管理
• 桌上有一个空的水果盘,盘中一次只能放一个 水果,服务员、男顾客和女顾客共用这个盘子。 服务员向盘中放草莓和香蕉,男顾客专等吃盘 中的草莓,女顾客专等吃盘中的香蕉。规定每 次当盘子空时只能放一个水果供顾客食用。请 用信号量机制实现服务员、男顾客和女顾客三 个进程的同步。
end;
Woman:begin L3: p(cm);
p(mutex); 取草莓;
v(mutex); v(empty); goto L2; end;
Man:begin L2: p(ba);
p(mutex); 取香蕉;
v(mutex); v(empty); goto L2; end;
进程管理
汽车司机与售票员之间必须协同工作,一方面只有售 票员把车门关好了司机才能开车,因此,售票员关好 车门应通知司机开车。另一方面,只有当汽车已经停 下,售票员才能开门上下客,故司机停车后应通知售 票员,汽车当前正在始发站停车上客,试设必要的信 号灯及赋初值,写出他们的同步过程。
取水:begin p(full) p(count) p(mutex2) 从水缸取水 v(mutex2) v(count) v(empty)
end
进程管理
哲学家进餐问题
设有5个哲学家,共享一张放有五把椅子的桌子,每人分得一把椅子。 但是,桌子上总共只有5支筷子,在每人两边分开各放一支。哲学家 们在肚子饥饿时才试图分两次从两边拾起筷子就餐。 条件: (1) 只有拿到两支筷子时,哲学家才能吃饭。 (2) 如果筷子已在他人手上,则该哲学家必须等待到他人吃完之后才 能拿到筷子。 (3) 任一哲学家在自己未拿到两支筷子吃饭之前,决不放下自己手中 的筷子。 试:
公用信箱:oslily07@ 密码:os2007
进程管理
进程同步习题
设有n个进程共享一个程序段,对如下两种情况: (1)如果每次只允许一个进程进入该程序段; (2)如果每次最多允许m个进程(M<=n)同时进入 该程序段。 试问:所采用的信号量初值是否相同?信号量值的变 化范围如何? 所采用信号量的初值不相同。 在情况(1)中,信号量的初值为1, 信号量值的变化范围是l,0,-1…-(n-1)。 在情况(2)中,信号量的初值为M, 信号量值的变化范围是M,m-1,m-2…(m-n)。
end
end
进程管理
Pi: Repeat Think for while p(mutex); p(s[i]); p(s[(i+1)mod5]); v(mutex); eat for while; v(s[i]) v(s[(i+1)mod 5]); until false
进程管理
利用AND 型信号量机制实现 :
2.begin 3.begin
合集下载

4.2 进程同步习题

4.2 进程同步习题

【例】现有4个进程R1,R2,W1,W2。它们共享 可以存放一个数据的缓冲器B。进程R1每次把磁 盘上读出的一个数据存到缓冲器B中,供进程W1 打印输出;进程R2每次从键盘上读一个数据存放 到缓冲器B,供W2打印输出。当一个进程把数据 存放到缓冲器后,在该数据还没有打印输出之前 不准任何进程再想缓冲器中存数据。当一个进程 已把缓冲器中的数据打印输出后,在缓冲器中还 没有存如新数据之前不准任何进程再从缓冲器中 取数打印。问怎样用PV操作使这4个进程并发执 行时能相互协作地工作?
• Semaphore Customers = 0; • Semaphore Barber = 0; • Mutex accessSeats = 1; • int NumberOfFreeSeats = N; //total number of seats
Customer() { while(true) Barbers() { { P(accessSeats); //lock while(true) if(NumberOfFreeSeats >0) { { P(customers); NumberOfFreeSeats--; //等待顾客,睡眠 V(customers);//通知理发师 P(accessSeats); //lock V(accessSeats);//unlock NumberOfFreeSeats++; P(barbers);//等待理发师 V(accessSeats); //unlock 顾客理发 理发中… } V(barbers) ; else }//while V(accessSeats); } }//while }
3 两个进程可以改为 semaphore S1=1 semaphore S2=0 Process X L1:P(S1) 使用资源r V(S2) goto L1

操作系统习题

操作系统习题

操作系统作业【注意】对于作业中的选择题,都要求抄写题目(题中若有插图可不画),并在题目上填写答案。

作业1——进程同步(1)1.设有n个进程使用同一个共享变量,如果最多允许m(m < n)个进程同时进入相关临界区,则信号量的变化范围是。

A. n,n-1,...,n-mB. m,m-1,...1,0,-1,...m-nC. m,m-1,...1,0,-1,...m-n-1D. m,m-1,...1,0,-1,...m-n+12.对于有两个并发进程的系统,设互斥信号量为mutex,若mutex=0,则。

A. 表示没有进程进入与mutex相关的临界区B. 表示有一个进程进入与mutex相关的临界区C. 表示有一个进程进入与mutex相关的临界区,另一个进程等待进入D.表示有两个进程进入与mutex相关的临界区3.S.queue,S.value是信号灯S的两个组成部分,当S.queue为空时,S.value的值是( ) A.S.value≤0 B.S.value=0 C.S.value=1 D.Svalue≥04.如果信号量的当前值为-3,则表示系统中在该信号量上有个等待进程。

5.下列选项中,操作系统提供给应用程序的接口是。

(2010全国试题)A.系统调用B.中断C.库函数D.原语6.下列选项中,导致创建新进程的操作是。

(2010全国试题)I.用户登录成功II.设备分配III.启动程序执行A.仅I和II B.仅II和III C.仅I和III D.I、II和III7.设与某资源关联的信号量初值为3,当前值为1。

若M表示该资源的可用个数,N表示等待该资源的进程数,则M、N分别是。

(2010全国试题)A.0、1 B.1、0 C.1、2 D.2、0作业2——进程同步(2)1.如何利用信号量机制来实现多个进程对临界资源的互斥访问?2.四个进程A、B、C、D都要读一个共享文件F,系统允许多个进程同时读文件F,但限制是进程A 和进程C不能同时读文件F,进程B和进程D也不能同时读文件F,为了使这四个进程并发执行时能按系统要求使用文件,现用PV操作进行管理,请回答下面的问题:(1)应定义的信号量及初值:。

进程同步与互斥练习答案

进程同步与互斥练习答案
进程同步与互斥
练习题
选择题
• 1.任何两个并发进程之间存在着(D )的 关系。 A.各自完全独立 B.拥有共享变量 C.必须互斥 D.可能相互制约
• 2.并发进程执行的相对速度是(D )。 A.由进程的程序结构决定的 B.由进程自己来控制的 C.在进程被创建时确定的 D.与进程调度策略有关的
• 3.并发进程执行时可能会出现“与时间有 关的错误”,这种错误是由于并发进程(A ) 引起的。 A.使用共享资源 B.执行的顺序性 C.要求计算时间的长短 D.程序的长度
1. 有m个进程共享同一临界资源,若使用信号量机制实现对资源 的互斥访问,则信号量值的变化范围是 1-m≤ mutex ≤1。 2. 对于两个并发进程,设互斥信号量为mutex,若mutex=0,则 ____B____ A 表示没有进程进入临界区 B 表示有一个进程进入临界区 C表示有一个进程进入临界区,另一个进程等待进入 D 表示有两个进程进入临界区 3. 设系统中有n(n>2)进程,且当前不在执行进程调度程序,试 考虑下述4种情况哪种不能发生:A A没有运行进程,有2个就绪进程,n-2个进程处于等待状态。 B有1个运行进程,没有就绪进程,n-1个进程处于等待状 C有1个运行进程,有1个就绪进程,n-2个进程处于等待状态 D有1个运行进程,有n-1个就绪进程,没有进程处于等待状态
互( B)关系。 A.联接 C.继续
B.制约 D.调用
多项选择题
• 1.有关并发进程的下列叙述中,(CDE )是正 确的。 A.任何时刻允许多个进程在同一CPU上运 行 B.进程执行的速度完全由进程自己控制 C.并发进程在访问共享资源时可能出现与 时间有关的错误 D.同步是指并发进程中存在的一种制约关 系 E.各自独立的并发进程在执行时不会相互 影响

第三章 进程 习题

第三章 进程 习题
F,死锁是指因相互竞争资源使得系统中有多个阻塞进程的情况;
G,若系统中并发运行的进程和资源之间满足互斥使用,保持和等待,非剥夺性和循环等待,则可判定系统中发生了死锁;
H,在对付死锁的策略中,解除死锁通常都是和检测死锁配套使用;
I,产生死锁的原因可归结为竞争资源和进程推进顺序不当;
J,在死锁的解决方法中,由于避免死锁采用静态分配资源策略,所以对资源的利用率不高.
如果某一进程获得除CPU外的所有所需运行资源,经调度,分配给它CPU,该进程将进入( ).
A,就绪状态B,运行状态
C,等待状态D,活动状态
如果某一进程在运行时,因某种原因暂停,此时将脱离运行状态,而进入( ).
A,自由状态B,停止状态
C,等待状态D,静止状态
进程从运行状态变为等待状态的原因是( ).
A,共享资源B,临界区
C,临界资源D,共享区
答案-1:C
临界区是指( ).
A,并发进程中用于实现进程互斥的程序段
B,并发程序中用于实现进程同步的程序段
C,并发程序中用于实现进程通信的程序段
D,并发程序中与共享变量有关的程序段
答案-6:D
进程是( ).
A,与程序等效的概念B,并发环境中程序的执行过程
C,一个系统软件D,存放在内存中的程序
在进程通信中,使用信箱方式交换信息的是( ).
A,低级通信B,高级通信C,共享存储器通信D,管道通信
答案:B(普通)
关于进程,下列叙述不正确的是( ).
A,进程包含了数据和运行其上的程序
B,同一个程序运行在不同的数据集合上时,构成了不同的进程
C,一个被创建了的进程,在它消亡之前,总是处于3种基本状态之一
(×)2,具有多道功能的操作系统一定是多用户操作系统.

(完整版)第三章进程同步与通信作业习题与答案

(完整版)第三章进程同步与通信作业习题与答案

第三章一.选择题(50题)1.以下_B__操作系统中的技术是用来解决进程同步的。

A.管道B.管程C.通道D.DMA2.以下_B__不是操作系统的进程通信手段。

A.管道B.原语C.套接字D.文件映射3.如果有3个进程共享同一程序段,而且每次最多允许两个进程进入该程序段,则信号量的初值应设置为_B__。

A.3B.2C.1D.04.设有4个进程共享一个资源,如果每次只允许一个进程使用该资源,则用P、V 操作管理时信号量S的可能取值是_C__。

A.3,2,1,0,-1B.2,1,0,-1,-2C. 1,0,-1,-2,-3D.4,3,2,1,05.下面有关进程的描述,是正确的__A__。

A.进程执行的相对速度不能由进程自己来控制B.进程利用信号量的P、V 操作可以交换大量的信息C.并发进程在访问共享资源时,不可能出现与时间有关的错误D.P、V操作不是原语操作6.信号灯可以用来实现进程之间的_B__。

A.调度B.同步与互斥C.同步D.互斥7.对于两个并发进程都想进入临界区,设互斥信号量为S,若某时S=0,表示_B_ _。

A.没有进程进入临界区B.有1个进程进入了临界区C. 有2个进程进入了临界区D. 有1个进程进入了临界区并且另一个进程正等待进入8. 信箱通信是一种_B__方式A.直接通信B.间接通信C.低级通信D.信号量9.以下关于临界区的说法,是正确的_C__。

A.对于临界区,最重要的是判断哪个进程先进入B.若进程A已进入临界区,而进程B的优先级高于进程A,则进程B可以打断进程A而自己进入临界区C. 信号量的初值非负,在其上只能做PV操作D.两个互斥进程在临界区内,对共享变量的操作是相同的10. 并发是指_C__。

A.可平行执行的进程B.可先后执行的进程C.可同时执行的进程D.不可中断的进程11. 临界区是_C__。

A.一个缓冲区B.一段数据区C.一段程序D.栈12.进程在处理机上执行,它们的关系是_C__。

进程同步与通信作业习题与答案

进程同步与通信作业习题与答案

第三章一.选择题(50题)1.以下_B__操作系统中的技术是用来解决进程同步的。

A.管道B.管程C.通道2.以下_B__不是操作系统的进程通信手段。

A.管道B.原语C.套接字D.文件映射3.如果有3个进程共享同一程序段,而且每次最多允许两个进程进入该程序段,则信号量的初值应设置为_B__。

4.设有4个进程共享一个资源,如果每次只允许一个进程使用该资源,则用P、V操作管理时信号量S的可能取值是_C__。

,2,1,0,-1 ,1,0,-1,-2 C. 1,0,-1,-2,-3 ,3,2,1,05.下面有关进程的描述,是正确的__A__。

A.进程执行的相对速度不能由进程自己来控制B.进程利用信号量的P、V 操作可以交换大量的信息C.并发进程在访问共享资源时,不可能出现与时间有关的错误、V操作不是原语操作6.信号灯可以用来实现进程之间的_B__。

A.调度B.同步与互斥C.同步D.互斥7.对于两个并发进程都想进入临界区,设互斥信号量为S,若某时S=0,表示_B__。

A.没有进程进入临界区B.有1个进程进入了临界区C. 有2个进程进入了临界区D. 有1个进程进入了临界区并且另一个进程正等待进入8. 信箱通信是一种_B__方式A.直接通信B.间接通信C.低级通信D.信号量9.以下关于临界区的说法,是正确的_C__。

A.对于临界区,最重要的是判断哪个进程先进入B.若进程A已进入临界区,而进程B的优先级高于进程A,则进程B可以打断进程A而自己进入临界区C. 信号量的初值非负,在其上只能做PV操作D.两个互斥进程在临界区内,对共享变量的操作是相同的10. 并发是指_C__。

A.可平行执行的进程B.可先后执行的进程C.可同时执行的进程D.不可中断的进程11. 临界区是_C__。

A.一个缓冲区B.一段数据区C.一段程序D.栈12.进程在处理机上执行,它们的关系是_C__。

A.进程之间无关,系统是封闭的B.进程之间相互依赖相互制约C.进程之间可能有关,也可能无关D.以上都不对13. 在消息缓冲通信中,消息队列是一种__A__资源。

进程同步例题

1. 若有一个文件F ,供进程共享。

现把进程分成A 、B 两组,规定同组的进程可以同时读文件F ,但当有A 组(或B 组)的进程在读文件F 时不允许B 组(或A 组)的进程读文件F 。

现定义两个计数器C1和C2分别记录A 组和B 组中读文件F 的进程数。

当用P 、V 操作进行管理时需要三个信号量Sl Sl、、S2和SAB 才能保证正确的并发执行。

程序结构如下:Begin Sl ,S2S2,,SAB SAB::semaphore semaphore;;C1C1,,C2C2::integer integer;;S1:=1;S2:=1 ;SAB SAB::=1;C1=1;C1::=0=0;;C2C2::=0=0;;cobeginprocess Ai(i=1,2,…,…) )begin((1));C1:=C1十1;if Cl=1 then((2));((3));read file F((4))C1:=C1—1;if Cl=0 then((5))((6));end ;process Bj(j=1,2,…,…) )begin((7));C2:=C2十1;if C2=1 then((8));((9));read file F ;((10));C2:=C2=C2——1;if C2=0 then((11));((12)); end ;coend ;end ;回答:1.说明信号量S1,S2,SAB 的作用的作用2. 在上述程序的括号内填入适当的P 、V 操作,完善该程序。

操作,完善该程序。

2.一座山上有一个隧道,规定每次只允许一列火车过隧道,现在南方北方都有车要过隧道,如果把每个过隧道者看作一个进程,为保证安全.请用PV 操作实现正确管理。

理。

3.桌上有一个空盒,盒内只允许放一个水果,甲可向盒内放苹果,乙可向盒内放桔子。

丙专等吃盒中的苹果,丁专等吃盒中的桔子,若盒内已有水果,放者必须等待,若盒内没有自己要吃的水果,吃者必需等待,请回答下列问题:(1)(1)请给出四个之间的同步互斥关系。

操作系统-进程同步-信号量练习题

1【单选题】用P、V操作管理临界区时,互斥信号量的初值应定义为( A)。

•A,1•B,0•C,-1•D,任意值2【单选题】在操作系统中,对信号量S的P原语操作定义中,使进程进入相应等待队列等待的条件是( )。

•A,S>0•B,S = 0•C,S<0•D,S<>0我的答案:C3【单选题】信号量S的初值为8,在S上执行了10次wait 操作,6次signal操作后,S的值为(D )。

•A,10•B,8•C,6•D,4P操作每执行一次,信号量减1;V操作每执行一次,信号量加1.所以答案为8-10+6 = 44【单选题】用V操作唤醒一个等待进程时,被唤醒进程的状态应变成( B)状态。

•A,执行•B,就绪•C,阻塞•D,挂起被唤醒的进程由等待状态变为就绪状态。

5【单选题】利用Wait和signal操作可以( )。

•A,实现进程互斥和同步•B,检测死锁•C,解除死锁•D,防止死锁我的答案:A6【单选题】两个并发进程,设互斥信号量mutex(初值为1),若信号量=0;则(B )•A,表示没有进程进入临界区•B,表示有一个进程进入临界区•C,表示有一个进程进入临界区,另一个进程等待进入•D,表示两个进程进入临界区临界区不允许两个进程同时进入,D选项明显错误。

mutex初值为1,表示允许一个进程进入临界区,当有一个进程进入临界区且没有进程等待进入时,mutex值减1,变为0。

7【单选题】V操作是对信号量执行加1操作,意味着释放一个单位资源,加1后如果信号量的值等于零,则从等待队列中唤醒一个进程,现进程变为等待状态,否则现进程继续进行。

•A,对•B,错我的答案:B8【单选题】有3个进程,两台打印机,用wait和sigual操作来实现互斥访问打印机,则信号量S的取值范围是( )•A,2,1,0,-1•B,3,2,1,0•C,2,1,0,-1,-2•D,1,0,-1,-2我的答案:如果n个进程共享两个打印机,信号量取值范围:-(n-2)~2;9【单选题】设与某资源相关的资源信号量K,初值为3,当前值为1,则可用资源个数为( ),等待资源的进程数为( )。

操作系统-进程管理习题

进程管理习题一、单项选择题1.在进程管理中,当________时,进程从阻塞状态变为就绪状态。

A进程被进程调度程序选中 B.等待某一事件C.等待的事件发生D.时间片用完2.建立进程就是____。

A.建立进程的目标程序B.为其建立进程控制块C.建立进程及其子孙的进程控制块D.将进程挂起3.分配到必要的资源并获得处理机时的进程状态是______。

A.就绪状态B.执行状态C.阻塞状态D.撤消状态4.在操作系统中,P、V操作是一种_______。

A.机器指令B.系统调用命令C.作业控制命令D.低级进程通讯原语5.在消息缓冲通信中,消息队列属于_________资源。

A.临界B.共享C.永久D.可剥夺6.对进程的管理和控制使用__________。

A.指令B.原语C.信号量D.信箱通信7.在操作系统中,进程是一个具有一定独立功能的程序在某个数据集上的一次______。

A.等待活动B.运行活动C.单独操作D.关联操作8.若P、V操作的信号量S初值为2,当前值为-1,则表示有_______等待进程。

A.0个B.1个C.2个D.3个9.下面对进程的描述中,错误的是__________。

A.进程是动态的概念B.进程执行需要处理机C.进程是有生命期的D.进程是指令的集合10.如果有三个进程共享同一互斥段,而且每次最多允许两个进程进入该互斥段,则信号量的初值应设置为A.3B.1C.2D.011.下列的进程状态变化中,____________变化是不可能发生的。

A.运行→就绪B.运行→等待C.等待→运行D.等待→就绪12.一个运行的进程用完了分配给它的时间片后,它的状态变为__________。

A.就绪B.等待C.运行D.由用户自己确定13.用V操作唤醒一个等待进程时,被唤醒进程的状态变为_______。

A.等待B.就绪C.运行D.完成14.临界区是_____________。

A.一段共享数据区B.一个缓冲区C.一段互斥执行的程序段D.一个互斥资源15.进程间的同步是指进程间在逻辑上的相互__________关系。

进程同步习题全


进程管理
【例】进程P1使用缓冲区buffer向进程P2,P3,P4发 送消息,要求每当P1向buffer中发消息时,只有 当P2,P3,P4进程都读取这条消息后才可再向 buffer中发送消息。利用PV原语描述进程的动作 序列
P2 P1 buffer P3
P4
进程管理
【解答】设置信号量初值S1=S2=S3=0,S=3 进程P1 进程P2 进程P3 P4 P(S) P(S1) P(S2) P(S3) P(S) 读消息 读消息 读消息 P(S) V(S) V(S) V(S) 发送消息到 Buffer V(S1) V(S2)
进程管理
生产者i repeat P(empty) P(mutex) putdata V(mutex) V(full)
消费者i repeat P(full) P(mutex) getdata V(mutex) V(empty)
进程管理
【例】多个生产者,多个消费者,N个buffer,多次循环存 取buffer,即多个生产者不断进行putdata操作,多个消费 者不断进行getdata操作 【解答】 只有buffer有空间时才能进行putdata操作 只有buffer有数据时才能进行getdata操作 不允许多个消费者和多个生产者同时操作 信号量 full:表示buffer是否有数据,初值为0 empty:表示buffer是否为空,初值为n mutex:表示buffer是否可操作,初值为1
进程管理
操作流程 <PUT类进程> repeat 判断buff1是否有空间,没有则等待 是否可操作buff1 PUT 设置buff1可操作标志 设置buff1有数据的标志 until false
进程管理
<MOVE类进程> repeat 判断buff1是否有数据,没有则等待 判断buff2是否有空间,没有则等待 是否可操作buff1 是否可操作buff2 MOVE 设置buff1可操作标志 设置buff2可操作标志 设置buff1有空间标志 设置buff2有空间标志
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档