主题:求救操作系统课程设计题目进程通信,帮帮小弟吧
xiangxq
[专家分:0] 发布于 2007-08-23 10:08:00
题目要求:请编程实现模拟至少三个以上的进程间的通信,要求进程通信方式采用间接通信方式。
请大家帮帮小弟哦,明天就要交课程设计了哦,请会做的发到我的电子邮箱或者论坛上,谢谢! xiangxingquan@163.com
回复列表 (共3个回复)
沙发
freecode [专家分:70] 发布于 2007-08-23 13:50:00
很久没做过操作系统的题目了:现在试试,高手指教哦
假设三个进程A B C可以假设A为一个输入进程,B为一个计算进程,C为一个输出进程,
信号量分别为:sem1, sem2 ,sem3 初值分别为:1, 0, 0
执行流程:
A:begin;
p(sem1)
执行输入操作。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。
v(sem2)
A end
B:begin;
p(sem2)
v(sem1)
执行计算操作。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。
v(sem3)
B end
c:begin;
p(sem3)
输出计算操作。。。。。。。。。。。。。。。。。。
。。。。。。。。。。。。。。
v(sem2)
C end
板凳
xiangxq [专家分:0] 发布于 2007-08-25 01:06:00
上面的仁兄,在给我写仔细点好不好?谢谢哈!!!
3 楼
freecode [专家分:70] 发布于 2007-08-26 14:44:00
现在是仔细了吧,
你把你要做的操作写上不就可以了么:
比如:
A:begin;
p(sem1)
等待终端输入原始数据到缓冲区
v(sem2) //发出消息,通知B数据已经准备好,缓冲区满了
A end
B:begin;
p(sem2)
从缓冲区取数据
v(sem1) //通知A缓冲已经空
计算数据送往输出缓冲区
v(sem3) //通知C输出缓冲区已经满,可以执行输出
B end
c:begin;
p(sem3)
从输出缓冲区取数据,输出到终端设备
v(sem2) //通知B输出缓冲区空,
C end
我来回复