进程同步与通信习题

进程同步与通信习题

ID:39414458

大小:249.31 KB

页数:10页

时间:2019-07-02

进程同步与通信习题_第1页
进程同步与通信习题_第2页
进程同步与通信习题_第3页
进程同步与通信习题_第4页
进程同步与通信习题_第5页
资源描述:

《进程同步与通信习题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、进程同步习题1、有3个进程PA,PB和PC合作解决文件打印问题:PA将文件记录从磁盘读入主存的缓冲区1,每执行一次读一个记录;PB将缓冲区1的内容复制到缓冲区2,每执行一次复制一个记录;PC将缓冲区2的内容打印出来,每执行一次打印一个记录。缓冲区的大小等于一个记录大小。请用P,V操作来保证文件的正确打印。。缓冲区1缓冲区2PA从磁盘读入PB复制PC打印设置4个信号量:empty1,empty2,full1,full2.Empty1及Empty2分别表示缓冲区1及缓冲区2是否为空,初值为1。Full1,full2分别表示缓冲区1及缓冲区2是否有记录可供处理,其初值为0。PC(){W

2、hile(1){P(full2);从缓冲区2取一个记录;V(empty2);打印记录;}}PA(){While(1){从磁盘读一个记录;P(empty1);将记录存入缓冲区1;V(full1);}}PB(){While(1){P(full1);从缓冲区1中取出记录;v(empty1);P(empty2);将记录存入缓冲区2;V(full2);}}Intempty1=1,empty2=1,full1=0,full2=0;main(){CobeginPA();PB();PC();Coend}2、公共汽车上,司机和售票员的活动分别为:司机的活动:启动车辆;正常行驶,到站停车售票员的活动

3、:关车门;售票;开车门;例:司机P1售票员P2REPEATREPEAT启动关门 正常运行售票 到站停开门UNTILFALSEUNTILFALSE司机启动车辆的动作必须与售票员关车门的动作取得同步,售票员开车门的动作也必须与司机停车取得同步。解:设信号量S1:是否允许司机启动汽车,初值为0信号量S2:是否允许售票员开门,初值为0Driver(){While(1){P(s1);启动汽车正常行车;到站停车;V(S2);}}Busman(){While(1){关车门;V(S1);售票P(S2);开车门;上下乘客;}}ints1=0;ints2=0;main(){CobeginDriv

4、er();Busman();Coend}3、桌上有一空盘,允许存放一只水果。爸爸可向盘中放苹果,也可向盘中放桔子,儿子专等吃盘中的桔子,女儿专等吃盘中的苹果。规定当盘空时一次只能放一只水果供吃者取用,请用P,V原语实现爸爸,儿子女儿三个进程的同步。解:设三个信号量,S:表示盘子是否为空,初值为1So:表示盘中是否有桔子,初值为0Sa:表示盘中是否有苹果,初值为0;ints=1;intsa=0;intso=0;main(){Cobeginfather();son();daughter();Coend}father(){While(1){P(S);将水果放入盘中;If(放入的是桔子)

5、v(So);Elsev(Sa);}}son(){While(1){P(So);从盘中取出桔子;v(S);吃桔子;}}daughter(){While(1){P(Sa);从盘中取出苹果;v(S);吃苹果;}}

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

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

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