基础知识之进程通信

来源:互联网 发布:曼朗网络 编辑:程序博客网 时间:2024/06/10 01:53

什么是进程通信

进程中的信息交换称之为进程通信

为什么需要进程通信

进程是操作系统的核心,不同的进行之间的数据是隔离的,没有共享。如果两个进程之间需要实现互斥和共享的关系,就需要进行通信。

进程通信的实现方式

进程通信有三种实现方式

  • 共享存储
  • 消息通信
  • 管道通信

共享存储
实现原理:两个相互通信的进程通过一块共享的存储进行信息交换
优点:快捷有效
缺点:写入和读取互不关心,存在安全隐患。一种解决方式就是引入锁机制

消息通信
消息通信有两种方式:点到点的发送和广播模式

点到点的发送
实现原理:进程在发送和接收消息时直接指明接收者或发送者进程ID
优点:直接通信
缺点:点到点的发送必须知道进程ID。

广播模式
实现原理:为每一个信息指定一个消息队列,接收者和发送者都指向这个队列
优点:很容易建立双向通信(只要对信箱说明为读写打开)
缺点:必须有一个通信双方共享的逻辑队列( UNIX的PIPE,FIFO及IPC消息传递机制都属于这种形式)

管道通信
实现原理:可以将管道想象成一个文件,但是与文件相比较而言,管道有限制的大小,超过即阻塞,且读取速度快于写的速度。
缺点:管道通信是单向的,如果需要双向通信,需要建立两个管道
优点:

0 0