10进程通信

进程通信

目录

一、共享存储
二、管道通信
三、消息传递

内容:

1、原因:

  • 进程是分配系统资源的单位(包括内存空间地址),因此每个进程的内存空间地址相互独立
  • 为了安全起见,一个进程不能直接访问另一个进程的空间地址,但进程间通信又是必须的
  • 所以,操作系统提供了三种安全的通信方式
    访问内存空间如图所示:
    10进程通信
    2、共享存储:

(1)、基于数据结构的共享: 比如只能存放固定长度的数组,限制多,速度慢,因此是一种低级通信方式
(2)、基于共享存储区的共享: 在内存中划分出一块共享存储区,数据的形式、存储的位置都有进程控制,而不是操作系统,相比之下速度更快更方便,所以是一种高级通信方式
(3)注意: 两个进程对共享空间的访问必须是互斥的,互斥访问操作由操作系统的P、V操作控制
10进程通信
3、管道通信:

  1. 用于连接读写进程的共享文件,其实就是在内存中开辟一个大小固定的缓冲区
  2. 采用半双工通信,如果想要双向通信,则需要设置两个管道,各进程要互斥的访问管道
  3. 写满时不能再写,读空时不能再读
  4. 没写满不能读,没读空不能写
    10进程通信
    *4、消息传递
  5. 进程间的数据交换以格式化的信息为单位,进程操作系统的发送消息和接收消息原语发送和传递消息
  6. 格式化的信息包括:发送进程ID,接收进程ID,消息类型,消息长度等格式化信息(计算机网络中的包头)
  7. 直接通信方式:将消息直接挂到接收进程的消息缓冲队列上
  8. 间接通信方式:消息要先发送到中间实体(信箱)中
  9. 10进程通信

5、知识点总结:
10进程通信