为您收录的操作系统系列 - 进程管理(下篇)
从操作系统"出发","品"技术演化,"深扎"知识树根。下文将通过介绍进程之间的高级通信机制分类,用来结束进程相关基础概念知识的整理。
第二篇:进程管理(下)
高级通信机制分类
共享存储系统
在共享存储系统中,相互通信的进程共享某些数据结构和共享存储区,进程之间能够通过这些工具进行通信。共享存储区分两种类型:
基于共享数据结构的通信方式在这种通信放方式中要求诸进程公用某些数据结构,已实现进程之间的数据交换。例如在生产者-消费者问题中,是有的有界缓冲区这种数据结构。
基于共享存储区的通信方式为了传输大量数据,在存储器中划出一块共享存储区,进程可以通过对共享存储区的数据读,写来实现进程通信。
消息传递系统
在消息传递系统中,进程通过操作系统提供的一组通信程序传递格式化的消息。这种方式对应用程序隐藏了通信的实现细节,是通信过程对用户是透明的。根据进程向进程传递消息的方式不同,可以分为:
直接通信操作系统利用发生程序直接把消息发生给目标进程。
间接通信进程直接的通信需要通过用于暂存消息的共享数据结构来实现,如信箱,该方式可以实时通信,也可以非实时通信。
管道通信
管道是连接读写进程的一个特殊文件,也被成为管道文件。管道文件存在于外存中,其中消息没有固定长度,能用于进程间大量的信息通信。
消息缓冲队列
消息队列机制广泛用于本地进程之间通信。该机制包括数据结构,发送原语和接收原语,每一个进程都有自己的消息缓冲队列和消息缓冲区。
发送进程消息流程如下:
先申请一个消息缓冲区。
将要发送的消息从发送进程的发送区放入消息缓冲区。
调用发送原语将消息发送给接收进程,发送原语将发送缓冲区插入接收进程的消息队列。
接收消息的进程通过调用接收原语将消息缓冲队列中的消息复制到自己的消息接收区。
消息缓冲区是一种数据结构包括:进程标识符,消息长度,消息正文,指向下一个消息缓冲区的指针。
采用消息缓冲队列的系统中,进程控制块中要增加指向消息缓冲队列的指针,消息队列的互斥信号量和消息队列的资源信号量等字段。
欢迎大家的留言讨论。按惯例最后分享一首诗给大家。
你是一滴露珠中的海洋,
一个皮囊中的全部宇宙!
那么,你一只在寻求的
这些欢乐,这些喜悦,
这些世界是什么?你希望,
它们会让你更有活力。
相关阅读
为您收录的操作系统系列 - 进程管理(中篇) (操作系统-进程控制与同步)
为您收录的操作系统系列 - 进程管理(上篇) (操作系统-进程概述)
技术根儿扎得深,不怕“首都”狂风吹! (操作系统-发展简介)
~~~扫描关注 ~~~
版权声明: 本文为 InfoQ 作者【Arvin】的原创文章。
原文链接:【http://xie.infoq.cn/article/031b1259d267c9c0af48fc2cc】。文章转载请联系作者。
评论