zoukankan      html  css  js  c++  java
  • 进程通信

      进程间通信就是在不同进程之间传播或交换信息,进程间控制信息的交换称为低级通信,进程间大批量数据的交换称为高级通信。

    进程通信分为3种:

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

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

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

    消息缓冲队列通信机制:

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

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

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

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

    (1)消息缓冲区

        typedefstruct message buffer

        {

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

           size;  //消息长度

           text;  //消息正文

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

        }

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

        typedefstruct message block

        {

          …

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

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

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

          …

        }

  • 相关阅读:
    GFS.BigTable.MapReduce谷歌论文学习笔记
    Android图表
    JAVA内存管理
    关于Ajax工作原理
    走进AngularJs(二) ng模板中常用指令的使用方式
    走进AngularJs(一)angular基本概念的认识与实战
    使用CSS3 制作一个material-design 风格登录界面
    一分钟搞定AlloyTouch图片轮播
    PHP+JQUEY+AJAX实现分页
    全面的Seo面试题
  • 原文地址:https://www.cnblogs.com/lihuidashen/p/3460552.html
Copyright © 2011-2022 走看看