10进程通信
2019-06-11 21:52
337 查看
版权声明:Copyright:@@个人所有 https://blog.csdn.net/y20_20/article/details/91472593
进程通信
目录
共享存储
管道通信
消息传递
内容:
1、原因:
- 进程是分配系统资源的单位(包括内存空间地址),因此每个进程的内存空间地址相互独立
- 为了安全起见,一个进程不能直接访问另一个进程的空间地址,但进程间通信又是必须的
- 所以,操作系统提供了三种安全的通信方式
2、共享存储管道=:
(1)、基于数据结构的共享: 比如只能存放固定长度的数组,限制多,速度慢,因此是一种低级通信方式
(2)、基于共享存储区的共享: 在内存中划分出一块共享存储区,数据的形式、存储的位置都有进程控制,而不是操作系统,相比之下速度更快更方便,所以是一种高级通信方式
(3)注意: 两个进程对共享空间的访问必须是互斥的,互斥访问操作由操作系统的P、V操作控制
3、管道通信:
- 用于连接读写进程的共享文件,其实就是在内存中开辟一个大小固定的缓冲区
- 采用半双工通信,如果想要双向通信,则需要设置两个管道,各进程要互斥的访问管道
- 写满时不能再写,读空时不能再读
- 没写满不能读,没读空不能写
4、消息传递
- 进程间的数据交换以格式化的信息为单位,进程操作系统的发送消息和接收消息原语发送和传递消息
- 格式化的信息包括:发送进程ID,接收进程ID,消息类型,消息长度等格式化信息(计算机网络中的包头)
- 直接通信方式:将消息直接挂到接收进程的消息缓冲队列上
- 间接通信方式:消息要先发送到中间实体(信箱)中
5、知识点总结:
相关文章推荐
- Linux操作系统分析(10) - 进程通信之管道与信号量
- Linux操作系统分析(10) - 进程通信之管道与信号量
- Android 进阶10:进程通信之 Messenger 使用与解析
- 11.python并发入门(part10 多进程之间实现通信,以及进程之间的数据共享)
- APUE读书笔记-15进程内部通信-10客户服务特性
- 16.进程间的通信:管道
- php-通过共享内存实现消息队列和进程通信
- Linux 进程通信
- [置顶] 【Linux】 进程通信--命名管道
- 进程通信之消息队列
- python学习笔记——多进程间通信——Linux信号基础
- linux下perl和c进程通信
- Linux进程间的通信(二)
- 进程通信--IPC
- Android跨进程通信之AIDL快速入门
- OpenGL学习进程(10)第七课:四边形绘制与动画基础
- 进程通信方式介绍
- windows下进程通信的十种方法(demo见我上传的资源)
- Linux进程通信--信号
- 使用Windows API实现两个进程间(含窗体)的通信