1.什么是进程通信
进程通信是进程之间的信息交换。
进程是分配系统资源的单位(包括内存地址空间),因此各进程拥有的内存地址空间相互独立。
为了保证安全,**一个进程不允许直接访问另一个进程的地址空间。**但是进程之间的信息交换又是必须实现的,为了保证进程间的安全通信,操作系统提供了一些方法。
进程通信包括:共享存储,消息传递和管道通信。
2.共享存储
操作系统为进程通信开辟了了共享的地址空间,两个进程对共享空间的访问必须是互斥的(互斥访问通过操作系统提供的工具实现,如 P,V 操作)。
基于数据结构的共享
比如空间里只能放一个长度为 10 的数组,这种共享方式速度慢、限制多,是一种低级通信方式。
基于存储区的共享
在内存中画出一块共享存储区,数据的形式、存放位都由进程控制,而不是操作系统。相比之下,这种共享方式速度更快,是一种高级通信方式。
3.管道通信
管导通信基础
管道通信的原理
4.消息传递
进程间的数据交换以格式化的消息为单位,进程通过操作系统的“发送消息/接收消息”两个原语进行数据交换。