每个系统或程序可被看成是由有序的一组子系统或子功能所组成。分层是表示将功能进行有序的分组:应用程序专用功能位于上层,跨越应用程序领域的功能位于中层,而配置环境专用功能位于低层。分级层次结构是指从逻辑上将子系统划分成许多集合,而层间关系的形成要遵循一定的规则。常见的分级层次结构有网络体系结构和操作系统。
操作系统的分级层次结构
简介
在
模块化结构设计中,各模块的设计齐头并进,无法寻找到一个可靠的决定顺序,造成各种决定的“无序性” ,这将使程序设计人员很难做到“设计中的每一步决定都是建立在可靠的基础上” ,因此模块―接口法又被称为“无序模块法” 。为了将模块―接口法中“决定顺序”的无序性变为有序性,引入了有序分层法。分层法的设计任务是,在目标系统 A n 和裸机系统(又称宿主系统)A 0 之间,铺设若干个层次的软件 A 1 、A 2 、A 3 、…、A n - 1 ,使 A n 通过 A n - 1 、A n - 2 、…、A 2 、A 1 层,最终能在 A 0 上运行。在操作系统中,常采用自底向上法来铺设这些中间层。
自底向上的分层设计的基本原则是:每一步设计都是建立在可靠的基础上。为此规定,每一层仅能使用其底层所提供的功能和服务,这样可使系统的调试和验证都变得更容易。
例如,在调试第一层软件 A 1 时,由于它使用的是一个完全确定的物理机器(宿主系统)所提供的功能,在对 A 1 软件经过精心设计和几乎是穷尽无遗的测试后,可以认为 A 1 是正确的,而且它与其所有的高层软件 A 2 、…、A n 无关;同样在调试第二层软件 A 2 时,它也只使用了软件 A 1 和物理机器所提供的功能,而与其高层软件 A 3 、…、A n 无关;如此一层一层地自底向上增添软件层,每一层都实现若干功能,最后总能构成一个能满足需要的 OS。在用这种方法构成操作系统时,已将一个操作系统分为若干个层次,每层又由若干个模块组成,各层之间只存在着单向的依赖关系,即高层仅依赖于紧邻它的低层。
分层结构的优缺点
分层结构的主要优点有:
(1) 易保证系统的正确性。自下而上的设计方式,使所有设计中的决定都是有序的,或者说是建立在较为可靠的基础上的,这样比较容易保证整个系统的正确性。
(2) 易扩充和易维护性。在系统中增加、修改或替换一个层次中的模块或整个层次,只要不改变相应层次间的接口,就不会影响其它层次,这必将使系统维护和扩充变得更加容易。
分层结构的主要缺点是:系统效率降低了。由于层次结构是分层单向依赖的,因此必须在相邻层之间都要建立层次间的通信机制,OS 每执行一个功能,通常要自上而下地穿越多个层次,这无疑会增加系统的通信开销,从而导致系统效率的降低。
网络体系结构
网络体系结构是指
通信系统的整体设计,它为网络
硬件、
软件、协议、
存取控制和拓扑提供标准。它广泛采用的是
国际标准化组织(ISO)在1979年提出的
开放系统互连(OSI-Open System Interconnection)的参考模型,分为7层即物理层、
数据链路层、网络层、传输层、会话层、表示层、应用层。
物理层(PhysicalLayer)
规定通信设备的机械的、电气的、功能的和
规程的特性,用以建立、维护和拆除物理链路连接。具体地讲,机械特性规定了网络连接时所需接插件的规格尺寸、引脚数量和排列情况等;电气特性规定了在物理连接上传输bit流时线路上
信号电平的大小、阻抗匹配、
传输速率距离限制等;功能特性是指对各个信号先分配确切的信号含义,即
定义了DTE和DCE之间各个线路的功能;
规程特性定义了利用
信号线进行bit流传输的一组操作规程,是指在物理连接的建立、维护、交换信息时,DTE和DCE
双方在各电路上的动作系列。数据链路层(DataLinkLayer)
数据链路层(DataLinkLayer)
在
物理层提供比特流服务的基础上,建立相邻结点之间的
数据链路,通过
差错控制提供
数据帧(Frame)在
信道上无差错的传输,并进行各电路上的动作系列。
数据链路层在不可靠的物理介质上提供可靠的传输。该层的作用包括:
物理地址寻址、数据的
成帧、
流量控制、数据的检错、重发等。
网络层(Network layer)
在计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多
通信子网。网络层的任务就是选择合适的网间
路由和交换结点,确保数据及时传送。网络层将
数据链路层提供的帧组成
数据包,包中
封装有网络层
包头,其中含有逻辑
地址信息- -源站点和
目的站点地址的
网络地址。
如果你在谈论一个IP地址,那么你是在处理第3层的问题,这是“数据包”问题,而不是第2层的“帧”。IP是第3层问题的一部分,此外还有一些
路由协议和
地址解析协议(ARP)。有关路由的一切事情都在第3层处理。地址解析和路由是3层的重要
目的。网络层还可以实现
拥塞控制、网际互连等功能。
传输层(Transport layer)
第4层的
数据单元也称作
处理信息的
传输层(Transport layer)。但是,当你谈论TCP等具体的协议时又有特殊的叫法,TCP的数据单元称为段(segments)而UDP协议的数据单元称为“数据报(datagrams)”。这个层负责获取全部信息,因此,它必须跟踪数据单元碎片、乱序到达的数据包和其它在传输过程中可能发生的危险。第4层为上层提供端到端(
最终用户到最终用户)的透明的、可靠的
数据传输服务。所谓透明的传输是指在通信过程中传输层对上层屏蔽了通信传输系统的具体细节。
会话层(Session layer)
这一层也可以称为会晤层或对话层,在
会话层及以上的高层次中,
数据传送的单位不再另外命名,统称为
报文。会话层不参与具体的传输,它提供包括访问验证和
会话管理在内的建立和维护应用之间通信的机制。如
服务器验证用户登录便是由会话层完成的。
表示层
这一层主要解决用户信息的语法表示问题。它将欲交换的数据从适合于某一用户的
抽象语法,转换为适合于OSI系统内部使用的传送语法。即提供
格式化的表示和转换数据服务。数据的压缩和
解压缩, 加密和解密等工作都由表示层负责。例如图像
格式的显示,就是由位于表示层的协议来支持。
应用层
应用层为操作系统或网络
应用程序提供访问网络服务的
接口。
模块化设计中模块划分的分级
当今,消费者的需求向多样化、个性化方向发展,为了满足日益广泛而且快速变化的消费需求,产品开发者要尽可能的加快产品的开发速度并提高产品的适应性。而模块化的设计方法为快速高效的开发系列化产品提供了有效的手段。模块化设计中最基础也是十分重要的一步就是模块的划分。模块划分的结果将直接影响到模块化产品的功能、性能和成本。
模块划分过程的三个层次
通常情况下产品的设计过程分三个层次进行:首先分析用户需求,然后进行产品的功能分析, 最后进行产品的结构设计。类似的,对产品进行模块划分时,同样可以分为三个层次进行:
用户层:这一层从用户的角度对产品提出功能要求,并对这些要求进行分类,从而得到对用户需求的模块划分。
功能层:在用户层基础上,从功能设计的角度,对产品进行功能分析,全面的概括产品所应具备的各项功能,并按一定的原则对这些功能进行分解、合并,最终将产品划分为一系列功能模块。关于具体的功能模块的划分原则和方法将在后面作详细的介绍。
结构层: 在功能层的基础上,从结构设计的角度,对产品进行结构上的划分。结构层模块的划分要尽量与功能模块的划分一一对应,以便把功能模块的划分原则体现在结构中。
通过对模块划分过程进行层次化,可以简化整个模块划分的过程, 并使得模块划分中的问题得到多角度、全方位的考虑。