持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第20天,点击查看活动详情
在进行进程通信的学习前,我们要先了解进程的通信都有哪些内容。 进程通信分为三大类,随着OS的发展,用于进程之间的实现通信的机制也在发展,并已由早期的低级进程通信机制发展为能传送大量数据的高级通信工具机制。通信类型分别为共享存储器系统、管道通信系统、消息传递系统。 接下来就对这三种通信方式进行学习与探究。
一、共享存储器系统
在共享存储器中,相互通信的进程共享某些数据结构或共享存储区,进程之间能够通过这些空间进行通信。据此,又可把它们分成以下两种类型:
(1)基于共享数据结构的通信方式。在这种通信方式中,要求诸进程共用某些数据结构,借以实现诸进程间的信息交换。操作系统仅提供共享存储器,由程序员负责对公用数据结构的设置及对进程间同步的处理。这种通信方式仅适用于传递相对少量的数据,通信效率低下,属于低级通信。
(2)基于共享存储区的通信方式。为了传输大量数据,在内存中划出了一块共享存储区域,诸进程可通过对该共享区的读或写交换信息,实现通信,数据的形式和位置甚至访问控制都是由进程负责,而不是OS。这种通信方式属于高级通信。
二、管道通信系统
向管道(共享文件)提供输入的发送进程(即写进程)以字符流形式将大量的数据送入管道;而接收管道输出的接收进程(即读进程)则从管道中接收(读)数据。由于发送进程和接收进程是利用管道进行通信的,故又称为管道通信。
三、消息传递系统
进程不必借助任何共享存储区或数据结构,而是以格式化的消息为单位,将通信的数据封装在消息中,并利用OS提供的一组通信命令(原语),在进程间进行信息传递,完成进程间的数据交换。基于消息传递系统的通信方式属于高级通信方式
其实我们也发现了通信方式也有低级和高级之分,区分的依据是它们传递信息的多少以及传递效率的高低。这也很好的判断了什么时候用哪种通信方式较为合适,给通信带来了很大的方便。以上就是在操作系统中关于通信方式的介绍及他们的分类。