unix环境高级编程-流 advanced programming in the unix environment-streams

来源:互联网 发布:软件著作权证书领取 编辑:程序博客网 时间:2024/05/21 15:46

其它的内容请查看《unix环境高级编程》14.4节有关流的描述,这里只是因为看这本书的时候对流机制理解的不是很清晰,所以找了作者的参考文献:“A steam input-output system”来看,因为只有英文原版,所以自己翻译了一下。感觉看过这个文献之后对流机制的理解要好一些了。以下是有关流机制的定义的部分的翻译:

一个流就是一个连接用户程序和一个设备或者虚拟设备的全双工的通路。它由许多的线性连接的程序模块组成。这些在一个流通讯的模块几乎都是排外的《专有的》它们通过发送信息给它们的邻居模块而实现这种排外。当然也有一些传统的流控制模块不需要与它们的邻居模块的存储进行连接。而且,一个模块仅仅提供“一个”与邻居模块连接的通道,也就是一个接收消息的例行程序。

//注:这些由模块组成的流连接成一串,这一串有两个端点(流首和流尾),一个端点是一些为用户程序提供接口的例行程序,另外一个端点则与设备交互

流接近用户程序的一端是一系列的例行程序,这些例行程序为系统的剩下来的部分(the rest of the system)提供一个接口。用户的写和i/o控制命令转变成消息发送到流,用户的读命令从流中获取数据然后发送给它的用户。流的另外一端是一个设备驱动模块,在这里模块中,来自流的数据发送给设备;而设备侦测到字符或者状态转换之后也组成消息发送给流,流再发送到用户程序。作为媒介的这些流模块以各种各样的方式加工这些消息。流两端的模块当设备打开时是自动的连接的;中间的作为媒介的模块则根据用户程序的要求动态的开启或关闭;所有的模块的读和写的接口都是一样的。


0 0
原创粉丝点击