PV操作习题答案.docx

上传人:b****7 文档编号:9861756 上传时间:2023-02-07 格式:DOCX 页数:11 大小:19.38KB
下载 相关 举报
PV操作习题答案.docx_第1页
第1页 / 共11页
PV操作习题答案.docx_第2页
第2页 / 共11页
PV操作习题答案.docx_第3页
第3页 / 共11页
PV操作习题答案.docx_第4页
第4页 / 共11页
PV操作习题答案.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

PV操作习题答案.docx

《PV操作习题答案.docx》由会员分享,可在线阅读,更多相关《PV操作习题答案.docx(11页珍藏版)》请在冰豆网上搜索。

PV操作习题答案.docx

PV操作习题答案

…信号量应用问题:

End;

Parend.写出程序描述下列前趋关系。

1end

S2->S4,S1->S3,S1->S2,

S2->S5,S3->S6,S4->S7,

2.请用信号量实现4×100(4人,每S5->S7,S6->S7

人100Vars1,s2,s3,s4:

semaphore:

=0,0,米)接力赛的同步过程。

提示:

前趋图同步问题,可设0,0;4个进程,三个信号量,进程1只设BeginV操作,进程4只设ParbeginP操作,其余进程先做P操作再做VP1:

begin操作。

Vars1,s2,s3:

semaphore:

=0,0,0;.;…

BeginV(s1);

ParbeginV(s1);

Athlete1:

beginEnd;

Run100m;P2:

begin

V(s1);P(s1);

End;…;

Athlete2:

beginV(s2);

P(s1)V(s2);

Run100m;End;

V(s2);P3:

begin

End;P(s1)

Athlete3:

begin…P(s2);V(s3)

Run100m;End;

V(s3);P4:

begin

End;P(s2);

Athlete4:

begin…P(s3);V(s4);

Run100m;P5:

begin

End;P(s2);

Parend..;

end

V(s4);

3.设公共汽车上,司机和售票员的活End;

动分别是:

P6:

begin

司机:

售票员:

P(s3)

启动车辆..xx乘客

V(s4)正常行车关车门

到站停车售票End;

P7:

begin开车门P(s4);P(s4);下乘客P(s4);在汽车不断地到站、停车、行驶过END;

程中,这两个活动有什么同步关系?

CoEnd;

END;

请用信号量机制实现他们的同步。

假定初始状态为停车状态,引入信/-生产者消费者问题:

和Run:

号量Stop1BEGIN

.桌上有一个可以xx两个水果的

盘子,每次只能放或取一个水果。

semaphoreStop,Run;

爸爸放苹果妈妈放橘子,两个儿子Stop:

=Run:

=0;

吃苹果,两个女儿吃橘子。

试用信CoBegin

号量和BEGIN

P、V操作,编写实现爸爸、Driver:

妈妈、儿子和女儿的并发工作程Repea

序。

t

Mutex实现互斥放或取水果。

Wa

emptyit(Run);

盘子可放水果数

Apple盘子中放的苹果数启

Orange动车辆;盘子中放的橘子数

Semaphoremutex=1;正

Semaphoreempty=2;常行驶;

Semahporeapple=0;到

Semahporeorange=0;站停车;

Main()Si

{

gnal(Stop);

CobeginUntil

Father();False;

Mother();END;

Son();

Conductor:

BEGIN

Daughter();

Repea

;t

Coend)上

}

乘客;Father()关{

车门;

While(true)Si

{p(empty)gnal(Run);

P(mutex)

放苹果票;

V(mutex)WaV(apple)}it(Stop);

}开

Mother()车门;

{

While(true)乘客;

{p(empty)Until

P(mutex)

False;

放橘子配车间

CoEndV(mutex)

}

V(orange)}

Provider_A()}

{while(true)Son()

{

{p(emptya);

p(sa);While(true)

{p(apple)p(mutex);

P(mutex)将零件A放入仓库;

v(mutex);取苹果

v(fulla);V(mutex)

v(sb);V(empty)}

}

}

}

Daughter()

Provider_B(){

{while(true)While(true)

{p(orange){p(emptyb);

P(mutex)p(sb);

取橘子p(mutex);

V(mutex)将零件B放入仓库;

V(empty)}v(mutex);

}

v(fullb);

2,A和Bv(sa);、有一个仓库存放两种零件m最大库容量各为个。

有一车间不断}

进行装配,每次各取一个。

A和B}

地取为了避免零件锈蚀,遵循线入库者先Assembling_Shop()

出库的原则。

有两组供应商分别不断{while(true)

{p(fulla);,为保证齐A地供应和B(每次一个)套和合理库存,当某种零件的数量比p(fullb);

(另一种数量超过nn

对数量大的零件的进货,集中补充数装配零件;

操作正确实现、量少的零件。

试用PVv(mutex);

之。

v(emptya);

v(emptyb);

}mutex=1,semaphore

fulla=fullb=0,emptya=emptyb=m,}

3、有一个仓库,可以存放Asa=sb=n;和B两种产品,仓库的存储空间足够大,但要main()

求:

{CoBegin

Provider_A();每次只能存入一种产品(X或/Y);

零件/。

M和时正整数。

其中,N/Provider_B();

、P试用“存放A”、“存放B”和供应商B零件/

的入库过B与产品A操作描述产品V装Assembling_Shop();//程。

说明进程间的相互制约关系,应设置哪些信号量?

B,则AA-B

如果只放A不放则用P、V操作写出其同步算法;,最多可放M-1个,如果多放一个B可以多放一个A。

修改上述算法,使得它对写者优先,即一旦有写者到达,后续的读者A,则BBB-A

如果只放不放都必须等待,而无论是否有读者在读则如果多放一个最多可放N-1个,A,文件。

可以多放一个B。

(该问题的又一提法:

在一个飞机订票系统中,多个用户共享一个数/2-BEGIN据库。

多用户同时查询是可以接受的,Mutex,SA,SB:

semaphore;但若一个用户要订票需更新数据库Mutex:

=1;

时,其余所有用户都不可以访问数据SA:

=M-1;

库。

请画出用户查询与订票的逻辑框SB:

=N-1;

图parBegin

(等价于同步进程的描述的图式表

示)。

processPA

为了提高写者的优先级,增加一个信Begin

号量Sloop:

,用于在写进程到达后封锁后续的读者P(SA);

Semaphoremutex=1;P(Mutex);

Semaphorewrite=1;存放A;

Semahpores=1;

V(Mutex);

Intcount=0;V(SB);

Main()Gotoloop;

{

End;

Cobegin

Reader();processPB

Writer();Begin

Coendloop:

}

P(SB);

Reader()

P(Mutex);

{while(true)存放B;

{

V(Mutex);

P(s);V(SA);

P(mutex);Gotoloop;

If(count==0)End;

p(write);parEnd;

Count++;END;

V(s);北大/91

读文件;

P(mutex)读者写者问题:

Count--;

If(count==0)1、多个进程共享一个文件,其中只读v(write);文件的程值为读者,其余只写文件的V(mutex);称为写者。

读者可以同时读,但写者}只能独立地写。

}

End

Writer()

{

Porcess由西向东While(true)

Begin{p(s);

P(swe);P(write);

P(siwe);写文件;Iwe:

=iwe+1;

V(write);

Ifiwe=1htenp(mutex);V(s);

V(siwe);}

过桥;}

P(siwe);

Iwe:

=iwe-1;

Ifiwe=0thenv(mutex);辆车,2.某一桥只有一车道,载重为4V(siwe);V操作实现两方向的车过桥。

用P、V(swe)本题本质上可以认为是读者写者End;问题,往同一个方向的车可以认为是理发师睡觉问题:

读者,往相反方向的车可以认为是写1.者。

但是由于桥的重量有限,增加了(睡眠的理发师问题)理发店有一个等候室(其中有N把椅子)和一个读者之间的互斥。

本题的临界资源显理发室(一把理发椅组成)。

如果没有然是单通道的桥,首先如果桥上有向顾客来理发,理发时就在理发椅上睡东方向的车,那么向西方向的车一定觉,如果一个走进理发店,发现等候4辆,同一方向的不能过,如果超过室的椅子都坐满就离开理发店;如果车也不能过,需要互斥。

理发师正忙于理发,那么该顾客就坐,mutex实现双向车子互设信号量在一把空椅子上等待;若理发师正在,斥通行;信号量sewswe表示由西向睡觉,则顾客就唤醒他。

用P、V操作初值为东与由东向西的负荷数,4;整写出工作流程。

表示各方向的车子数,数型iew,iwe

考点:

用PV原语实现同步iew,iwesiew,siwe0初值为;实现对Semaphorecostomers=0;;等候的1的互斥访问,初值为顾客数(不包括正在理发的)Semaphorebarbers=0;由东向西的车子;等候顾客Process

的理发师数Begin

Semaphoremutex=1;

P(sew);

Intwaiting=0;P(siew);等候的顾客数(还没有理发,实际是Iew:

=iew+1;customers的备份,为了读取信号量的当前值);Ifiew=1thenp(mutex);V(siew);

Voidbarber(void)过桥;{while(true)P(siew);

{P(customers);Iew:

=iew-1;

P(mutex);

Ifiew=0thenv(mutex);

waitingV(siew);=waiting–1;

V(barbers);

V(sew)

V(mutex);动的同步。

Customerscut_hair();表示正在等待复印的顾客数}

Operator代表操作员的状态,只能取顾客进程

1或0Voidcustomers(void);

Waiting表示正在等待的顾客数;{P(mutex);

Mutex实现对waiting的互斥访问if(waiting

{waiting=waiting+1;

customers,V(customers);operator,mutex:

semaphore;

V(mutex);

waiting:

inteter;P(barbers);

customers=0;get_hair();}

operator=0;else{V(mutex);}

mutex=1;

}

processoperator

begin提示:

考虑一下理发师(barber)loop:

)睡觉;(1

(2)为重复的下列活动:

p(customers);顾客理发;

复印;)重复的下列活顾客(customers

V(operator);)理发;)在椅子上等候;(3(4动:

Gotoloop;离开;End;1)处要考察是显然,理发师在(否有顾客等候理发,如果没有,理发Processcoutomeri2)处理发师等待最先进师睡觉;在(Begin

入理发店的xx唤醒,开始理发。

P(mutex);

3顾客在()处先看是否有座位,Ifwaiting<5then没有则离开;等候理发的顾客在(4)Begin

处被理发师唤醒(最先理发的顾客要Waiting=waiting+1;唤醒理发师);理发结束后离开。

V(custormers);在这两个活动中,从资源的角度V(mutex);来看,理发师是顾客争用的资源,用P(operator);0barber信号量表示,初值为;除此P(mutex);n张椅子,信号以外,顾客还要争用Waiting=waiting-1;量customers表示等候理发的顾客数,V(mutex);0;最后设置信号灯变量mutex初值为End资对动个这用于两活源、barberElse。

1customers的互斥,初值为

Begin

2.复印室里有一个操作员为顾客复印V(mutex);资料,有把椅子供顾客休息等待复5End;印。

如果没有顾客,则操作员休息,End;

当顾客来到复印室时,如果有空椅子则坐下来,并唤醒复印操作员;如果4没有空椅子必须离开复印室。

试用信.理发师问题:

一个理发店有一个入5理发店内有一个可站口和一个出口。

操作实现顾客和操作员活V、P号量几.位顾客的站席

区、4个单人沙发、3个理发师及其专用理发工具、一个收银台。

新来的顾客坐在沙发上等

待;没有空沙发时,可在站席区等待;站席区满时,只能在入口外等待。

理发师可从事理

发、收银和休息三种活动。

理发店的活动满足下列条件:

1)休息的理发师是坐地自己专用的理发椅上,不会占用顾客的沙发;2)处理休息状态的理发师可为在沙发上等待时间最长的顾客理发;

3)理发时间长短由理发师决定;

4)在站席区等待时间最长的顾客可坐到空闲的理发上;

5)任何时刻最多只能有一个理发师在收银。

试用信号量机制或管程机制实现理发师进程和顾客进程。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1