Linux操作系统——进程间通信简单介绍

1.进程间通信的介绍

我们之前所谈的进程很多都是通过一个进程来进行理解的,可是很多情况下有一些任务呢,他是有很多的进程通过协作完成,比如说我们之前谈到的命令行,一条命令也是用一个进程去执行的。

像这样,我们是通过两条命令,也就是需要两个进程协作完成的任务。一个进程将自己执行的结果通过管道交给另一个进程进而完成这项任务的。虽然说进程具有独立性,但是有些事并不是一个进程工作就能完成的,所以进程之间是存在互相通信的,也就是进程之间可能会互相协作完成任务。要让两个进程互相通信的前提条件是得让两个进程将信息传递起来。

2.进程间通信的目的

  • 数据传输:一个进程需要将它的数据发送给另一个进程
  • 资源共享:多个进程之间共享同样的资源。
  • 通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。
  • 进程控制:有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道它的状态改变。

3.进程间通信的本质

因为我们都知道进程间具有独立性,那有如何保证进程间通信不违背进程的独立性呢?那么在协作的时候假设只有A进程和B进程,然后A进程需要B进程上面的执行任务的信息,那么他们之间需要的信息该如何获取呢?是A进程去访问B进程的数据,然后将需要的信息拷贝到自己进程上还是B进程去访问A进程将对应那部分数据拷贝给A进程呢?其实这两者都不对,都违背了进程的独立性。

下面我们来举个例子理解进程如何进行进程间通信呢?假设你叫张三,然后你爸你妈今天吵架了,谁也不爱理谁,这个时候你放学回家了,你妈妈刚好在煮饭菜,马上就要煮好了,然后你妈妈为了爱自己的面子不想跟你爸爸说话,然后就叫你去跟你爸爸说让你爸爸吃饭了,你就屁颠屁颠跑过去说:“爸爸,妈妈叫你吃饭了”,你爸爸就说:"不吃",然后你又跑过去跟你妈妈说:“爸爸说他不吃”,你妈妈又会说:“爱吃不吃”,然后你又难受的走过去说:“我妈说你爱吃不吃”。那么这个故事中,张三是在做什么呢?你在充当一个就是叫做进程间通信时的中间媒介,因为有了你的存在,所以你的爸爸妈妈之间的进程间的独立性得以保证,此时既保证了独立性,传递信息的目的也就达成了。在这个典型的例子当中,张三的爸爸妈妈就是典型的A进程,B进程,你是操作系统,因为A进程和B进程都是要在操作系统的调度之下去运行的,A进程不能看到B进程的代码和资源,但是它可以去访问操作系统的资源,B进程也是如此,所以让操作系统作为中间人,把要传递的信息交给操作系统,让需要接受传递信息的进程去操作系统那里去拿,这不就做到了进程间的通信了吗?

进程间通信的本质:让不同的进程先看到同一份资源。这份资源通常都由操作系统提供。

4.进程间通信的发展

  • 管道
  • System V进程间通信
  • POSIX进程间通信

5.进程间通信的分类

管道

  • 匿名管道pipe
  • 命名管道

System V IPC

  • System V 消息队列
  • System V 共享内存
  • System V 信号量

POSIX IPC

  • 消息队列
  • 共享内存
  • 信号量
  • 互斥量
  • 条件变量
  • 读写锁

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/646577.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一套令我获益颇多的生活模式

你有没有过这样的感受: 有时候,会觉得自己不够好,于是下定决心,做好计划,打算作出一些改变。 但坚持了两天,却又故态复萌,回到旧的模式里。仿佛有一种力量把你往回拉扯,强迫你重复着…

MyBatis 中<foreach>的用法(同时处理多条数据)

在 MyBatis 中&#xff0c;<foreach> 是一个非常有用的标签&#xff0c;用于进行集合的遍历操作。它可以在 SQL 语句中动态地生成多个相同或类似的语句片段&#xff0c;以便处理集合中的每个元素。 <foreach> 标签有以下常用的属性&#xff1a; collection&#…

pandas处理CSV文件

一、准备CSV文件 数据文件下载地址&#xff1a;nba.csv CSV&#xff08;Comma-Separated Values&#xff0c;逗号分割值&#xff09;是一种文件格式&#xff0c;以纯文本形式存储表格数据。 注&#xff1a;CSV有时也称为符号分隔值&#xff0c;因为分隔字符也可不是逗号 二…

用这个烟感监测技术!同事下巴都惊掉了!

在当今社会&#xff0c;火灾作为一种极具破坏性的灾害&#xff0c;对人们的生命和财产安全构成着严峻的威胁。 为了更好地预防和管理火灾风险&#xff0c;烟感监控系统成为一项不可或缺的技术创新。为各行各业提供了全方位、高效的火灾预警和防范手段。 客户案例 商业办公楼 …

虚拟机体验Mycat

Mycat 安装目录 /opt/mycat导入OVA 安装Oracle VM VirtualBox 启动Oracle VM VirtualBox File&#xff08;管理&#xff09; -> Import Appliances&#xff08;导入虚拟电脑&#xff09; 选择CentOS 7.ova 一路Next 体验Mycat 启动虚拟机 登录虚拟机 root/123456 启…

提升效率,节省时间:如何利用享搭低代码平台快速开发应用

在当今快节奏的商业环境中&#xff0c;企业需要以高效的方式开发应用程序&#xff0c;以迅速满足市场需求并保持竞争优势。而传统的软件开发往往需要耗费大量的时间和资源&#xff0c;限制了企业的创新能力和快速响应能力。然而&#xff0c;现在有一种强大的工具可以帮助企业解…

SecureCRT的安装

SecureCRT的安装 加强版的串口调试助手 全部默认安装&#xff0c;默认安装在c盘 SecureCRT收费&#xff0c;可以下载Putty安装 后续完善

【学网攻】 第(4)节 -- 交换机划分Vlan

文章目录 【学网攻】 第(1)节 -- 认识网络 【学网攻】 第(2)节 -- 交换机认识及使用【学网攻】 第(3)节 -- 交换机配置聚合端口 前言 网络已经成为了我们生活中不可或缺的一部分&#xff0c;它连接了世界各地的人们&#xff0c;让信息和资源得以自由流动。随着互联网的发展&am…

C# 实现 Word 加盖骑缝章效果

目录 实现效果 范例运行环境 Office DCOM 配置 设计实现 创建stamp图章类 电子章图片的计算与定位 旋转图片方法 总结 实现效果 在OA的自动化处理系统中&#xff0c;通过审批的最终节点&#xff0c;可能会对WORD文件加盖电子章&#xff0c;比如定位带有指定文字的Ra…

【操作系统】实验八 proc文件系统

&#x1f57a;作者&#xff1a; 主页 我的专栏C语言从0到1探秘C数据结构从0到1探秘Linux &#x1f618;欢迎关注&#xff1a;&#x1f44d;点赞&#x1f64c;收藏✍️留言 &#x1f3c7;码字不易&#xff0c;你的&#x1f44d;点赞&#x1f64c;收藏❤️关注对我真的很重要&…

ASUS华硕无畏Pro15笔记本电脑(M6500QB,M6500QH)工厂模式原厂OEM预装Windows11.22H2系统 含Recovery恢复

原装出厂Windows11系统适用于华硕无畏15笔记本电脑型号&#xff1a;M6500QB和M6500QH 链接&#xff1a;https://pan.baidu.com/s/1AVGLN6-ILIRogOMj48Mk1w?pwdmi7d 提取码&#xff1a;mi7d 带有ASUS RECOVERY恢复功能、自带所有驱动、出厂主题专用壁纸、系统属性联机支持…

Linkedin领英账号被封是为什么?如何反封控?2024外贸拓客必看攻略

大家都知道&#xff0c;领英作为全球最大的职场社交平台&#xff0c;拥有非常精准的领域人脉&#xff0c;有着大量的高质客户资源&#xff0c;对于外贸等跨境业务来说&#xff0c;他是一个精准开发客户的最好渠道。 但是许多外贸小伙伴也经常遇到一个难题&#xff0c;那就是领…

司铭宇老师:汽车销售培训:汽车销售员培训:汽车销售技巧培训:汽车销售技巧和话术

汽车销售培训&#xff1a;汽车销售员培训&#xff1a;汽车销售技巧培训&#xff1a;汽车销售技巧和话术 汽车销售是一项充满挑战性的工作&#xff0c;它需要销售人员具备良好的沟通技巧、谈判技巧以及产品讲解能力。在这篇文章中&#xff0c;我们将详细探讨汽车销售中的技巧和话…

关于爬虫爬取网页时遇到的乱码问题的解决方案。

目录 前言解决措施 前言 最近&#xff0c;我像爬取一下三国演义这本书籍的全部内容。 网站的网址为&#xff1a;https://www.shicimingju.com/book/sanguoyanyi.html 但是我爬取出来的结果是这样的 会遇到乱码。 经过我多方面的调试发现&#xff0c;就是网页的编码和我pycha…

C++ STL之deque的理解及使用

文章目录 1. 介绍2. 实现原理&#xff08;简单理解&#xff09;3. deque的优缺点4. deque类的使用4.1 deque类对象的构造函数4.2 deque类对象的容量操作4.3 deque类对象的修改操作4.4 deque类对象的访问及遍历操作 1. 介绍 deque(双端队列)&#xff1a;是一种双开口的连续空间的…

PiflowX-JdbcCatalog组件

JdbcCatalog组件 组件说明 通过JDBC协议将Flink连接到关系数据库,目前支持Postgres Catalog和MySQL Catalog。 计算引擎 flink 组件分组 Catalog 端口 Inport&#xff1a;默认端口 outport&#xff1a;默认端口 组件属性 名称展示名称默认值允许值是否必填描述例子c…

系统学习Python——类(class):静态方法(staticmethod)和类方法(classmethod)-[实例:用类方法计数]

分类目录&#xff1a;《系统学习Python》总目录 文章《系统学习Python——类&#xff08;class&#xff09;&#xff1a;静态方法&#xff08;staticmethod&#xff09;和类方法&#xff08;classmethod&#xff09;-[实例&#xff1a;用静态方法计数]》中使用了静态方法对类生…

MATLAB curve fitting toolbox没有怎么办?

版本&#xff1a;MATLAB R2023b 如果在安装MATLAB时仅仅选择了安装MATLAB&#xff0c;而并未选择其他选项&#xff0c;则在进入MATLAB后会发现顶部的APP栏中无法找到曲线拟合工具箱。 本人跟随MATLAB中的教程进行下载时&#xff0c;出现了如下报错&#xff1a; 最终解决方案&a…

【SVD生成视频+可本地部署】ComfyUI使用(二)——使用Stable Video Diffusion生成视频 (2023.11开源)

SVD官方主页 &#xff1a; Huggingface | | Stability.ai || 论文地址 huggingface在线运行demo : https://huggingface.co/spaces/multimodalart/stable-video-diffusion SVD开源代码&#xff1a;Github&#xff08;含其他项目&#xff09; || Huggingface 在Comfyui使用&…

【博士论文写作 笔记02】研究挑战、研究目标、研究方案和研究内容的区别?

文章目录 一、声明二、介绍三、示例&#xff08;涉及的博士论文未争取作者同意之前暂不公布&#xff09; 一、声明 未完部分后续会更新 二、介绍 在博士论文写作中研究挑战、研究目标、研究方案和研究内容需要做详尽的阐述&#xff0c;但是几个概念很容易混淆&#xff0c;我…