美文网首页程序员
操作系统知识点(九)——进程通信

操作系统知识点(九)——进程通信

作者: 咋家 | 来源:发表于2019-11-11 09:32 被阅读0次

进程通信(IPC, Inter-Process Communication)

概述
  • 进程通信是进程进行通信和同步的机制

  • IPC提供2个基本操作

    • 发送操作:send(message)
    • 接收操作:receive(message)
  • 进程通信流程

    • 在通信进程间建立通信链路
    • 通过send/receive交换信息
  • 进程链路特征

    • 物理(如,共享内存,硬件总线)
    • 逻辑(如,逻辑属性)
直接通信
  • 进程必须正确的命名对方

    • send(P, message)——发送信息到进程P
    • receive(Q, message)——从进程Q接收消息
  • 通信链路的属性

    • 自动建立链路
    • 一条链路恰好对应一个通信进程
    • 每对进程之间只有一个链接存在
    • 链接可以是单向的,但通常为双向的
间接通信
  • 通过操作系统维护的消息队列实现进程间的消息接收和发送

    • 每个消息队列都有一个唯一的标识
    • 只有共享了相同消息队列的进程,才能够通信
  • 通信链路的属性

    • 只有共享了相同消息队列的进程,才建立连接
    • 连接可以是单向或双向
    • 消息队列可以与多个进程相关联
    • 每对进程可以共享多个消息队列
  • 通信流程

    • 创建一个新的消息队列
    • 通过消息队列发送和接收消息
    • 销毁消息队列
  • 基本通信操作

    • send(A, message)——发送消息到队列A
    • receive(A, message)——从队列A接受消息
阻塞(同步)与非阻塞(异步)通信
  • 阻塞通信

    • 阻塞发送——发送者在发送消息后进入等待,直到接收者成功收到
    • 阻塞接收——接收者在请求接收消息后进入等待,直到成功收到一个消息
  • 非阻塞通信

    • 非阻塞发送——发送者可在消息发送后,可立即进行其它操作
    • 非阻塞接收——没有消息发送时,接收者在请求接收消息后,接收不到任何消息
通信方式
  • 信号(signal):进程间的软件中断通知和处理机制,如SIGKILL,SIGSTOP,SIGCONT等

    • 信号的接收处理
      • 捕获:执行进程指定的信号处理函数被调用
      • 忽略:执行操作系统指定的缺省处理
      • 屏蔽:禁止进程接收和处理信号
    • 不足:传送的信息量小,只有一个信号类型
  • 管道(pipe)

    • 进程间基于内存文件的通信机制

      • 子进程从父进程继承文件描述符
      • 缺省文件描述符:0 stdin,1 stdout, 2 stderr
    • 进程不知道另一端

      • 可能从键盘、文件、程序读取
      • 可能写入到终端、文件、程序
  • 消息队列:是由操作系统维护的以字节序列为基本单位的间接通信机制

    • 每个消息是一个字节序列
    • 相同标识的消息组成按先进先出顺序组成一个消息队列
  • 共享内存:是把同一物理内存区域同时映射到多个进程的内存地址空间的通信机制

    • 进程

      • 每个进程都有私有内存地址空间
      • 每个进程的内存地址空间需要明确设置共享内存段
    • 线程

      • 同一进程中的线程总是共享相同的内存地址空间
    • 优点:快速、方便的共享数据

    • 不足:必须用额外的同步机制来协调数据访问

更多精彩,关注“咋家”

相关文章

  • 操作系统知识点(九)——进程通信

    进程通信(IPC, Inter-Process Communication) 概述 进程通信是进程进行通信和同步的...

  • 【python】进程间通信:Queue的详细用法

    关于python 进程间通信 Process之间有时需要通信,操作系统提供了很多机制来实现进程间的通信。 进程间通...

  • 2019-10-15

    今天学习了操作系统的进程通信

  • Binder机制的原理

    1.知识储备 1.1 进程间通信   因为Binder机制是涉及到进程的通信,所以需要对操作系统的进程通信需要有所...

  • 1.5.3 Python进程使用 -- Queue

    进程间通信-Queue Process之间有时需要通信,操作系统提供了很多机制来实现进程间的通信。 1. Queu...

  • 学习

    学习了操作系统的进程间的通信 在硬件层面理解进程

  • 4399

    一面 1.自我介绍2.学科介绍3.操作系统进程间通信/多进程时如何保护临近资源进程间通信进程间通信(IPC,Int...

  • IPC机制(一)——IPC基础概念

    Android中的多进程 IPC学过操作系统的都应该知道,就是进程间通信或者跨进程通信。Android是基于Lin...

  • android 共享内存(ShareMemory)的实现

    Android 几种进程通信方式 跨进程通信要求把方法调用及其数据分解至操作系统可以识别的程度,并将其从本地进程和...

  • 操作系统教程学习计划(1)

    1 操作系统概论 2 存储管理 3 进程管理 4 进程通信 5 设备管理 6 文件系统 7 windows操作系统...

网友评论

    本文标题:操作系统知识点(九)——进程通信

    本文链接:https://www.haomeiwen.com/subject/tgnkbctx.html