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

    1.管道(pipe)及有名管道(named pipe)
        管道可用于具有亲缘关系进程间的通信,有名管道除了具有管道所具有的功能外,它还允许无亲缘关系进程间的通信。
      2.信号(signal)
        信号是在软件层次上对中断机制的一种模拟,它是比较复杂的通信方式,用于通知进程有某事件发生。
      3.消息队列(message queue)
        消息队列是消息的链接表。
        一个进程可以给若干个进程发送消息,反之,一个进程可以接受不同进程发来的消息,显然,进程中关于消息队列的操作是临界区。
        当发送进程正往接受进程的消息队列中添加一条消息时,接收进程不能同时从该消息队列中读取消息。反之一样。
        消息缓冲区通信机制包括以下内容:
        1> 消息缓冲区,由以下几项组成的数据结构:
            1. 消息长度
            2. 消息正文
            3. 发送者
            4. 消息队列指针
            2> 消息队列首指针,一般保存在PCB中
            1.  互斥信号量m-mutex,初值为1,用于互斥访问消息队列,在PCB中设置。
                    2.  同步信号量m-syn,初值为0,用于消息计数,在pcb中设置。
                    3.  发送消息原语send
                    4.  接收消息原语receive
      4.共享内存(shared memory)
        可以说这是最有用的进程通信方式,它使得多个进程可以访问同一块内存空间,不同进程可以及时看到对方进程对共享内存中数据的更新。
       这种方式需要依靠某种同步操作,如互斥锁和信号量等。
           这种通信模式需要解决两种问题:第一种问题是怎样提供共享内存;第二个是公共内存的互斥关系这是程序开发者的责任。
      5.信号量
        主要作为进程之间及同一种进程的不同线程之间的同步和互斥手段。
      6.套接字
            这是一种用于网络中不同机器之间的进程间通信,应用非常广泛。

    The future's not set,there is no fate but what we make for ourselves.
  • 相关阅读:
    css学习总结
    bootstrap的学习总结
    一些组件配置的理解
    php 微信公众号支付(小程序也是这么支付的)
    mysql 链接超过ip限制时的报错
    php生成二维码
    wamp配置虚拟主机 php 5.6.25
    php 渣全的循环
    4、kafka、spark streaming
    gauss消元
  • 原文地址:https://www.cnblogs.com/wang1994/p/9115382.html
Copyright © 2011-2022 走看看