操作系统同步互斥习题

操作系统同步互斥习题

ID:35331053

大小:86.78 KB

页数:19页

时间:2019-03-23

操作系统同步互斥习题_第1页
操作系统同步互斥习题_第2页
操作系统同步互斥习题_第3页
操作系统同步互斥习题_第4页
操作系统同步互斥习题_第5页
资源描述:

《操作系统同步互斥习题》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、操作系统同步互斥习题1、设公共汽车上,司机和售票员的活动分别是:司机的活动:启动车辆;正常行车;到站停车;售票员的活动:关车门;售票;开车门;在汽车不断地到站、停车、行驶过程中,这两个活动有什么同步关系?用P、V操作实现它们的同步。参考答案:设两个信号量S和C,初值为s=o;c=o;司机:L1:正常行车售票员:L2:售票到站停车P(S)V(S)开车门P(O关车门启动开车V(C)GOTOLIGOTOL22、桌子上有一个空盘子,允许存放一只水果,爸爸可以向盘中放苹果,妈妈向盘子中放橘子,女儿专门吃盘子中的苹果,儿子专门吃盘子小的橘子。规定当盘子空的时候一次只能放一只水果,

2、请用信号量实现他们之间的同步与互斥。参考答案:S,SI,S2:semaphore二1,0,0;Cobegin:ProcessFather:Begin:Ll:P(S);PutApple;V(S1);GOTOLI;End;ProcessMother:Begin:L2:P(S);PutOrange;V(S2);GOTOL2;End;ProcessSon:Begin:L3:P(S2);GetOrange;V(S);GOTOL3;End;ProcessDaughter:Begin:L4:P(S1);GetApple;V⑸;GOTOL4;End;CoEnd;3、写者优先的“读者一

3、一写者”问题:1)共享读2)互斥写、读写互斥读者必须等待,唤醒时优先考虑写者)3)写者优先于读者(一旦有写者,则后续参考答案:wmutex:semaphoro=lS:semaphore二1S2:semaphor=1〃读者与写者之间、写者与写者之间互斥使用共享数据//当至少有一个写者准备访问共享数据时,它可使后续的读者等待写完成//阻塞第二个以后的等待读者readcount,writecount:semaphore=0,0;//当前读者数量、写者数量mutexl:semaphore=1//多个读者互斥使用readcountmutex2:semaphore=1//多个写者

4、互斥使用writecountCobegin:Reader:beginRepeatWait(S2);wait(S);wait(mutexl)ifreadcount=0thenwait(wmutex);readcount++;signal(mutexl);signal(S);sigrial(S2);reading…wait(mutexl);readcount--;ifreadcount=0thensignal(wmutex);signal(mutexl);untilfalse;begin;writer:beginrepeat;wait(mutex2);ifwritecou

5、nt=0thenwait(S);writecount++;signal(mutex2);wait(wmutex);writing…signal(wmutex);wait(mutex2);writecount一-;ifwritecount=0thensignal(S);signal(mutex2);untilfalse;end;coend;4、有一个仓库,可以存放A、B两种产品,但要求:a)每次只能存入一种产品(A或B);b)八产品数量一B产品数量c)B产品数量一A产品数量<2其中M、N是正整数,使用P、V操作描述产品A与产品B的入库过程。参考答案:Mutex,Sa,S

6、b:Semaphore;Mutex=1;Sa二MT;Sb=N-l;CoBegin:ProcessPA:BeginLoop:P(Sa);P(Mutex);产品A入库;V(Mutex);V(Sb);GotoLoop;End;ProcessPB:BeginLoop:P(Sb);P(Mutex);产品B入库;V(Mutex);V(Sa);GotoLoop;End;CoEnd;5、进程Al、A2、……Anl通过m个缓冲区向进程Bl、B2……Bn2不断地发送消息。发送和接收工作遵循如下规则:(1)每个发送进程一次发送一个消息,写入一个缓冲区,缓冲区大小等于消息长度;(2)对每一个

7、消息,Bl,B2,…,Bn都必须接收一次,读入各自的数据区内;(3)m个缓冲区都满时,发送进程等待;没有可读的消息时,接收进程等待。参考答案:本题是生产者一一消费者问题的一个变形,一组生产者Al,A2,…….Anl和一组消费者B1,B2,……Bn2公用m个缓冲区,每个缓冲区只要写一次,但需要读n2次,因此,我们可以把这一组缓冲区看成门2组缓冲区,每个发送者需要同时写n2组缓冲区,而每一个接收者只需读它自己对应的那组缓冲区中的对应单元。Mutex,empty[n2],full[n2]:semaphore;Mutex二1;〃多进程互斥使用缓冲区empty

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。