大学课件进程通信.ppt

间接通信(2) 间接通信的实现(1) 信箱是存放信件的存储区域,每个信箱可分成信箱特征和信箱体两部分。 信箱特征指出信箱容量、信件格式、指针等;信箱体用来存放信件 间接通信(3) 间接通信的实现(2) 发送信件: 如果指定信箱未满,则将信件送入信箱中由指针所指示的位置,并释放等待该信箱中信件的等待者;否则发送信件者被置成等待信箱状态 接收信件: 如果指定信箱中有信,则取出一封信件,并释放等待信箱的等待者,否则接收信件者被置成等待信箱中信件的状态 间接通信(4) type box=record size:integer; /*信箱大小*/ count:integer; /*现有信件数*/ letter:array[1..n] of message; /*信箱*/ S1,S2:semaphore; /*等信箱和等信件信号量*/ end 间接通信(6) procedure send(varB:box,M:message) var I:integer; begin if B.count=B.size then W(B.s1); i:=B.count+1; B.letter[i]:=M; B.coumt:=I; R(B.S2)

文档评论(0)

1亿VIP精品文档

相关文档