下面的模型一般都用在核心服务器或者kernel中的多任务控制部分!十分有用。
消息发送函数原型:
send(dest, message);
recv(src, message);下面将接收消息的叫做Server,发送消息的叫做Client.
1 Client -> Server (send)
if(server.state != Recieving) //将Client挂起,并且加入Server的消息队列。
set(client.state); block(client); add client to server's Queue.else copy message to server; reset(server.state); unblock(server);endif2 Server -> Cient(recv)
if(server.q_recieve == 0) //将Server挂起,等待消息的到来
set(server.state);else get one message from Queue; reset(client.state); unblock(the message's sender client);endif