加入收藏 | 设为首页 | 会员中心 | 我要投稿 开发网_新乡站长网 (https://www.0373zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 搭建环境 > Unix > 正文

[笔记]软件体系结构(3)--管道与过滤器

发布时间:2022-10-04 11:33:15 所属栏目:Unix 来源:
导读:  看了一整晚,不甚理解管道/过滤器。常见的案例Linux命令管道是比较好理解的,但加之混乱的主动/被动的动态概念,就不太好理解了。暂先整理笔记,后面再回顾。

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

(编辑:开发网_新乡站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章