消息传递机制_发送原语&接收原语

bulletCoderHope 2006-03-11 07:45:42
procedure send(receiver,a)
begin
getbuf(a.size,i) '取得发送进程的缓冲区i,大小与发送进程的发送区a相同
i.sender=a.sender; '将发送进程的内容复制到缓冲区i
i.size=a.size;
i.text=a.text;
i.next=0; '因为缓冲区是在需要的时候才创建,所以赋值为0
getid(pcb set,receiver,j);'取得发送进程的pcb设置,j为消息缓冲队列
p(j.mutex);'互斥访问消息队列
insert(j.mq,i);'将i的地址放置到j中的为空的第一个缓冲单元
v(j.mutex);'释放该消息队列的使用权
v(j.sm);'所以消息缓冲队列中可以使用的缓冲单元又多了一可用资源
end
procedure receive(b)
begin
j:=internal name; '不明白这句的用意,请多多指教
p(j.sm);'申请其中的一缓冲单元,令s.value=s.value-1使可用资源减少1
p(j.mutex);'霸占该消息队列的使用权
remove(j.mq,i);'删除消息缓冲队列中i的地址
v(j.mutex);'释放消息队列的使用权
b.sender:=i.sender; '将i缓冲区的内容复制到接收进程的接收缓冲区b中
b.size:=i.size;
b.text=i.text;
releasebuf(i);'释放缓冲区i
end
请问我这样理解消息传递机制正确吗??
...全文
174 点赞 收藏 回复
写回复
回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
相关推荐
发帖
研发管理
创建于2007-08-27

1221

社区成员

软件工程/管理 管理版
申请成为版主
帖子事件
创建了帖子
2006-03-11 07:45
社区公告
暂无公告