10进程通信
进程通信
目录
一、共享存储
二、管道通信
三、消息传递
内容:
1、原因:
- 进程是分配系统资源的单位(包括内存空间地址),因此每个进程的内存空间地址相互独立
- 为了安全起见,一个进程不能直接访问另一个进程的空间地址,但进程间通信又是必须的
- 所以,操作系统提供了三种安全的通信方式
访问内存空间如图所示:
2、共享存储:
(1)、基于数据结构的共享: 比如只能存放固定长度的数组,限制多,速度慢,因此是一种低级通信方式
(2)、基于共享存储区的共享: 在内存中划分出一块共享存储区,数据的形式、存储的位置都有进程控制,而不是操作系统,相比之下速度更快更方便,所以是一种高级通信方式
(3)注意: 两个进程对共享空间的访问必须是互斥的,互斥访问操作由操作系统的P、V操作控制
3、管道通信:
- 用于连接读写进程的共享文件,其实就是在内存中开辟一个大小固定的缓冲区
- 采用半双工通信,如果想要双向通信,则需要设置两个管道,各进程要互斥的访问管道
- 写满时不能再写,读空时不能再读
- 没写满不能读,没读空不能写
*4、消息传递 - 进程间的数据交换以格式化的信息为单位,进程操作系统的发送消息和接收消息原语发送和传递消息
- 格式化的信息包括:发送进程ID,接收进程ID,消息类型,消息长度等格式化信息(计算机网络中的包头)
- 直接通信方式:将消息直接挂到接收进程的消息缓冲队列上
- 间接通信方式:消息要先发送到中间实体(信箱)中
5、知识点总结: