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
请问我这样理解消息传递机制正确吗??