操作系统学习(九)进程通信

一、知识总览

操作系统学习(九)进程通信

二、定义

进程通信是指进程之间的信息交换;
每个进程都拥有自己的内存空间,是相互独立的,这样在每个进程执行时,才不会被其他进程所干扰。
操作系统学习(九)进程通信

三、进程通信的方式

操作系统学习(九)进程通信
1.共享存储
操作系统学习(九)进程通信
(1)两个进程对共享区的访问必须是互斥的,即在同一时间内,只允许一个进程访问(互斥访问通过操作系统提供的工具(P,V操作)实现);
(2)共享存储又分为两种
操作系统学习(九)进程通信
2.管道通信
操作系统学习(九)进程通信
(1)一个管道只能采用半双工通信,两个管道可以实现双向同时通信。
(2)”管道“是指用于连接读写进程的的一个共享文件,又名pipe文件。就是在内存中开辟一个固定大小的缓冲区。
(3)各进程要互斥的访问管道
(4)缓冲区满,write()阻塞,缓冲区空,read()阻塞。缓冲区没有满不能读,没有空,不能写。
3.消息传递
进程间数据交换以格式化的消息为单位,进程通过操作系统提供的“发送消息、接收消息”两个原语进行数据交换。
消息传递有两种方式直接通信方式间接通信方式
操作系统学习(九)进程通信
直接通信方式:消息直接挂在接收队进程的消息缓冲队列上
操作系统学习(九)进程通信
间接通信方式:消息要先发送到中间实体(信箱)中,因此也称“信箱通信方式”。Eg:计算机网络中的邮件系统。
操作系统学习(九)进程通信

四、总结

操作系统学习(九)进程通信