原创 进程通信

2013-12-5 23:08 615 9 1

1.共享存储器系统:为了传送大量数据,在存储器中划出一块共享存储区,诸进程可通过对共享存储区进行读数据或写数据以实现通信。

2.消息传递系统:又分为直接通信方式、间接通信方式.

3.管道通信系统:向管道提供输入的发送进程,以字符流方式将大量的数据送入管道,而接收进程从管道中接收数据

 

消息缓冲队列通信机制:

  由于消息缓冲机制中所使用的缓冲区为公用缓冲区,因此使用消息缓冲机制传送数据时,两通信进程必须满足如下条件:

第一,在发送进程把写入消息的缓冲区挂入消息队列时,应禁止其他进程对该消息队列的访问,否则,将引起消息队列的混乱。同理,当接收进程正从消息队列中取消息时,也应禁止其他进程对该队列的访问。

第二,当缓冲区中无消息存在时,接收进程不能接收到任何消息;而发送进程是否可以发送消息,则只由发送进程是否能够申请到缓冲区决定。

 

缓冲队列通信机制中的数据结构:

(1)消息缓冲区

    typedefstruct message buffer

    {

       sender;  //发送者进程标识符

       size;  //消息长度

       text;  //消息正文

       next;  //指向下一个消息缓冲区的指针

    }

(2)PCB中有关进程通信的数据项

    typedefstruct message block

    {

      …

      mq;  //消息队列队首指针

      mutex;//消息队列互斥信号量,初值为1

      sm;  //消息队列资源信号量,用于消息队列中的消息计数,初值为0

      …

    }

作者: 李肖遥, 来源:面包板社区

链接: https://mbb.eet-china.com/blog/uid-me-3912462.html

版权声明:本文为博主原创,未经本人允许,禁止转载!

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
9
关闭 站长推荐上一条 /3 下一条