进程间通信(1)管道

news2024/11/18 9:05:31

在这里插入图片描述

  • 我最近开了几个专栏,诚信互三!
    ====> |||《算法专栏》::刷题教程来自网站《代码随想录》。|||
    ====> |||《C++专栏》::记录我学习C++的经历,看完你一定会有收获。|||
    ====> |||《Linux专栏》::记录我学习Linux的经历,看完你一定会有收获。|||
    ====> |||《C#专栏》::记录我复习C#的经历,深度理解查漏补缺,不定期更新。|||
    ====> |||《计算机网络专栏》::记录我学习计算机网络,看完你一定会有收获。|||

进程间通信(1)管道

  • 什么是进程间通信
  • 进程间通信的基础
  • 管道通信原理
  • 管道的特点

什么是进程间通信

进程间通信是让进程可以看到另一个进程发送的资源。

进程间通信的基础

不论是何种进程间的通信,都需要有一定的基础。
1).都需要让多个通信的进程看到同一份资源。
2).同时该份资源不能由通信的进程的任何一方提供。

否则进程是否能成功通信就取决于某个通信的进程了,耦合度太高。

所以操作系统需要提供和管理这部分资源。

管道通信原理

管道是进程间通信的方法之一,管道分为命名管道和匿名管道,管道通过一个临时文件的缓冲区作为公共资源进行通信。
Linux中管道操作符就是通过管道通信原理实现的。
1).通过pipe接口创建一个匿名管道,会打开读端和写端
在这里插入图片描述
在这里插入图片描述
其中pipefd[0]是读端的fd,pipefd[1]是写端的fd。
2).创建子进程,子进程会继承父进程pcb的内容,并且也会生成一个新的file结构体数组,与父进程的pcb相同。
在这里插入图片描述

3).一个进程关闭读,一个进程关闭写,进行半双工通信。

命名管道通过接口mkfifo创建管道文件,两个进程通过管道文件进行通信,也可以使用mkpipe指令创建一个管道文件。

命名管道比匿名管道的优势是匿名管道只能进行有血缘关系的进程,而命名管道可以让任何进程之间进行通信。

管道的特点

管道有优点和缺点。
一.优点
1).管道是自同步的。

1.管道的读端不读,不关闭读端,写端一直写,会导致将管道写满后,就会阻塞等待读端读取数据
2.管道的写端不写,不关闭写端,读端在读完管道的数据后,就会阻塞等待写端写数据。
3.管道的读端不读,关闭读端,写端在写,则os会判定该管道的软件条件不满足了,于是会向写端进程发送信号,杀死进程。
4.管道的写端不写,关闭写端,读端在读,则读函数则会返回0。

2).管道是面向字节流的。

管道内不论有多少数据,都会被直接读取完。

3).管道是半双工通信的。

二.缺点
1).管道的效率很低,需要调用系统调用,时间效率低。
2).匿名管道只能进行血缘关系的通信,命名管道可以进行任何进程间的通信。

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

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

相关文章

抖音小店怎么做?新手起店只需三步,看这一篇就够了

大家好,我是电商笨笨熊 抖音小店现如今已经人尽皆知,只因为让不少的普通玩家有了做电商的机会。 但是对于新手小白来说,做抖店一定不要盲目,此项目固然能让众多人从个人走到团队化,但也要掌握方法。 所以今天我们就…

半导体存储电路知识点总结

目录 一、SR锁存器 1.SR锁存器的概念 2.作用 二、电平触发器(Flip-Flop) 1.时钟信号 2.电平触发的触发器电路结构 3.带异步置位复位的电平触发器 三、边沿触发器 1.特点 2.两个D触发器组成的边沿触发D触发器 3.CMOS边沿触发D触发器的典型电路 …

通过PyCharm平台开发Django应用程序

学会使用命令行工具开发Django应用程序是基础,不过更多的时候还是要借助平台开发工具。目前,最好的Django应用程序开发工具就是jetBrains公司推出的PyCharm平台了。 借助PyCharm开发平台,可以极大提高开发Django应用程序的效率,同…

R语言中的execl数据转plink

文章目录 带出外部连接的方式添加列的方式从列表中选出对应的数据信息查看变量信息没有成功 带出外部连接的方式 点击这个黄色的按钮就可以弹出外部链接的方式 添加列的方式 创建一个数据框的方式 我们创建一个三行三列的数据方式 df <- data.frame(name c("Alice&…

BUUCTF-MISC01金胖

题目&#xff1a;动图使用Stegsolve软件进行逐帧查看 下载文件后&#xff0c;图片隐写之gif多帧隐藏&#xff0c;这类题比较简单&#xff0c;只需要将图片使用Stegsolve软件进行逐帧查看就行了.file-open打开添加文件 将文件添加进来&#xff0c;而后点击Analyse-Frame Browse…

【linux运维】系统常见管理命令

系列综述&#xff1a; &#x1f49e;目的&#xff1a;本系列是个人整理为了学习基本的shell编程和linux命令&#xff0c;整理期间苛求每个知识点&#xff0c;平衡理解简易度与深入程度。 &#x1f970;来源&#xff1a;材料主要源于b站大学——linux运维课程进行的&#xff0c;…

【计算机毕业设计】二手车估值与销售网络平台产品功能介绍——后附源码

&#x1f389;**欢迎来到琛哥的技术世界&#xff01;**&#x1f389; &#x1f4d8; 博主小档案&#xff1a; 琛哥&#xff0c;一名来自世界500强的资深程序猿&#xff0c;毕业于国内知名985高校。 &#x1f527; 技术专长&#xff1a; 琛哥在深度学习任务中展现出卓越的能力&a…

C语言 ─── 操作符详解

目录 1. 算术操作符 2. 移位操作符 2.1 左移操作符 2.2 右移操作符 3. 位操作符 4. 复合赋值符 5. 单目操作符 6. 逗号表达式 7. 隐式类型转换 7.1 整型提升的意义&#xff1a; 7.2 如何进行整体提升呢&#xff1f; 8. 算术转换 ★★★数组名 1. 算术操作符 -…

动态IP与静态IP的区别,你选对了吗?

在互联网世界中&#xff0c;IP地址是每台设备在网络上的唯一标识。这些地址可以是动态的&#xff0c;也可以是静态的。对于非专业人士来说&#xff0c;理解这两者之间的区别可能会有些困难。本文旨在深入探讨动态IP和静态IP的主要差异&#xff0c;帮助读者根据自己的需求做出明…

在西非土地上播种希望

在西非这片广阔而充满活力的土地上播种希望&#xff0c;我们可以从多个维度进行解读和行动&#xff1a; 教育援助&#xff1a;投资于当地的教育事业&#xff0c;改善学校设施&#xff0c;提供教育资源&#xff0c;尤其是对女童教育的重视&#xff0c;让更多孩子有机会接受基础…

免费强大不限速的远程桌面工具推荐.

一、功能概述 此篇主要介绍,如果使用P2P实现远程桌面控制,如同teamviewer,向日葵一样.只是你不需要付费即可使用,而且我们更加安全. 你也可以直接使用windows自带的远程桌面功能,下面我介绍另一种方式. 二、使用步骤 1.下载远程控制程序安装包. 下载链接:点击下载 2.解压…

ai写作强大,ai写作哪个软件最好用?

在当今数字化时代&#xff0c;ai技术的发展正以惊人的速度改变着我们的生活和工作方式。其中&#xff0c;ai写作作为一项令人瞩目的创新&#xff0c;展示了强大的文本生成能力。然而&#xff0c;随着各种ai写作软件的涌现&#xff0c;人们不禁困惑&#xff1a;哪个软件才是最好…

提升Office 365网络效率的SD-WAN技术

在数字化办公环境中&#xff0c;Office 365已成为许多企业日常工作的核心平台。随着企业对云办公工具的依赖不断增加&#xff0c;对Office 365的性能和效率要求也日益提高。对于企业而言&#xff0c;加速Office 365已经成为提升工作效率、促进团队协作和提升竞争力的关键举措之…

2024大环境!2024创业项目小成本!2024创业新思路!2024创业新项目新商机!2024创业好项目!2024创业做什么行业前景好!

房子是永远都不会涨了&#xff0c;电车车企是突然间就开始降价抢市场&#xff0c;金价暴涨&#xff01;趋势瞬息万变&#xff01;今年是必须要做出改变的一年&#xff0c;因为这个世界正在以近乎疯狂的速度发生改变。跟上这波变化&#xff0c;将有机会重塑自己未来的人生。跟不…

目标检测——输电线路缺陷数据集

引言 亲爱的读者们&#xff0c;您是否在寻找某个特定的数据集&#xff0c;用于研究或项目实践&#xff1f;欢迎您在评论区留言&#xff0c;或者通过公众号私信告诉我&#xff0c;您想要的数据集的类型主题。小编会竭尽全力为您寻找&#xff0c;并在找到后第一时间与您分享。 …

k8s使用harbor私有仓库镜像 —— 筑梦之路

官方文档: Secret | Kubernetes ImagePullSecrets的设置是kubernetes机制的另一亮点&#xff0c;习惯于直接使用Docker Pull来拉取公共镜像&#xff0c;但非所有容器镜像都是公开的。此外&#xff0c;并不是所有的镜像仓库都允许匿名拉取&#xff0c;也就是说需要身份认证&…

redis与etcd的对比

1.redis是一种高级的key&#xff1a;value存储系统&#xff0c;其中value支持五种数据类型&#xff1a; 1.1 字符串&#xff08;strings&#xff09; 1.2 字符串列表&#xff08;lists&#xff09; 1.3 字符串集合&#xff08;sets&#xff09; 1.4 有序字符串集合&#xff08;…

杜牧是唐朝最风流的诗人

杜牧&#xff0c;有“杜紫薇”之称&#xff0c;是宰相杜佑的孙子。李白、杜甫是“大李杜”。杜牧、李商隐是“小李杜”。 杜牧23岁写了《阿房宫赋》&#xff0c;一朝成名天下知。 唐朝晚年&#xff0c;科举和仕途没有出路&#xff0c;杜牧寄情享乐。杜牧怀才不遇&#xff0c;…

安装SSL证书之后还会有不安全提示怎么办?

安装SSL证书过程中如果遇到错误&#xff0c;不要慌&#xff0c;按照以下步骤进行排查和解决&#xff1a; 1. 仔细阅读错误信息&#xff1a; - 错误消息通常会明确指出问题所在&#xff0c;如证书过期、证书链不完整、域名不匹配等。记下或截图保存具体的错误代码和描述&#xf…

区块链安全应用----压力测试

通过Caliper进行压力测试程序 1.环境配置 第一步. 配置基本环境 部署Caliper的计算机需要有外网权限&#xff1b;操作系统版本需要满足以下要求&#xff1a;Ubuntu > 16.04、CentOS > 7或MacOS > 10.14&#xff1b;部署Caliper的计算机需要安装有以下软件&#xff…