ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

【操作系统】——进程的控制及通信(4)

2022-01-21 18:02:41  阅读:141  来源: 互联网

标签:存储 操作系统 方式 通信 PCB 进程


文章目录


Tips

【操作系统】——进程及状态转换(3)

一、进程的控制

进程的控制主要是指对进程状态转换的控制,状态转换一旦启动就不允许被打断,所以状态转换是一个原语操作,不可细分,不可打断。
在这里插入图片描述

二、进程通信(IPC)

进程通信是指两个进程间的数交互,比如:各应用程序的分享功能,具体点,你在抖音看到有趣的视频可以直接点分享按钮发给你的小伙伴,这个过程就是抖音进程和微信进程的数据交互。

需要特别指出的是:进程通信是需要操作系统的支持

Q2: 为什么进程通信是需要操作系统的支持??
A2: 进程是分配系统资源的单位(包括内存地址空间),因此每个进程的内存地址空间都是相互独立的,并且为了保证数据安全,一个进程不能直接访问另一个进程的地址空间。

以下提供了三种进程通信的方式:

在这里插入图片描述

1、共享存储

在这里插入图片描述

(1)基于存储区的共享(高级通信)

在这里插入图片描述
这种共享方式是高度自由的,操作系统只负责将一片存储区划分出来,具体在哪存储,存储什么都是由进程间决定的。

Q: 进程间是如何决定的?

(2)基于数据结构的共享(低级通信)

在这里插入图片描述
在这种共享方式下,操作系统不仅负责划分存储区,而且还规定了存储区是什么类型(指定数据类型),进程只能按照规定读或写相应数据结构的数据。

2、消息传递

这种通信方式需要对待传输数据进行格式化(即对数据进行一定形式下封装):
在这里插入图片描述

(1)直接通信方式

操作系统内核的地址空间中管理着各个进程的PCB,PCB里外加包含了一个特殊的队列——消息队列。
发送原语: send(发给谁,发什么内容)
接收原语: receive(来自谁的,传来的内容)

在这里插入图片描述
进程p通过发送原语将待发送的msg复制到操作系统统一管理的进程Q的PCB中,而进程Q的接收原语会从PCB中检查由进程p发来的内容,并将其复制回进程Q的地址空间中。

(2)间接通信方式

待发送消息的进程可通过系统调用在操作系统的地址空间中申请一个“信箱”,这个信箱就称为了两进程间通信的媒介,中转站。

在这里插入图片描述
直接和间接两种方式的区别:
直接通信方式是需要指明由谁接收,由谁发送的,而间接通信方式都是指明发送到哪个信箱、到哪个信箱获取。

本质上讲,
直接通信方式是直接将内容发送给对方的,但是因为处于安全考虑,只能发送到对方留存在操作系统地址空间的PCB中。

比如:网购,店家发货到快递点由买家来取,这是间接通信,若这时候买家在快递点有朋友,让买家的朋友代他签收了,买家再找朋友取,这就是直接通信。

需要注意的是,无论是直接通信还是间接通信,消息都不能直接到达接收方的手中,在直接通信方式中无论是PCB还是亲戚,其实都可以看做是接收方了,因为它和真正的接收方式对应关系的。

3、管道通信

在这里插入图片描述
在这里插入图片描述

标签:存储,操作系统,方式,通信,PCB,进程
来源: https://blog.csdn.net/m0_54385790/article/details/122622751

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有