FIFO 与 共享储存

本文介绍了FIFO(命名管道)的概念和用途,强调了其在不相关进程间通信的优势,特别是在客户进程与长期运行的服务器进程(如守护进程)之间的通信。FIFO允许服务器创建并打开一个路径名,而客户则可以写入请求进行通信。此外,文章还提到了共享储存,描述了一个通过共享储存进行进程间通信的例子,但未深入探讨物理地址的细节。
摘要由CSDN通过智能技术生成

FIFO 与 共享储存

标签(空格分隔): 进程通信


FIFO有时被称为命名管道. 管道只能由相关进程使用,但是,通过FIFO,不相关进程也能交换数. FIFO的路径名存在于文件系统中,一般的文件I/O函数都可用于FIFO.

FIFO的用途:用于客户进程–服务器进程应用程序中
FIFO的真正优势在于:服务器可以是一个长期运行的进程(例如守护进程),而且与其客户可以无亲缘关系。

作为服务器的守护进程以某个众所周知的路径名创建一个FIFO,并打开该FIFO来读。此后某个时刻启动的客户打开该FIFO来写,并将其请求通过该FIFO发送出去。(客户到服务器)
每个客户在启动时创建自己的FIFO,所用的路径名含有自己的进程ID。每个客户把自己的请求写入服务器的众所周知的FIFO中,该请求含有客户的进程ID以及一个请求文件路径名,服务器根据客户进程ID可以知道客户FIFO的路径名。

即每个客户一个子进程服务器。每当有一个客户请求到达时,这种服务器就让主进程调用fork派生出一个新的子进程。该新子进程处理相应的客户请求,直到完成为止。

管道和FIFO的特征之一是它们的数据是一个字节流。这是UNIX的原生I/O模型。进程往其中写入的是字节流,系统不对它作解释.


共享储存

一个例子输出共享储存的实际物理地址. 物理地址估计还是后面再看一遍 csapp 总结后会有深一点的理解.


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值