进程通信的概念
- 进程间通信是指两个进程之间产生数据交互
- 进程通信需要操作系统的支持,由于进程是分配系统资源(包括内存地址)的单位,因此各进程拥有的内存地址空间相互独立。同时为了保证安全,一个进程不能直接访问另一个进程的地址空间
进程通信的方式
- 共享存储
- 基于存储区的共享,操作系统在内存中划出一块共享存储区,通信进程控制数据的形式、存放位置,而不是操作系统控制。这种共享方式速度很快,是一种高级通信方式
- 基于数据结构的共享,例如共享空间里只能放一个长度为10的数组,这种共享方式速度慢、限制多,是一种低级通信方式
- 消息传递
- 进程间的数据交换以格式化的消息为单位。进程通过操作系统提供的“发送消息/接收消息”两个原语进行数据交换
- 消息传递又分为直接通信方式和间接通信方式,
- 直接通信方式,如下图:
- 间接通信方式,如下图:
- 管道通信
- 在管道通信中,数据的读写是FIFO(先进先出)的