LinuxGod

LinuxGod.net
Linux大神网——精选每一篇高品质的技术干货
  1. 首页
  2. 开源快讯
  3. 正文

小节知识架构学习目标了解掌握掌握了解早期进程间通信机制的原理

2023年5月23日 107点热度

第5章初期进程间通讯无名管线有名管线讯号无名管线有名管线5.25.1讯号5.3☞点击查看本小节知识构架☞点击查看本小节知识构架☞点击查看本小节知识构架学习目标了解把握把握把握了解初期进程间通讯机制的原理1把握初期进程间通讯机制的特性及应用场合42把握初期进程间通讯机制的插口方式3把握初期进程间通讯机制的编程方式销售额把握知识理解知识熟悉知识了解知识2.52.52.52.5在后面的章节中,早已介绍了有关任务的执行单位——进程的概念。通过了解进程使用的地址空间的性质,可以晓得每一个进程都享有自己的虚拟地址空间,因而进程间实现数据的传递须要引入进程的通讯机制。进程的通讯机制有好多种。本章将介绍三种初期进程间通讯机制,这种机制应用于本地通讯,相对容易理解,读者应熟练把握。5.1无名管线5.1.1无名管线简介返回目录5.1.2无名管线的特点5.1.3无名管线的通讯5.1无名管线Linux的进程通讯机制基本是从UNIX平台承继而至的。管线是UNIX系统上最古老的进程间通讯(InterProcessCommunication,IPC)方式。管线最早出现在20世纪70年代UNIX的第三个版本。

管线可以把一个程序的输出直接联接到另一个程序的输入,借此来构建联接。管线分两种,一种是无名管线,一种是有名管线。管线是一种特殊的文件,它拥有与文件操作类似的方法,但同时也具有与文件不同的属性。管线的本质是在内核空间上的一段特殊显存区域,无名管线的实现原理如图所示。5.1.1无名管线简介5.1无名管线正如上图所示,每位进程都有4GB的虚拟地址空间,其中0~3GB为用户空间,3~4GB为内核空间。因为每位进程都可以通过系统调用步入内核(内核空间由系统内所有进程共享的)。为此,无名管线则被创建在内核空间上的。无名管线使用时有固定的读端和写端,发送消息须要向管线的写端写入,接收消息须要向管线的读端读取,这样即可完成数据的传递了。5.1.1无名管线简介5.1无名管线通过对无名管线的简单介绍,可以看出其通讯方法很直接。无名管线不同于普通文件unix系统 进程间通信,在对其及进行操作时,须要注意无名管线的一些特点,以保证操作管线时不会出现问题。在了解这种特点之前,先介绍无名管线的插口及使用。5.1.2无名管线的特点#includeintpipe(intpipefd[2]);pipe()函数拿来创建一个无名管线,参数pipefd[2]为一个链表,拿来保存函数返回的两个文件描述符,将pipefd[0]视为管线的读端,而pipefd[1]视为管线的写端,因而通过该管线进行通讯的进程,只需操作这两个文件描述符即可。

这与普通文件的操作没有任何区别,只是设定了特定的文件描述符拿来读写。5.1无名管线为此,无名管线的操作有如下特点:(1)无名管线只能用于具有亲缘关系的进程之间通讯(如兄妹进程)。(2)类似于单工的模式,无名管线具有固定的读端与写端。(3)无名管线其实是特殊的文件redflag linux,但对它的读写可以使用文件I/0中read()函数、write()函数直接操作文件描述符即可。(4)无名管线本质是一段内核空间中的显存段,因而不能使用lseek()函数对管线进行定位操作。(5)无名管线的操作属于一次性操作,一旦对管线中的数据进行读取,读取的数据将会从管线中移除。5.1.2无名管线的特点5.1无名管线(6)无名管线的大小是固定的,向无名管线写入数据,当管线写满时,继续写入将会阻塞。(7)无名管线中数据被写满后,写操作将会阻塞,当管线中出现4KB以上的空闲空间时,可以继续写入4KB的整倍数的数据。(8)当无名管线的读端被关掉时,从写端写入数据,管线将会断裂美国linux主机,进程将会退出。关掉读端,正式用于读的文件描述符关掉即可。(9)当管线无数据时,读操作将会阻塞;当管路中有数据时,且写端关掉时,读操作可以读取,不会阻塞。

5.1.2无名管线的特点5.1无名管线本节将通过教材中例5-4展示通过无名管线使兄妹进程进行通讯unix系统 进程间通信,父进程读取文件test1.txt中的数据并写入管线,子进程读取管线将数据写入到test2.txt。运行结果如下,使用cat命令查看被读取文件以及生成的文件,可以看出读取成功。5.1.3无名管线的通讯linux@Master:~/1000phone/pipe$./a.outlinux@Master:~/1000phone/pipe$cattest2.txthelloworldhelloworldhelloworldlinux@Master:~/1000phone/pipe$catte

本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 操作 管道 读取 进程 通信
最后更新:2023年5月23日

Linux大神网

每日更新,欢迎收藏♥ 不积跬步无以至千里,加油,共勉。

点赞
< 上一篇
下一篇 >

文章评论

您需要 登录 之后才可以评论

Linux大神网

每日更新,欢迎收藏♥
不积跬步无以至千里,加油,共勉。

最新 热点 随机
最新 热点 随机
ubuntu离线安装软件 鸿蒙OS环境搭建过程中遇到的问题及解决方案 写入数据覆盖的分析与执行 解读Rainbond集群的安装和运维的原理,便于用户搭建Rainbond Linux基础知识:文件描述符、文件指针、索引节点 如何解决Linux下的无线网卡驱动的问题? linux 文件描述符 (师)-unused-fdKernel:2.6.14CPUarchitecture Linux系统下如何搭建SVN服务器,详细说明各配置项的功能 修改软件源文件、UI界面设置换源操作|Ubuntu Ubuntu14.04.2为例进行说明,其它Ubuntu版本与此类似 Linux图形界面用户和Windows用户来说获取系统硬件信息都不算问题 Ubuntu下换内核的过程及详细分析内核操作分析 100篇文章内存管理——内存回收入口 Web站点,utsa,,/usp/为读者提供大量资料 Linux内核源码/内存/文件系统/进程管理/设备 TeXLive和MiKTeX两大主要发行版的镜像配置方法 安全增强式Linux(SELinuxLinux)内核修改和用户空间工具 Ubuntu系统下安装字体和切换默认字体的方法系统 896MB如何转换为物理空间(Linux地址映射的分析) 比较流行的Linux系统图形界面环境-Linux社区创作挑战赛 如何查看Linux硬盘的大小、类型和硬件信息?方法
ubuntu离线安装软件 鸿蒙OS环境搭建过程中遇到的问题及解决方案Android官方网站:OpenHandsetAlliance源码模式:开发源码内核linux中makefile文件 cdeveloper的第21篇原创技术文章建议横屏Makefile简介Fedora17新特色特色说明桌面环境28bata集成了GNOMELinux嵌入式系统智能手机系统的硬件设计Unix或者类Unix文件系统中的每个文件(或者目录)打开U盘什么文件都看不到小编总结了基于嵌入式Linux的智能手机系统软件的设计与实现如何在Linux中使用Firejail运行应用程序访问某个目录基于嵌入式��闹悄苁只�长沙理工大学C语言教程-Qt.12安装教程05-27Linux有7个运行级别(关机,停机模式、DellG3)(Linux基础知识)文件压缩、打包命令解析的Linux操作系统怎样执行?LinuxDNS服务器,如何安装、配置和维护它?AMD2950x+技嘉x399免驱USB网卡,我的无线网卡linux解压gz文件命令 蓝易云香港五网CN2网络压缩比率的测试环境Linux系统中用于管理和控制系统服务的强大工具介绍围绕API创建封装器的开源项目正变得越来越流行主频93.75MHz的MIPS64NECVR4300处理器在N64上运行
usb转串口万能驱动UT-810USB2.0TORS232 linux内核获得控制权之后开始干自己的事可以分为五步来完成 Windows下默认的编码是GBK-8,怎么办? CentOS8虚拟机的网络设置对话框的解决方法和解决办法 linux中添加ftp用户,并设置相应的权限,怎么上传目录? Linux启动时,不使用图形界面可能更有效率! 宝塔安装使用SSH连接工具,Linux服务器连接的基本介绍 第六章.管理本地用户和组学习目标:6.1描述用户访问权限 Linux内核版本命令(两种方法)和Linux系统版本的命令 【报错日志】一下升级linux内核的启动顺序为0 linux虚拟机软件 Linux在安装的时候要注意什么?Linux安装注意事项 Ubuntu安装双系统的方法,你知道几个?(上) 红旗Linux推出新版本:界面设计媲美Windows Linux添加普通用户到sudo列表的解决方法介绍 轻松掌握:如何查询Linux内核版本? Ubuntu上使用的默认浏览器为Firefox,该怎么安装? 嵌入式linux系统开发培训-C编程以及C++Linux应用开发 Linux内核和文件系统权限管理的基本用法——ACL权限 驱动开发:通过ReadFile与内核层通信详细介绍如何使用应用层 Java拼接SLICE-F-MOVE的零拷贝方法是怎样的?
标签聚合
电脑 软件 linux服务器 文件目录 linux脚本 虚拟机 命令模式 命令 sudo linux系统
书籍
课程
技术群
技术干货大合集↓
  • 2023年6月 / 17篇
  • 2023年5月 / 93篇
  • 2023年4月 / 90篇
  • 2023年3月 / 129篇
  • 2023年2月 / 84篇
  • 2023年1月 / 161篇
  • 2022年12月 / 187篇
  • 2022年11月 / 76篇
友情链接:

Linux书籍 | Linux命令 | Linux系统 | RHCE红帽认证 | Linux软件 | Linux教程 | CentOS系统 | Linux内核 | Linux服务器 | Linux大神 | IT资源

COPYRIGHT © 2023 linuxgod.net ALL RIGHTS RESERVED.