操作系统 进程同步算法习题精选

合集下载

OS进程同步(信号量典型题)

OS进程同步(信号量典型题)

例题1(北京大学1999年)有一个仓库,可以存放A和B两种产品,仓库的存储空间足够大,但要求:(1)一次只能存人一种产品((A或B);(2)一N< A产品数量一B产品数量<M其中,N和M是正整数。

试用“存放A’和‘存放B’以及P操作和V操作描述产品A和产品B的人库过程。

解答:应先将表达式转换成制约条件,不可在程序中直接使用该表达式将表达式分解为:B产品数量—A产品数量<NA产品数量—B产品数量<M可这样理解:(1)若只放人A产品,而不放入B产品,则A产品最多可放M—1次便被阻塞,即A进程每操作一次就应当将计数器减1(计数器初值为M—1),当计数器值为0时,进程程A被阻塞;每当放入一个B产品,则可令A产品的计数器增加1,表明A产品可以多一次放入产品的机会;同理,(2)若只放人B产品,而不放入A产品,则B产品最多可;放N一1次便被阻塞,即A进程每操作一次就应当将计数器减1(计数器初值为N—1)。

当计数器值为0时,进程B被阻塞;每当放人一个A产品,则可令B产品的计数器增加1,表明B产品可以多一次放入产品的机会。

由此可见,该问题是一个同步控制问题。

又因为一次仅允许一种产品人库,设置信号量mutex控制粮进程互斥访问临界资源(仓库)。

过程如下:beginmutex:=1;Sa := M-1;Sb := N-1;ParbeginA产品beginrepeatP (Sa);P (mutex);A人库;V (mutex);V (Sb);Until false;End;B产品beginrepeatP (Sb);P (mutex);B人库;V (mutex);V (Sa);Until false;End;rend;例题2(华中理工大学1999年试题)设公共汽车上,司机和售票员的活动分别是:司机:售票员:启动车辆上乘客正常行车关车门到站停车售票开车门下乘客在汽车不断地到站,停车,行驶过程中,这两个活动有什么同步关系?并用信号灯的P, V操作实现它们的同步。

进程同步习题

进程同步习题

补充题1:有三个进程p1、p2、p3协作解决文件打印问题:系统有两个环形缓冲池,每个缓冲池有n个缓冲区;p1每次将1条记录从磁盘读入缓冲池1,p2每次将1条记录从缓冲池1复制到缓冲池2,p3每次从缓冲池2取出1条记录打印输出。

请用信号量机制实现这三个进程的同步。

信号量提示:full1、empty1、mutex1、in1、out1;full2、empty2、mutex2、in2、out2。

答:方法1,记录型信号量机制:var mutex1、mutex2、empty1、empty2、full1、full2:semaphore:=1,1,n,n,0,0;buffer1:array[0,…,n-1] of item;buffer2:array[0,…,n-1] of item;int1,out1,int2,out2:integer:=0,0,0,0;p1进程:beginrepeat……从磁盘读入一条记录到nextp;……Wait(empty1);Wait(mutex1);Buffer1(int1):=nextp;In1: =(int1+1) mod n;Signal(mutex1);Signal(full1);Until false;EndP2进程:BeginRepeatWait(full1);Wait(mutex1);Nextc:=buffer1(out1);Out1:=(out1+1) mod n;Signal(mutex1);Signal(empty1);从buffer1取出1条记录;Until false;……repeat……Wait(empty2);Wait(mutex2);Buffer2(int2):=nextp;In2: =(int2+1) mod n;Signal(mutex2);Signal(full2);把记录放入buffer2中;Until false;EndP3进程:BeginRepeatWait(full2);Wait(mutex2);Nextc:=buffer2(out2);Out2:=(out2+1) mod n;Signal(mutex2);Signal(empty2);从buffer2取出1条记录打印;Until false;End方法2,AND型信号量机制var mutex1、mutex2、empty1、empty2、full1、full2:semaphore:=1,1,n,n,0,0;buffer1:array[0,…,n-1] of item;buffer2:array[0,…,n-1] of item;int1,out1,int2,out1,out2,:integer:=0,0,0,0;p1进程:beginrepeat……从磁盘读入一条记录到nextp;……SWait(empty1,mutex1);Buffer1(int1):=nextp;In1: =(int1+1) mod n;SSignal(mutex1,full1);Until false;EndP2进程:BeginRepeatSWait(full1,mutex1);Nextc:=buffer1(out1);Out1:=(out1+1) mod n;SSignal(mutex1,empty1);从buffer1取出1条记录;Until false;…………SWait(empty2,mutex2);Buffer2(int2):=nextp;In2: =(int2+1) mod n;SSignal(mutex2 ,full2);把记录放入buffer2中;Until false;EndP3进程:BeginRepeatSWait(full2,mutex2);Nextc:=buffer2(out2);Out2:=(out2+1) mod n;SSignal(mutex2,empty2);从buffer2取出1条记录打印;Until false;End补充题2:上题中如果两个缓冲池都是单缓冲区,则如何简化各进程的描述?提示:单缓冲区,故上题中的mutex、in、out均不需要。

第7章进程同步(含答案)

第7章进程同步(含答案)
4、若一个进程已进入临界区,其他欲进入临界区的进程必须(等待)。
5、用P、V操作管理临界区时,任何一个进程在进入临界区之前应调用(P)操作,退出临界区时应调用(V)操作。
6、在多道程序系统中,进程之间存在着的不同制约关系可以划分为两类:(同步)与(互斥)。(同步)指进程间具有一定逻辑关系;(互斥)是指进程间在使用共享资源方面的约束关系。
INT BUFFER-SIZE=N;
INT SF=0;/*BUFFER中是否有可取的信息*/
INT SE=N;/* BUFFER中是否有空位置以存放信息*/
MAIN()
{
GET()
COMPUTE()
}
4、桌上有一空盘,允许存放一只水果,爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。规定当盘空时一次只能放一只水果供吃者取出,请用P、V原语实现爸爸、儿子、女儿三个并发进程的同步。
{ int b2=0:/*表示进程S2是否可以开始执行*/
int b3=0:/*表示进程S3是否可以开始执行*/
int b4=0:/*表示进程S4是否可以开始执行*/
Main()
s1();
s2();
s3()
s4()
}
6、 读者/写者问题。有一数据区为多个进程所共享,假设一些进程只能对该数据区完成读操作(读者),而另一些进程只能对其完成写操作(写者),读者和写者要遵守以下的约束:
Int SF=0;/*信号量SF用于表示缓冲区中有无可供计算的信息。*/
Main()
{
get();
compute();}
3、**在视频通信系统中,由进程PA采集一帧图像信息并存入环形缓冲区buffer,进程PB从buffer中取一帧数据进行处理,假设buffer的大小为n,试用P、V操作实现PA和PB。(类似生产者-消费者)

操作系统-第二章进程同步习题

操作系统-第二章进程同步习题

第二章进程同步一、选择最合适的答案1. 用P、V操作管理临界区时,信号量的初值一般应定义为( C )。

A.–1B.0C.1D.任意值2. 有m个进程共享同一临界资源,若使用信号量机制实现对一临界资源的互斥访问,则信号量的变化范围是( A )。

A.1至–(m-1)B.1至m-1C.1至–mD.1至m3. 在下面的叙述中,正确的是(C )。

A.临界资源是非共享资源B.临界资源是任意共享资源C.临界资源是互斥共享资源D.临界资源是同时共享资源4. 对进程间互斥地使用临界资源,进程可以(D )A.互斥地进入临界区B.互斥地进入各自的临界区C.互斥地进入同一临界区D.互斥地进入各自的同类资源的临界区5. 设两个进程共用一个临界资源的互斥信号量mutex,当mutex=1时表示(B )。

A.一个进程进入了临界区,另一个进程等待B.没有一个进程进入临界区C.两个进程都进入了临界区D.两个进程都在等待6. 设两个进程共用一个临界资源的互斥信号量mutex,当mutex=-1时表示(A )。

A.一个进程进入了临界区,另一个进程等待B.没有一个进程进入临界区C.两个进程都进入了临界区D.两个进程都在等待7.当一进程因在记录型信号量S上执行P(S)操作而被阻塞后,S的值为(B )。

A.>0B.<0C.≥0D.≤08.当一进程因在记录型信号量S上执行V(S)操作而导致唤醒另一进程后,S的值为( D )。

A.>0B.<0C.≥0D.≤09.如果信号量的当前值为-4,则表示系统中在该信号量上有(A )个进程等待。

A.4B.3C.5D.010.若有4个进程共享同一程序段,而且每次最多允许3个进程进入该程序段,则信号量的变化范围是( B )。

A. 3,2,1,0B. 3,2,1,0,-1C. 4,3,2,1,0D. 2,1,0,-1,-211.若信号S的初值为2,当前值为-1,则表示有( B )个等待进程?A.0B.1C.2D.312.如果有三个进程共享同一互斥段,而且每次最多允许两个进程进入该互斥段,则信号量的初值应设置为( C )。

进程同步经典习题

进程同步经典习题

进程同步经典习题1.某车站售票厅,任何时刻最多可容纳20名购票者进入,当售票厅中少于20名购票者时,则厅外的购票者可立即进入,否则需在外面等待。

若把一个购票者看作一个进程,请用PV操作实现管理。

解:定义一个信号量S,初值为20parbeginprocess pl(l=1,2,……)beginwait(S);进入售票厅;购票;退出;signal(S)end2.桌上有一空盘,允许存放一个水果,爸爸可向盘内放苹果,妈妈可向盘内放桔子,儿子专等吃盘内的桔子,女儿专等吃盘中的苹果,请用P、V 操作实现爸爸、妈妈、儿子、女儿四个并发进程的同步与互斥。

int S=1;int Sa=0;int Sb=0;main(){cobeginfather();mather();son();daughter();coend}father() mather(){while(1) { while(1){p(S); {p(S) ;将一个苹果放入盘中将一个桔子放入盘中V(Sa);} V(Sb);}} }son() daughter(){ while(1) { while(1){p(Sb); { p(Sa);从盘中取出桔子从盘中取出苹果V(S);吃桔子;} V(S);吃苹果;}}3.生产围棋的工人不小心把相等数量的黑子和白子混装在一个盒子里,现在要用自动分拣系统把黑子和白子分开,该系统由两个并发执行的进程PA和PB组成,系统功能如下:(1)PA专拣黑子,PB专拣白子;(2)每个进程每次只拣一个子,当一个进程拣子时,不允许另一个进程去拣子;(3)当一个进程拣一个子(黑或白)后,必须让另一个进程去拣一个子(白或黑)请回答:①这两个并发进程之间的关系是同步还是互斥②写出PV操作管理时应定义的信号量及其初值。

③根据定义的信号量,写出用PV操作管理两个并发进程的程序答:①两个进程之间是同步关系②定义两个信号量S1和S2,初值为1和0③process PA process PAbegin beginrepeat repeatwait(S1) wait(S2)拣黑子拣白子signal(S2) signal(S1)until false until falseend end4.有一阅览室,读者进入时必须先在一张登记表上登记,该表为每一座位列出一个表目,包括座号、姓名,读者离开时要注销登记信息;假若阅览室共有100个座位。

进程同步例题

进程同步例题

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,则可用资源个数为( ),等待资源的进程数为( )。

进程同步习题全

进程同步习题全

进程管理
【例】进程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.以下________操作系统中的技术是用来解决进程同步的。

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

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

A.3B.2C.1D.04.下面有关进程的描述,________是正确的。

A.进程执行的相对速度不能由进程自己来控制B.进程利用信号量的P、V操作可以交换大量的信息C.并发进程在访问共享资源时,不可能出现与时间有关的错误D.P、V操作不是原语操作5.信号可以用来实现进程之间的________A.调度B.同步与互斥C.同步D.互斥6.对于两个并发进程都想进入临界区,设互斥信号量为S,若某时S=0,表示________。

A.没有进程进入临界区B.有1个进程进入了临界区C.有2个进程进入了临界区D.有1个进程进入了临界区并且另一个进程正等待进入7.信箱通信是一种________方式。

A.直接通信B.间接通信C.低级通信D.信号量8.以下关于临界区的说法,________是正确的。

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

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

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

A.进程之间无关,系统是封闭的B.进程之间相互依赖、相互制约C.进程之间可能有关,也可能无关D.以上都不对12.在单处理机中,如果系统中有N个进程,则就绪队列中的进程个数最多的是________。

第二章进程同步典型习题

第二章进程同步典型习题

}
}
6 有一个仓库,可以存放 和B两种产品,但要求: 有一个仓库,可以存放A和 两种产品 但要求: 两种产品, (1) 每次只能存入一种产品(A或B) ) 每次只能存入一种产品( 或 ) 产品数量- 产品数量 产品数量< 。 (2) -N<A产品数量-B产品数量<M。 ) < 产品数量 其中, 和 是正整数 试用P、 操作描述产品 是正整数。 其中,N和M是正整数。试用 、V操作描述产品 A与B的入库过程。 的入库过程。 与 的入库过程 提示:设两个信号量Sa、 提示:设两个信号量Sa、Sb Sa Sa表示允许 产品比B 表示允许A Sa表示允许A产品比B产品多入库的数量 Sb表示允许 产品比A 表示允许B Sb表示允许B产品比A产品多入库的数量
写者:
while (1) { P(s); P(Wmutex); 写 V(Wmutex); V(s); };
8. 售票厅问题
某车站售票厅,任何时刻最多可容纳 名购票者进入 名购票者进入, 某车站售票厅,任何时刻最多可容纳20名购票者进入,当售 票厅中少于20名购票者时 则厅外的购票者可立即进入, 名购票者时, 票厅中少于 名购票者时,则厅外的购票者可立即进入,否 则需在外面等待。若把一个购票者看作一个进程, 则需在外面等待。若把一个购票者看作一个进程,请回答下 列问题: 列问题: (1)用PV操作管理这些并发进程时,应怎样定义信号 操作管理这些并发进程时, ) 操作管理这些并发进程时 写出信号量的初值以及信号量各种取值的含义。 量,写出信号量的初值以及信号量各种取值的含义。 操作, (2)根据所定义的信号量,写出应执行的 操作,以 )根据所定义的信号量,写出应执行的PV操作 保证进程能够正确地并发执行。 保证进程能够正确地并发执行。
练习

[操作系统]经典进程同步问题题库

[操作系统]经典进程同步问题题库

1、测量控制系统中的数据采集任务把所采集的数据送一单缓冲区;计算任务则从该缓冲区中取出数据并进行计算。

试写出利用信号量机制实现两者共享单缓冲区的同步算法。

Var Sempty,Sfull: semaphore:= 1,0BeginParbeginCollection:beginrepeat采集一个数据;wait(Sempty);数据放入缓冲区;signal(Sfull);untill false;end;Compute:beginrepeatwait(Sfull);从缓冲区取出数据;signal(Sempty);计算;` until false;end;ParendEnd2、有一阅览室,共有100个座位。

读者进入时必须先在一种登记表上登记,该表为每一座位列一个表目,包括座号和读者姓名。

读者离开时要注销掉登记内容。

试用wait和signal原语描述读者进程的同步问题。

var mutex, readcount :semaphore := 1,100; BeginParbeginProcess Reader:beginrepeatwait(readcount);wait(mutex);<填入座号和姓名完成登记>;signal(mutex);<阅读>wait(mutex)<删除登记表中的相关表项,完成注销>signal(mutex);signal(readcount);until false;end;parend;End;1)、桌上有一空盘,只允许放一个水果,爸爸专向盘中放苹果,妈妈专向盘中放桔子;女儿专吃盘中的苹果,儿子专吃盘中的桔子;试用wait 和signal原语实现爸爸、妈妈、女儿、儿子之间的同步问题。

var Sempty, Sapple, Sorange,: semaphore:= 1,0,0; beginparbeginFather: beginrepeatwait(Sempty);<put apple in tray>;signal(Sapple);until false;end;Mother: beginrepeatwait(Sempty);<put orange in tray>;signal(Sorange);until false;end;Son: beginrepeatwait(Sorange);<take orange>;signal(Sempty);until false;end;Daughter: beginrepeatwait(Sapple);<take apple>;signal(Sempty);until false;end;parend;end;1、在4×100米接力赛中,4个运动员之间存在如下关系,运动员1跑到终点把接力棒交给运动员2;运动员2一开始处于等待状态,在接到运动员1传来的接力棒后才能往前跑,他跑完100米后交给运动员3,运动员3也只有在接到运动员2传来的棒后才能跑,他跑完100米后交给运动员4,运动员4接到棒后跑完全程。

进程同步例题

进程同步例题

例1:医生进程Doctor,化验进程Lab共同完成病人的诊治工作,医生开化验单,化验进程进行化验,医生根据化验结果进行诊断。

请用记录型信号量和P、V 操作实现两进程的同步。

例2 吃水果问题
例3、某集装箱仓库共有100个仓位,用同一辆吊车负责集装箱的吊进和吊出。

现有一批集装箱运来进仓,另有货主不断前来提货(按仓位顺序进出),设进仓用过程PUTIN表示,出仓用过程GETOUT表示,请用P、V操作协调上述工作。

例4、有一独木桥,每次只允许一人过桥,现在桥的南北两端随时有人要过桥(PASS),为保证安全,请用P、V操作解决如下问题:
1)只要桥上无人则允许任一方的一人过桥,桥上有人则等待。

2)两边的人交替过桥。

即某一方一人过桥后要让另一方的一个人过桥,桥上
有人则等待。

例5、有三个进程PA、PB、PC合作解决文件打印问题:PA将文件记录从磁盘读入主存的缓冲区1,每执行一次读一个记录;PB将缓冲区1的内容复制到缓冲区2,每执行一次复制一个记录;PC将缓冲区2的内容打印出来,每执行一次打印一个记录。

缓冲区的大小等于一个记录的大小。

请用P、V操作协调三个进程的工作。

例6 少林寺问题。

操作系统_进程同步算法习题精选

操作系统_进程同步算法习题精选

A1: while (1) { P(Sin[1]); P(Sin[2]); 将数据放入缓冲区 V(Sout[1]); V(Sout[2]); }
Bi: while (1) { P(Sout[i]); 从缓冲区取数 V(Sin[i]); }
向目标前进一步:
• 设缓冲区的大小为m • 有一个发送进程A1 • 有二个接收进程B1、B2
Bi: while (1) { P(Sout[i]); V(mutex); 从缓冲区取数 P(mutex); V(Sin[i]); };
例题6
a,b两点之间是一段东西向的单行车道,现要设计一个自
动管理系统,管理规则如下: (1)当ab之间有车辆在行驶时同方向的车可以同时驶入ab 段,但另一方向的车必须在ab段外等待; (2)当ab之间无车辆在行驶时,到达a点(或b点)的车辆 可以进入ab段,但不能从a点和b点同时驶入; (3)当某方向在ab段行驶的车辆驶出了ab段且暂无车辆进
到达目标
• 设缓冲区的大小为m • 有n1个发送进程A1….An1 • 有n2个接收进程B1…Bn2
• 设有n2个信号量Sin[n2] 初值均为m • 设有n2个信号量Sout[n2] 初值均为0
Aj: while (1) { for(i=1;i<=n2;i++) P(Sin[i]); P(mutex); 将数据放入缓冲区 V(mutex); for(i=1;i<=n2;i++) V(Sout[2]); }
思考题: 如果S和T是由多个缓冲区组成的 缓冲池,上述算法将如何修改?
【例题3】
桌上有一空盘,最多允许存放一只水 果。爸爸可向盘中放一个苹果或放一个桔 子,儿子专等吃盘中的桔子,女儿专等吃 苹果。 试用P、V操作实现爸爸、儿子、女儿 三个并发进程的同步。

进程同步典型例题(操作系统)

进程同步典型例题(操作系统)

进程同步练习题1.在公共汽车上,司机和售票员的工作流程如图所示。

为保证乘客的安全,司机和售票员应密切配合协调工作。

请用信号量来实现司机与售票员之间的同步。

司机售票员图司机和售票员工作流程图①约束:怎么密切配合协调工作才能保证安全呢?a)关车门之后再启动车辆;利用前驱图解释b)到站停车之后再开车门;②根据约束定义信号量;关车门和启动车辆需要一个信号量进行同步S1;到站停车和开车门之间需要一个信号量进行同步S2;③建立几个进程呢?a)为司机建立一个进程Driver;b)为售票员建立一个进程Conductor;Driver:Repeat启动车辆;正常行驶;到站停车;Until false;Conductor:Repeat关车门;售票;开车门;Until false;④加入同步关系:Driver:RepeatWait (s1);启动车辆;正常行驶;到站停车;Signal(s2)Until false;Conductor:Repeat关车门;Signal(s1);售票;Wait(s2)开车门;Until false;main(){Driver();Conductor ();}2.桌子上有一只盘子,盘子中只能放一只水果。

爸爸专向盘子中放苹果,妈妈专向盘子中放橘子,一个儿子专等吃盘子中的橘子,一个女儿专等吃盘子中的苹果。

用PV操作实现他们之间的同步机制。

分析:①约束:a)爸爸和妈妈竞争盘子,往盘子放水果,爸爸在放时,妈妈等待,或者相反;b)爸爸和女儿要同步,即爸爸放完苹果之后通知女儿来吃;同时女儿吃完之后要通知盘子可用;c)妈妈和儿子要同步,即妈妈放完橘子之后通知儿子来吃;同时儿子吃完之后要通知盘子可用;②经上述分析可知:需要3个信号量:S1表示临界资源盘子,初值1;爸爸和女儿需要一个信号量进行同步S2=0 妈妈和儿子需要一个信号量进行同步S3=0;③建立进程?爸爸:妈妈:女儿:儿子:取一个苹果;取一个橘子;从盘子取一个苹果;从盘子取一个橘子;放入盘子;放入盘子吃苹果;吃橘子;Until false; Until false; Until false; Until false;④加入同步关系。

计算机操作系统进程同步练习题

计算机操作系统进程同步练习题

int stack[10];int top;void getspace(){int free;free=stack[top];top--;cout<<" free="<<free<<endl;}void release(int free){top++;stack[top]=free;}main(){for(top=0;top<10;top++)stack[top]=-1;stack[0]=288;stack[1]=121;stack[2]=85;stack[3]=32;stack[4]=6;top=4;cobegin{release(100);getspace();}cout<<" top="<<top<<endl;for(;top>=0;top--)cout<<"stack["<<top<<"]="<<stack[top]<<endl;}进程同步练习题1. 第二类读者写者问题,信号量解决方法答:为了使写者优先,可在原来的读优先算法的基础上增加一个互斥信号量s,初值为1,使得当至少有一个写者准备访问共享对象时,它可以使后续的读者进程等待完成;整型变量writecount,初值为0,用来对写者进行计数;互斥信号量mutex,初值为1,用来实现多个读者对写者writecount进行互斥访问。

Process reader(){ while(1){wait(s);wait(rmutex);if(readcount==0)wait(wmutex);readcount++;signal(rmutex);signal(s);perform read operation;wait(rmutex);readcount--;if(readcount==0)signal(wmutex);signal(rmutex);}}Process writer(){ while(1){wait(mutex);if(writecount==0)wait(s);writecount++;signal(mutex);wait(wmutex);perform write operation;signal(wmutex);wait(mutex);writecount--;if(writecount==0)signal(s);signal(mutex);}}Main( ){cobegin{ reader();writer(); }}2. 复印室里有一个操作员为顾客复印资料,有5把椅子供顾客休息等待复印。

操作系统自测题三(进程同步)

操作系统自测题三(进程同步)

操作系统自测题三一选择题1.以下________操作系统中的技术是用来解决进程同步的。

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

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

A.3B.2C.1D.04.下面有关进程的描述,________是正确的。

A.进程执行的相对速度不能由进程自己来控制B.进程利用信号量的P、V操作可以交换大量的信息C.并发进程在访问共享资源时,不可能出现与时间有关的错误D.P、V操作不是原语操作5.信号可以用来实现进程之间的________A.调度B.同步与互斥C.同步D.互斥6.对于两个并发进程都想进入临界区,设互斥信号量为S,若某时S=0,表示________。

A.没有进程进入临界区B.有1个进程进入了临界区C.有2个进程进入了临界区D.有1个进程进入了临界区并且另一个进程正等待进入7.信箱通信是一种________方式。

A.直接通信B.间接通信C.低级通信D.信号量8.以下关于临界区的说法,________是正确的。

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

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

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

A.进程之间无关,系统是封闭的B.进程之间相互依赖、相互制约C.进程之间可能有关,也可能无关D.以上都不对12.在单处理机中,如果系统中有N个进程,则就绪队列中的进程个数最多的是________。

操作系统进程通信练习及答案

操作系统进程通信练习及答案

进程同步与通信练习题(一)单项选择题1.临界区是指( )。

A.并发进程中用于实现进程互斥的程序段 B.并发进程中用于实现进程同步的程序段 C.并发进程中用户实现进程通信的程序段 D.并发进程中与共享变量有关的程序段2.相关临界区是指( )。

A.一个独占资源 B.并发进程中与共享变量有关的程序段 c.一个共享资源 D.并发进程中涉及相同变量的那些程序段3.管理若干进程共享某一资源的相关临界区应满足三个要求,其中( )不考虑。

A一个进程可以抢占己分配给另一进程的资源 B.任何进程不应该无限地逗留在它的临界区中 c.一次最多让一个进程在临界区执行 D.不能强迫一个进程无限地等待进入它的临界区4、( )是只能由P和v操作所改变的整型变量。

A共享变量 B.锁 c整型信号量 D.记录型信号量5.对于整型信号量,在执行一次P操作时,信号量的值应( )。

A.不变 B.加1 C减1 D.减指定数值6.在执行v操作时,当信号量的值( )时,应释放一个等待该信号量的进程。

A>0 B.<0 c.>=0D.<=07.Pv操作必须在屏蔽中断下执行,这种不可变中断的过程称为( )。

A初始化程序 B.原语c.子程序 D控制模块8.进程间的互斥与同步分别表示了各进程间的( )。

A.竞争与协作 B.相互独立与相互制约 c.不同状态 D.动态性与并发性9并发进程在访问共享资源时的基本关系为( )。

A.相互独立与有交往的 B.互斥与同步c并行执行与资源共享 D信息传递与信息缓冲10.在进程通信中,( )常用信件交换信息。

A.低级通信 B.高级通信 c.消息通信D.管道通信11.在间接通信时,用send(N,M)原语发送信件,其中N表示( )。

A.发送信件的进程名 B.接收信件的进程名 C信箱名 D.信件内容12.下列对线程的描述中,( )是错误的。

A不同的线程可执行相同的程序 B.线程是资源分配单位 c.线程是调度和执行单位 D.同一进程中的线程可共享该进程的主存空间13.实现进程互斥时,用( )对应,对同一个信号量调用Pv操作实现互斥。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档