第一章.操作系统引论:1.5OS结构设计


1.5.1 传统操作系统结构

1. 无结构操作系统

在早期开发操作系统时,设计者只是把他的注意力放在功能的实现和获得高的效率上,缺乏首尾一致的设计思想。此时的OS是为数众多的一组过程的集合,每个过程可以任意地相互调用其他过程,致使操作系统内部既复杂又混乱,因此,这种OS是无结构的,也有人把它称为整体系统结构。

2. 模块化结构OS

<1>模块化程序设计技术的基本概念

模块化程序设计技术是20世纪60年代出现的一种结构化程序设计技术。该技术基于“分解”和“模块化”的原则来控制大型软件的复杂度。为使OS具有较清晰的结构,OS不再是由众多的过程直接构成的,而是按其功能精心地划分为若干个具有一定独立性和大小的模块。下图表示出了由模块、子模块等组成的模块化OS结构。

image-20211108100920495

<2>模块独立性

在模块-接口法中,关键问题是模块的划分和规定好模块之间的接口。如果我们在划分模块时将模块划分的太小,虽然可以降低模块本身的复杂性,但会引起模块之间的联系过多,从而会造成系统比较混乱;如果将模块划分得过大,又会增加模块内部的复杂性,使内部的联系增加,因此在划分模块时,应在两者间进行权衡。

<3>模块接口法的优缺点

利用模块-接口法开发的OS,较之无结构OS具有以下明显的优点:

  1. 提高OS设计的正确性、可理解性和可维护性。
  2. 增强OS的可适应性。
  3. 加速OS的开发过程。

缺点:

  1. 在OS设计时,对各模块间的接口规定很难满足在模块设计完成后对接口的实际需求。
  2. 在OS设计阶段,设计者必须做出一系列的决定(决策),每一个决定必须建立在上一个决定的基础上,但模块化结构设计中,各模块的设计齐头并进,无法寻找一个可靠的决定顺序,造成各种决定的“无序性”,这将使程序人员很难做到“设计中的每一步决定”都是建立在可靠的基础上,因此模块-接口法又被称为‘无序模块法“。

3. 分层式结构OS

<1>分层式结构的基本概念

为了将模块-接口法中“决定顺序”的无序性变为有序性,引入了有序分层法,分层法的设计任务是,在目标系统An和裸机系统(又称宿主系统)A0之间,铺设若干个层次的软件A1、A2、A3、…、An-1,使An通过An-1、An-2、…、A2、A1层最终能在A0上运行。在操作系统中,常采用自底向上法来铺设这些中间层。

<2>分层结构的优缺点

优点:

  1. 易保证系统的正确性

    自下而上的设计方式使所有设计中的决定都是有序的,或者说是建立在较为可靠的基础上的,这样比较容易保证整个系统的正确性。

  2. 易扩充和易维护性

    在系统中增加、修改或替换一个层次中的模块或整个层次时,只要不改变相应层次间的接口,就不会影响其他层次,这必将使系统维护和扩充变得更加容易。

缺点:

系统效率降低。

由于层次结构是分层单项依赖的,必须在每层之间都建立层次间的通信机制,OS每执行一个功能,通常要自上而下地穿越多个层次,这无疑会增加系统地通信开销,从而导致系统效率的降低。

1.5.2 客户/服务器模式(C/S模式)简介

1. 客户/服务器模式的由来、组成和类型

客户/服务器系统主要有三部分组成:

  1. 客户机

    通常在一个LAN网络上连接有多台网络工作站(简称客户机),每台客户机都是一个自主计算机,具有一定的处理能力,客户机进程在其上运行,平时它处理一些本地业务,也可发送一个消息给服务器,以请求某项服务。

  2. 服务器

    通常是一台规模较大的机器,在其上驻留有网络文件系统或数据库系统等,它应能为网上所有用户提供一种或多种服务。平时它一直处于工作状态,被动地等待来自客户机的请求,一旦检查到有客户机提出服务请求,便去完成客户的请求,并将结果送回给客户,这样,工作站中的用户进程与服务器进程就形成了客户/服务器关系。

  3. 网络系统

    是用于连接所有客户机和服务器,实现它们之间通信和网络资源共享的系统。

2. 客户/服务器之间的交互

  1. 客户发送请求消息
  2. 服务器接收消息
  3. 服务器送回消息
  4. 客户机接收消息

3. 客户/服务器模式的优缺点

优点:

  1. 数据的分布处理和存储

    由于客户机具有相当强的处理和存储能力,可进行本地处理和数据的分布存储,从而摆脱了由于把一切数据都存放在主机中而造成的既不可靠又容易产生瓶颈现象的困难局面。

  2. 便于集中管理

    尽管C/S模式具有分布处理功能,但公司(单位)中的有关全局的重要信息、机密资料、重要设备以及网络管理等,仍可采取集中管理方式,这样可较好地保障系统地“可靠”和“安全”。

  3. 灵活性和可扩充性。

    C/S模式非常灵活,极易扩充。理论上,客户机和服务器的数量不受限制,其灵活性还表现在可以配置多种类型的客户机和服务器上。

  4. 易于改编应用软件

    在客户/服务器模式中,对于客户机程序的修改和增删,比传统集中模式要容易得多,必要时也允许由客户机进行修改。

缺点:

存在着不可靠性和瓶颈问题。

在系统仅有一个服务器时,一旦服务器故障,将导致整个网络瘫痪。当服务器在重负荷下工作时,会因忙不过来而显著地延长对用户请求的响应时间。如果在网络中配置多个服务器,并采取相应的安全措施,则这种不足可以加以改善。

1.5.3 面向对象的程序设计技术简介

1. 面向对象技术的基本概念

<1>对象

在面向对象的技术中,是利用被封装的数据结构(变量)和一组对它进行操作的过程(方法)来表示系统中的某个对象,如下图。

image-20211108110338191

对象中的变量(数据)也成为属性,它可以是单个标量或一张表。面向对象中的方法是用于执行某种功能的过程,它可以改变对象的状态,更新对象中的某些数据值或作用于对象所要访问的外部资源。

如果把一个文件作为一个对象(如下图),该对象的变量便是文件类型、文件大小、文件的创建者。对象中的方法包含对文件的操作,如创建文件、打开文件、读文件、写文件、关闭文件等。

image-20211108112024335

<2>对象类

在实践中,有许多对象可能表示的是同一类事物,每个对象具有自己的变量集合,而它们所具有的方法是相同的。如果为每一个相似的对象都定义一组变量和方法,显然是低效的,由此产生了”对象类“的概念,利用“对象类”来定义一组大体相似的对象。一个类同样定义了一组变量和针对该变量的一组方法,用它们来描述一组对象的共同属性和行为。类是在对象上的抽象,对象则是类的实例。对象类中所定义的变量在实例中均有具体的值。

<3>继承

在面向对象的技术中,可以根据已有类来定义一个新的类,新类被称为子类(B),原来的类被称为父类(A),如下图。

image-20211108112756953

2. 面向对象技术的优点

  1. 通过”重用“提高产品质量和生产率。
  2. 使系统具有更好的易修改性和易扩展性。
  3. 更易保证系统的“正确性”和“可靠性”。

1.5.4 微内核OS结构

1. 微内核操作系统的基本概念

<1>足够小的内核

在微内核操作系统中,内核是指精心设计的、能实现现代OS最基本核心功能的小型内核,微内核并非是一个完整的OS,而只是将操作系统中最基本的部分放入微内核,通常包括:①与硬件处理密切相关的部分;②一些较基本的功能;③客户和服务器之间的通信。这些OS最基本的部分只是为构建通用OS提供一个重要基础,这样就可以确保把操作系统内核做的很小。

<2>基于客户/服务器模式

由于客户/服务器模式具有非常多的优点,故在单机微内核操作系统中几乎无一例外地采用客户/服务器模式,将操作系统中最基本地部分放入内核中,而把操作系统的绝大部分功能都放在微内核外面的一组服务器(进程)中实现,如用于提供对进程(线程)进行管理的进程(线程)服务器、提供虚拟存储器管理功能的虚拟存储器服务器、提供I/O设备管理的I/O设备管理服务器等,它们都是被作为进程来实现的,运行在用户态,客户与服务器之间是借助微内核提供的消息传递机制来实现信息交互的。

下图为单机环境下的客户/服务器模式。

image-20211108114659988

<3>应用“机制与策略分离”原理

在现在操作系统的结构设计中,经常利用“机制与策略分离”的原理来构造OS结构。所谓机制,就是指实现某一功能的具体执行机构。而策略,则是在机制的基础上借助于某些参数和算法来实现该功能的优化,或达到不同的功能目标。

<4>采用面向对象技术

操作系统是一个极其复杂的大型软件系统,我们不仅可以通过结构设计来分解操作系统的复杂度,还可以基于面向对象技术中的“抽象”和“隐蔽”原则控制系统的复杂性,再进一步利用“对象”、“封装”和“继承”等概念来确保操作系统的“正确性”、“可靠性”、“易修改性”、“易扩展性”等,并提高操作系统的设计速度。正因为面向对象技术能带来如此多的好处,故面向对象技术被广泛应用于现代操作系统的设计中。

2. 微内核的基本功能

微内核应具有哪些功能,或者说哪些功能应放在微内核内,哪些应放在微内核外,目前尚无明确的规定。现在一般都采用“机制与策略分离”的原理,将机制部分以及与硬件紧密相关的部分放入微内核中。由此可知微内核通常具有如下几方面的功能:

  1. 进程(线程管理)

    大多数的微内核OS,对于进程管理功能的实现,都采用“机制与策略分离”的原理,即将属于机制的部分放入微内核中,而属于策略的部分则放在微内核以外的进程(线程)管理服务器中。

  2. 低级存储器管理

    通常在微内核中,只配置最基本的低级存储器管理机制。

  3. 中断和陷入处理

    大多数微内核操作系统都是将与硬件紧密相关的一小部分放入微内核中处理,此时微内核的主要功能是捕获所发生的中断和陷入事件,并进行相应的前期处理。

3. 微内核操作系统的优点

  1. 提高了系统的可扩展性
  2. 增强了系统的可靠性
  3. 可移植性强
  4. 提供了对分布式系统的支持
  5. 融入了面向对象技术

4. 微内核操作系统存在的问题

较之早期的操作系统,微内核操作系统的运行效率有所降低。

例如当某个服务器自身尚无能力完成客户请求而需要其他服务器的帮助时,如下图所示,其中的文件服务器还需要磁盘服务器的帮助,这时就需要进行8次上下文的切换。


参考资料:《计算机操作系统》—— 汤小丹等。

猜你喜欢

转载自blog.csdn.net/weixin_45605541/article/details/121283705