zoukankan      html  css  js  c++  java
  • 操作系统中的IPC机制

    按发送路径来看,可分为直接通信和间接通信。

    1. 直接通信

    (1)进程必须正确的命名对方

    • send (P, message) – 发送信息到进程P
    • receive(Q, message) – 从进程 Q接受消息

    (2)通信链路的属性

    • 自动建立链路
    • 一条链路恰好对应一对通信进程
    • 每对进程之间只有一个链接存在
    • 链接可以是单向的,但通常为双向的

    2. 间接通信

    (1)通过操作系统维护的消息队列实现进程间的消息接收和发送

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

    (2)通信链路的属性

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

    (3)通信流程

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

    3. 进程通信可划分为阻塞(同步)或非阻塞(异步)
    (1) 阻塞通信

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

    (2)非阻塞通信

    • 非阻塞发送:发送者在消息发送后,可立即进行其他操作
    • 非阻塞接收:没有消息发送时,接收者在请求接收消息后,接收不到任何消息

    4. 信号

    进程间的软件中断通知和处理机制。

    5. 管道(间接通信

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

    6. 消息队列(间接通信

    是由操作系统维护的以字节序列为基本单位的间接通信机制。

    7. 共享内存(直接通信

    把同一段物理机制映射到多个进程的内存地址空间的通信机制。每个进程的内存地址空间需要明确设置共享内存段,同一个进程的线程共享地址空间。(速度快,但是没有同步)

  • 相关阅读:
    Keil 4 与 J-Link 8 连接配置
    嵌入式之认识内存
    Windows10光驱位硬盘不识别
    无法定位程序输入点ucrtbase.terminate于动态链接库api-ms-win-crt-runtime-l1-1-0.dll上
    博客一夜回到解放前
    电动汽车-电池
    STM32书集选择
    嵌入式—学习嵌入式系统需具备的条件、方法及步骤
    Modbus抄表中应用到CRC8+CRC16+CRC32源码
    USART输出乱码3F,RS485抄表
  • 原文地址:https://www.cnblogs.com/tsiangleo/p/4902695.html
Copyright © 2011-2022 走看看