操作系统学习笔记-7:进程通信

栏目: IT技术 · 发布时间: 4年前

内容简介:进程 A 无法直接访问进程 B 的地址空间,反之亦然,所以提供一块可以供 AB 访问的共享空间。这块共享空间属于互斥的临界资源。各个进程共用某些数据结构,借以实现进程间的信息交换。比如共用一个长度为 10 的数组。这种共享速度慢、限制多,属于低级通信方式。

操作系统学习笔记-7:进程通信

进程 A 无法直接访问进程 B 的地址空间,反之亦然,所以提供一块可以供 AB 访问的共享空间。这块共享空间属于互斥的临界资源。

1.1 基于数据结构

各个进程共用某些数据结构,借以实现进程间的信息交换。比如共用一个长度为 10 的数组。这种共享速度慢、限制多,属于低级通信方式。

1.2 基于存储区

在内存中划出一块共享存储区,各个进程通过对这个共享区的读写交换信息、实现通信。数据的形式、存放位置都由进程控制,而不是操作系统。相比之下,这种共享方式速度更快,属于高级通信方式。

2. 消息传递

进程通过操作系统提供的“发送消息/接受消息”两个原语进行数据交换,而数据交换的基本单位是一个格式化的消息,该消息包括消息头和消息体。消息头包括:发送进程 ID,接受进程 ID,消息类型,消息长度等格式化的信息。

2.1 直接通信方式

发送进程发送消息之前,首先申请一个缓冲区,之后把消息复制到缓冲区,再通过发送原语把缓冲区发送给接受进程,缓冲区首先到达接受进程的消息缓冲队列队尾。接受进程通过接受原语读取队列消息,并复制到本地变量。

2.2 间接通信方式

也叫做信箱通信。发送进程发送的消息首先到达一个消息容器,接受进程再从消息容器中接受消息。

3. 管道通信

管道又名 pipe 文件,其实就是在内存中开辟一个大小固定的缓冲区。它采用的是半双工通信,一个时间段内只能实现单向的传输。另外,管道也是互斥的临界资源。管道写满的时候,写进程会被阻塞,直到读进程把数据读走;而管道空的时候,读进程会被阻塞,直到写进程把数据读入。这里要注意,管道与我们之前说过的生产者、消费者使用的缓冲区不同。 写会一次性写完,读会一次性读完,不存在写一下、读一下的情况


以上所述就是小编给大家介绍的《操作系统学习笔记-7:进程通信》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Sexy Web Design

Sexy Web Design

Elliot Stocks / SitePoint / 2009-03-28 / $39.95

Description A guide to building usable, aesthetically pleasing interfaces for web sites and web applications by applying timeless principles of user-centered design. This book focuses on practical ......一起来看看 《Sexy Web Design》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具