[笔记]软件体系结构(3)--管道与过滤器
发布时间:2022-10-04 11:33:15 所属栏目:Unix 来源:
导读: 看了一整晚,不甚理解管道/过滤器。常见的案例Linux命令管道是比较好理解的,但加之混乱的主动/被动的动态概念,就不太好理解了。暂先整理笔记,后面再回顾。
这是看的第2类体系结构,还是有所收获:大致
这是看的第2类体系结构,还是有所收获:大致
看了一整晚,不甚理解管道/过滤器。常见的案例Linux命令管道是比较好理解的,但加之混乱的主动/被动的动态概念,就不太好理解了。暂先整理笔记,后面再回顾。 这是看的第2类体系结构,还是有所收获:大致可抽象出一些常见设计的范式 1、体系结构现过程关键点:拆、定义接口/格式、合、出错处理 2、优点关注:重用度“考虑到一般变更的设计是优秀系统深化的一个主要助推器” 【概述】 管道和过滤器(Pipes and Filters)为处理数据流的系统提供了一种结构。每个处理步骤封装在一个过滤器组件中,数据通过相邻过滤器之间的管道传输。重组过滤器可以建立相关系统族。 【细节】 例子 -- Java语言的解析过程(词法分析,语法分析,语义分析,中间代码生成,中间代码优化) 语境 -- 处理数据流 问题 -- 存在不同的输入数据源;想要达到未来可灵活重新排列步骤,需要提前做好规划;不相连的处理步骤不共享信息etc 解决方案 -- 将系统任务分成几个顺序的处理步骤。 结构 -- 1、随后的流水线单元从过滤器中拉出输出数据(被动过滤器) 2、前面的流水线单元把新的输入数据压入过滤器(被动过滤器) 3、最常用的,过滤器以循环方式工作UNIX 管道和过滤器,从流水线中拉出其输入数据并且将其输出数据压入流水线(主动过滤器) 过滤器,职责:获得输入数据;在其输入数据上执行1个函数;供给输出数据 管道表示过滤器之间的连接,职责:转化数据,缓冲数据,同步主动邻居 动态特性 --主动被动过滤器之区分(暂搞不懂) 实现 -- 1、为把系统任务分成一系列处理阶段 2、定义沿每个管道传输的数据格式 3、决定如何实现每个管道连接 4、设计和实现过滤器 5、设计出错处理 6、建立处理流水线 已知使用:Unix流水线任务:程序编译、文档创建 效果 -- 优点:不一定需要中间文件、过滤器交换/重组灵活性、重用、快速原型、并行处理效率 不足:共享状态信息昂贵/不灵活、并行处理效率未必高、数据转换额外开销、错误处理。 (编辑:开发网_新乡站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐