上课笔记
进程间通信
是指在不同的进程之间传递或者交换数据
分类
- 低级通信:进程之间控制信息的交换,一般只传输一个或者几个字节,达到同步和互斥的目的
- 高级通信:操作系统提供的一组接口
高级通信
共享内存
在物理内存中划出一块共享存储区,相互之间通信的进程可以将共享存储区映射到各自的地址空间,通过读或者写共享存储区实现通信
解决的问题
- 共享的读写互斥问题
- 怎样提供共享内存
操作系统一般只提供共享的内存空间
Linux三种内存共享机制(了解)
- mmap()
系统调用mmap()函数——将文件映射到一个存储区域 - POSIX共享内存
- SYSTEM V共享内存
优点
- 效率高,进程可以直接读写数据
缺点:
- 进程必须在同一个计算机上
- 安全性脆弱
消息传递
在进程中,将信息打包,再通过原语实现
直接通信方式:
- 建立消息缓冲队列
- 通信原语:send,receive
间接通信方式:(感觉类似于网络通信的一部分)(感觉和广播有点像) - 将信息发送到发送到一个中间实体中
- 实现实时通信和非实时通信
管道
进程间以字节流的形式进行通信
消息传递通信是以内存缓冲区为基础
管道是以文件系统为基础
类型:
1.