进程通信方式

一、基本概念
1、进程通信:进程之间的信息交换。交换的信息包括两方面:控制信息、大批量数据。因此分为:高级通信(以高速率传输大量的数据)、低级通信(传输控制信息)。
2、高级通信方式分类:共享存储、消息传递、管道、套接字。
(1)共享存储
概念:顾名思义,进程间存在一块可以互相访问的共享空间,通过这段共享空间进行读、写操作实现进程之间的信息交换。
使用的互斥工具:P\V操作;
特别注意:用户进程空间一般是独立的,那么要想让两个用户进程共享空间必须通过函数调用(软件方法)的方式来实现,而进程内的线程是共享进程空间的,但是软件方法会增加系统额外的开销。
(2)消息传递
概念:若进程之间不存在可以共享的空间,必须利用消息传递的方式实现进程间的通信。主要是通过系统提供的发送消息和接收消息两个原语进行数据交换的。
使用的互斥工具:原语(wait、signal)
分类:直接通信方式、间接通信方式
直接通信方式:发送进程直接将消息发送给接收进程,将其挂在接收进程的消息缓冲队列上,等待接收进程从缓冲队列上取得消息。
间接通信方式:发送进程将消息发送到一个中间体上,然后接收进程从中间体上取得消息。
(3)管道通信(Pipe)
概念:管道主要是用于连接一个读进程和一个写进程之间通信的一个共享文件,称为pipe文件。
具体传输过程

  • 将发送进程(写进程)输入到管道中,以字符流的方式将大量的数据传入到管道中;
  • 接收进程从管道中接收数据(读取数据)。

你可能感兴趣的:(操作系统)