关闭

操作系统中的IPC机制

发表于:2016-3-04 09:58

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:凝静志远    来源:51Testing软件测试网采编

  按发送路径来看,可分为直接通信和间接通信。
  1. 直接通信
  (1)进程必须正确的命名对方
  send (P, message) – 发送信息到进程P
  receive(Q, message) – 从进程 Q接受消息
  (2)通信链路的属性
  自动建立链路
  一条链路恰好对应一对通信进程
  每对进程之间只有一个链接存在
  链接可以是单向的,但通常为双向的
  2. 间接通信
  (1)通过操作系统维护的消息队列实现进程间的消息接收和发送
  每个消息队列都有一个唯一的标识
  只有共享了相同消息队列的进程,才能够通信
  (2)通信链路的属性
  只有共享了相同消息队列的进程,才建立连接
  连接可以是单向或双向
  消息队列可以与多个进程相关联
  每对进程可以共享多个消息队列
  (3)通信流程
  创建一个新的消息队列
  通过消息队列发送和接收消息
  销毁消息队列
  3. 进程通信可划分为阻塞(同步)或非阻塞(异步)
  (1) 阻塞通信
  阻塞发送:发送者在发送消息后进入等待,直到接收者成功收到
  阻塞接收:接收者在请求接收消息后进入等待,直到成功收到一个消息
  (2)非阻塞通信
  非阻塞发送:发送者在消息发送后,可立即进行其他操作
  非阻塞接收:没有消息发送时,接收者在请求接收消息后,接收不到任何消息
  4. 信号
  进程间的软件中断通知和处理机制。
  5. 管道(间接通信)
  进程间基于内存文件的通信机制。
  6. 消息队列(间接通信)
  是由操作系统维护的以字节序列为基本单位的间接通信机制。
  7. 共享内存(直接通信)
  把同一段物理机制映射到多个进程的内存地址空间的通信机制。每个进程的内存地址空间需要明确设置共享内存段,同一个进程的线程共享地址空间。(速度快,但是没有同步)
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号