【Linux 进程间通信】管道

news/2024/5/20 22:35:35

文章目录

      • 1.为什么操作系统需要向用户提供进程间通信方式?
      • 2.进程间通信的种类
      • 3.管道
        • 3.1管道的作用
        • 3.2管道的本质
        • 3.3管道的通信原理
        • 3.4管道的分类

1.为什么操作系统需要向用户提供进程间通信方式?

①🍎资源共享:有的时候两个进程需要访问同一块资源;
②🍎协同作用:某个进程可能需要控制另外一个进程一起运行;
③🍎并发运行:进程的并发控制肯定是需要多个进程之间通信来完成的;

2.进程间通信的种类

①管道:🐧 Linux 下一切皆文件,所以我们也要把管道按文件来理解,管道实际上是内存中的一块共享区域

②共享内存:🐧
③消息队列:🐧
④信号量:🐧

在这里插入图片描述

3.管道

3.1管道的作用

用于进程间的数据传输

3.2管道的本质

内核中的一块缓冲区

3.3管道的通信原理

两个进程访问内核中的同一块缓冲区

3.4管道的分类
  • 匿名管道
  • ①缓冲区没有标识符;
    ②只能由血缘关系的两个进程进行通信(父和子进行通信,或者爷孙之间进行通信);

  • 命名管道
  • ①缓冲区有标识符;
    ②没有亲缘关系的两个进程也可以进行通信;


http://www.mrgr.cn/p/10573607

相关文章

oracle操作系统OS认证和密码文件认证

1 说明 1.1 常见认证方式 Oracle登录认证方式主要涉及到如何验证用户身份以访问数据库。Oracle数据库提供了多种认证机制来确保数据的安全性和访问控制,每种方式都有其特定的使用场景和安全性考虑。以下是Oracle中常见的登录认证方式: 1、基于操作系统…

拉格朗日(Lagrange)中值定理

preamble罗尔中值定理是理解拉格朗日中值定理的基础罗尔中值定理是拉格朗日中值定理的1个特殊情况泰勒中值定理是拉格朗日中值定理的推广definition 若函数\(f(x)\)满足下列条件:\(f(x)\) 在闭区间\([a,b]\)上连续 \(f(x)\) 在闭区间\((a,b)\)上可导则在\((a,b)\)内至少存在一…

NotePad++联动ABAQUS

Abaqus 中脚本运行 1. 命令区kernel Command Line Interface (KCLI) execfile(C:\\temp\second develop\chapter2\pyTest1.py)2. CAE-Run Script File->Run Script 3. Abaqus command Abaqus cae noGUIscript.py(前后处理都可)Abaqus Python scr…

30.Gateway网关过滤器链执行顺序

请求进入网关会碰到三类过滤器: 1.当前路由过滤器(属于GatewayFilter) 2.DefaultFilter(属于GatewayFilter) 3.GlobalFilter(属于GlobalFilter) 合并到一个过滤器链集合中,排序后…

SpringBoot项目启动,传参有哪些方式?

SpringBoot项目启动,传参有哪些方式? 1.Spring级别的参数 直接在启动 Spring Boot 应用的命令行中使用 -- 后跟参数名和值的方式来传递参数。 记住:一般是对于Spring Boot应用特有的配置参数,确保它们遵循Spring Boot的配置属性命…

数字旅游引领智慧化浪潮:科技创新重塑旅游体验,智慧服务打造旅游新高度

在科技飞速发展的今天,数字旅游正以其独特的魅力引领着智慧化浪潮,深刻改变着旅游行业的面貌。数字技术的广泛应用,不仅为旅游行业注入了新的活力,也极大地提升了旅游体验的品质。科技创新与智慧服务的融合,正推动着旅…

线性表--单链表代码题

数据结构 线性表--单链表练习题/****************************************************************************** file name: 2024-04-27_reverseLinkdemo.c* author : tongyaqi1110@163.com* date : 2024-04-27* function : 实现单链表的逆序* note : None* Copy…

ZYNQ NVME高速存储之EXT4文件系统

前面文章分析了高速存储的各种方案,目前主流的三种存储方案是,pcie switch高速存储方案,zynq高速存储方案,fpga高速存储方案。虽然三种高速存储方案都可以实现高速存储,但是fpga高速存储方案是最烂的,fpga…

不知什么插件开发的

撸起袖子加油干!!!

centos7使用源码安装方式redis

安装编译源码的工具gcc yum install -y gcc下载源码 源码下载地址 https://download.redis.io/releases/ 注意事项 不建议安装最新版本redis,所以我这里选择6.2.6版本 下载 wget https://download.redis.io/releases/redis-6.2.6.tar.gz解压 tar -zxvf redis-…

zabbix6.4告警配置(短信告警和邮件告警),脚本触发

目录 一、前提二、告警配置1.邮件告警脚本配置2.短信告警脚本配置3.zabbix添加报警媒介4.zabbix创建动作4.给用户添加报警媒介 一、前提 已经搭建好zabbix-server 在需要监控的mysql服务器上安装zabbix-agent2 上述安装步骤参考我的上篇文章:通过docker容器安装za…

R语言的初级学习

终极目标是SCI中的分析内容 数据挖掘 R 学习之路-1 编程语言的代表 生物医学领域(bioconductor)生物医学的宝库 可视化(就是展示数据的图) 基于自己对数据的理解把科研问题转换为编程问题 R project R语言的包库 在使用R的次新版的R语言 2个小时学习基础入门-第一第二本书…

Web前端框架/库/工具

前言 俗话说:前端从步枪(原生js)到了半自动武器(jQuery)并进化为全自动武器(三大框架(angular,react,vue及其生态链))。 常说工欲善其事必先利其…

Mybatis入门——基础操作

介绍 什么是Mybatis?Mybatis是一款优秀的 持久层 框架,用于简化JDBC的开发。Mybatis本是Apache的一个开源项目iBatis,2010年这个项目由apache迁移到了goole code,并且改名为Mybatis,2013年11月迁移到GitHub。 官网:https://mybatis.org/mybatis-3/zh_CN/index.html快速入…

C++必修:类与对象(一)

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:C学习 贝蒂的主页:Betty’s blog 1. 面向过程与面向对象 1.1. 面向过程 我们之前学习的C语言就是一种面向过程的语…

vscode侧边栏资源管理器重置

不知道点了哪里,资源管理器侧边栏只剩下一个npm脚本选项卡了,找解决方案找了好久,卸载了vscode都没用,还是因为我的搜索方式不对,最后终于找到了,记录下先 问题图:第一步:按curl + shilt + P 第二步:输入View: Reset View Locations

一文看懂什么是回调函数

文章目录一、什么是回调函数 二、回调示例 三、回调函数的应用场景 四、回调函数的优点 五、回调函数的注意事项一、什么是回调函数回调函数是一种在编程中常见的概念,它是指一个函数作为参数传递给另一个函数,并且在特定事件发生或条件满足时被调用执行的函数。 二、回调示例…

MySQL8.0.22安装

MySQL8.0.22安装及配置(超详细)大家好,今天我们来学习一下 MySQL8.0.22安装及配置,好好看,好好学,超详细的第一步进入MySQL官网下载,如下图所示:第二步进入下载完成后解压到除c盘以外的盘,如下图所示:第三步解压后的目录并没有的my.ini文件,没关系可以自行创建在安装根…

报错import build constraints exclude all Go files in

好久没用fyne突然报错 报错import ...go-gl.. build constraints exclude all Go files in go-gl .. 检查gcc --version正常输出 检查gcc版本正常,路径正常。 尝试解决的方法, 1.重新安装依赖,不行 2.重新配置下载地址,不…

Zephyr sensor子系统学习

一、背景 2023年7月份nRF Connect SDK 2.4.0最新版本,使用的Zephyr V3.3版本。从Zephyr 3.5版本在子系统中加入了sensing子系统。 现在最新的nRF Connect SDK 2.6.0 release支持v3.5.99-ncs1,已经支持sensing子系统 nRF52840现在官方支持两个传感器de…