微内核的消息机制模型(同步消息模型)

下面的模型一般都用在核心服务器或者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

posted @ 2011-09-14 16:58  Jack204  阅读(351)  评论(0编辑  收藏  举报