栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux系统编程 81 管道的性质

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux系统编程 81 管道的性质

学习笔记

管道的概念:

管道是一种最基本的IPC机制,作用于有血缘关系的进程之间,完成数据的传递。
调用pipe系统函数即可创建一个管道。

我们使用
mkfifo f1 
fifo是队列,而管道实为环形队列。

$mkfifo fl
$ll
total 28
drwxrwxr-x  7 ubuntu ubuntu 4096 1月  16 20:39 ./
drwxr-xr-x 15 ubuntu ubuntu 4096 1月  14 23:06 ../
drwxrwxr-x  2 ubuntu ubuntu 4096 12月 18 18:36 42fputcandwrite/
drwxrwxr-x  2 ubuntu ubuntu 4096 1月  14 23:06 82testpipe/
drwxrwxr-x  2 ubuntu ubuntu 4096 1月  14 20:51 83mypipe/
drwxrwxr-x  2 ubuntu ubuntu 4096 1月  14 22:28 84fatherandsoncommunication/
prw-rw-r--  1 ubuntu ubuntu    0 1月  16 20:39 fl|
drwxrwxr-x  2 ubuntu ubuntu 4096 12月 16 00:53 test/


linux下文件有7种,加上未知的总共8种。

伪文件:
普通文件  目录 软链接这三种是真正占用磁盘空间的。
剩下的四种称伪文件。它不需要占用磁盘空间。

比如管道只占用内存,只占用缓冲区。

图1

 


有如下性质:
1.本质上是一个伪文件(实际为内核的缓冲区)
2.有两个文件描述符引用,一个表示读端,一个表示写端
3.规定数据从管道的写端流入,从读端流出 读写是站在程序的角度来看,而不是管道。

管道的原理:管道实为内核使用环形队列机制,借助内核缓冲区(4k)来实现。
队列:FIFO
栈:FILO

管道的局限性
1.数据不能进程自己写自己读
2.管道中的数据不可反复读写,一旦读取,就被读走了
3.采用半双工的方式进行通信,数据只能在单方向上流动
4.只能在有公共祖先的进程间通信

半双工:
半双工(Half Duplex)数据传输指数据可以在一个信号载体的两个方向上传输,但是不能同时传输。
半双工方式即在同一时刻,只能进行一个方向传送,不能双向同时传输。因此才将其称之为 “半双工方式”。
对讲机
全双工:
全双工方式是增加一条线,使A、B两端均可同时工作在收发方式,不用收发切换,因而传送速率可成倍增长
比如说电话


单工通信:
单工通信,是指消息只能单方向传输的工作方式。例如遥控、遥测,就是单工通信方式

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/706131.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号