微内核的消息机制模型(同步消息模型)
下面的模型一般都用在核心服务器或者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);
endif
2 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