进程间通信机制IPC
进程通信是指进程之间的信息交换。PV操作是低级通信⽅式,例如信号量,主要是进程间以及同⼀进程内不同线程之间的同步⼿段。髙级通信⽅式是指以较⾼的效率传输⼤量数据的通信⽅式。⾼级通信⽅法主要有以下三个类。
共享存储进程间通信效率最高的方式是
在通信的进程之间存在⼀块可直接访问的共享空间,通过对这⽚共享空间进⾏写/读操作实现进程之间的信息交换。在对共享空间进⾏写/读操作时,需要使⽤同步互斥⼯具(如 P操作、V操作),对共享空间的写/读进⾏控制。共享存储⼜分为两种:低级⽅式的共享是基于数据结构的共享;⾼级⽅式则是基于存储区的共享。操作系统只负责为通信进程提供可共享使⽤的存储空间和同步互斥⼯具,⽽数据交换则由⽤户⾃⼰安排读/写指令完成。
需要注意的是,⽤户进程空间⼀般都是独⽴的,要想让两个⽤户进程共享空间必须通过特殊的系统调⽤实现,⽽进程内的线程是⾃然共享进程空间的。
共享存储是最快的可⽤IPC,是针对其他通信机制运⾏效率较低⽽设计的。
消息传递
在消息传递系统中,进程间的数据交换是以格式化的消息(Message)为单位的。若通信的进程之间不存在可直接访问的共享空间,则必须利⽤操作系统提供的消息传递⽅法实现进程通信。进程通过系统提供的发送消息和接收消息两个原语进⾏数据交换。
1) 直接通信⽅式:发送进程直接把消息发送给接收进程,并将它挂在接收进程的消息缓冲队列上,接收进程从消息缓冲队列中取得消息。
2) 间接通信⽅式:发送进程把消息发送到某个中间实体中,接收进程从中间实体中取得消息。这种中间实体⼀般称为信箱,这种通信⽅式⼜称为信箱通信⽅式。该通信⽅式⼴泛应⽤于计算机⽹络中,相应的通信系统称为电⼦邮件系统。
消息传递克服了信号承载信息少,管道只能承载⽆格式字节流以及缓冲区⼤⼩受限制等缺点。
管道通信
管道通信是消息传递的⼀种特殊⽅式。所谓“管道”,是指⽤于连接⼀个读进程和⼀个写进程以实现它们之间通信的⼀个共享⽂件,⼜名pipe ⽂件。向管道(共享⽂件)提供输⼊的发送进程(即写进程),以字符流形式将⼤量的数据送⼊(写)管道;⽽接收管道输出的接收进程(即读进程),则从管道中接收(读)数据。为了协调双⽅的通信,管道机制必须提供以下三⽅⾯的协调能⼒:互斥、同步和确定对⽅的存在。
套接字
套接字也是⼀种进程间通信的机制,很常见。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。