实验四 进程通信、内存映射与同步的综合理解(操作系统)

【要求所有练习保留题目要求,在题目要求后面作答:

u 代码要求有注释,代码中适当标注关键代码为红色。

u 要有运行结果的截图。

u 每题最后应该有对程序的适当分析和总结!

u 注意格式排版,内容分析注意条目,展开清楚地阐述。

  1. 改写课本例题,分别利用匿名管道与命名管道(文件命名为自己名字全称实现父子进程间通信和非亲缘关系的两个进程通信,发送的消息为i am your name注意:重点是对管道通信给出各种同步、阻塞情况的分析说明。

匿名管道:

 Buf[r]=0是在最后加入结束标志。

分析:父亲连接管道的读端,孩子连接写端,一开始孩子sleep,无法写入,因此父亲阻塞。

 分析:当孩子sleep完写入,父亲才可继续读出。

 命名管道:

读管道:

 写管道:

 

分析:命名管道需要建一个文件wangkaiyue,然后写管道是将内容存到这个管道文件中,然后读管道从管道文件中读出内容。

试对课本【例5-21改写,一方不断向管道写入字符A,另一方以每隔3秒读1024个字符的速度从管道读数据,体验并总结管道通信时的读写双方的同步效果。

 试对课本【例5-24】改写,编程实现3个进程通信,一个负责写入,另外两个负责读出,体验3方的通信过程及效果。

 

 

试对课本【例5-26】映射匿名虚存区实现共享内存 进行改写,实现父亲先计算累加100的和后写给孩子,然后孩子读取求和结果后输出。(提示:可定义一个初值为0的信号量控制父子进程的执行顺序。)

 

【选做】5.7.3课后训练第(3)题,试将例5-27改造为有信号量控制的内存读写操作,能实现一方对共享内存写完数据后,另一方立即响应读取数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

钥钥睡着了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值