操作系统原理学习笔记(四)-OS结构设计

操作系统原理学习笔记目录

传统操作系统结构

  • 早期的无结构OS、模块化结构OS、分层式结构OS统称为传统结构OS,微内核结构OS称为现代结构OS。
  • 无结构OS:
    • 只注重功能实现与提高效率的设计思想。
  • 模块化结构OS:
    • 模块化程序设计技术的基本概念:
      • 使用“模块-接口法”的设计方法,将OS分成若干个具有一定独立性和大小的模块,并规定好模块间接口。
      • 例如,将OS分成进程管理模块、存储器管理模块、文件管理模块等,再将进程管理模块分成进程控制子模块、进程调度子模块等。
    • 模块独立性:
      • 模块划分过小会使得模块间联系繁多,系统混乱;模块划分过大,又会增加模块内部复杂性,内部联系增加。因此需要衡量。
      • 衡量模块独立性有两个标准:
        • 内聚性:模块内部的联系紧密程度,内聚性越高,独立性越强。
        • 耦合度:模块间联系与影响程度,耦合度越低,独立性越好。
    • 模块-接口法的优缺点:
      • 优点:
        • 提高OS设计的正确性、可理解性、可维护性。
        • 增强OS的可适应性。
        • 加速OS的开发过程。
      • 不足:
        • 模块间接口规定难以满足模块设计完成后的实际需求。
        • 模块化设计中,各模块设计齐头并进,造成决定的“无序性”,难以使得设计步骤都是建立在可靠的基础上。
          • 因此模块-接口法又被称为“无序模块法”。
  • 分层式结构OS:
    • 分层式结构的基本概念:
      • 在目标系统An与裸机系统A0之间设计若干层的软件A1、A2…,使得An通过An-1、An-2…A2、A1层在A0上能运行。
      • 常用自底向上法铺设中间层。
      • 设计原则:每步设计建立在可靠基础上。
      • 每层仅能使用其底层所提供的功能和服务。
    • 优缺点:
      • 优点:
        • 易保证系统的正确性。
        • 易扩充和易维护性。
      • 缺点:
        • 效率低,每次调用功能都需要穿越多个层次。

客户/服务器模式(Client/Server Model)

  • 客户/服务器模式(C/S模式)的由来、组成、类型:
    • 客户机:在一个LAN网络上连接有多台网路工作站(客户机),每台客户机都是一台计算机,有处理能力,客户进程在其上运行,处理业务,并能发送消息给服务器以请求某服务。
    • 服务器:规模较大的机器,驻留有网络文件系统或数据库系统等,能为网上所有用户提供一种或多种服务,并一直处于工作状态,被动等待来自客户机的消息。收到客户机的服务请求后,进行处理并反馈给客户机。
    • 网络系统:实现客户机与服务器间的通信与网络资源共享。
  • 客户/服务器间的交互:
    • 客户发送请求消息:
      • 客户机要请求服务器时,先输入相应命令及参数,由客户机上的发送进程将这些信息装配成请求信息,再发送给服务器,接受进程等待服务器的响应。
    • 服务器接受消息:
      • 服务器的接受进程平时处于等待状态,当客户发来请求,接受进程激活,根据请求内容发送给相应软件进行处理。
    • 服务器会送消息:
      • 服务器软件处理后,将结果装配成响应消息,由发送进程发给客户机。
    • 客户机接受消息:
      • 客户机接受进程将响应转交给客户机软件,软件处理后发送给提出请求的客户。
  • 客户/服务器模式的优缺点:
    • 优点:
      • 数据分布处理与存储。
      • 便于集中管理、
      • 灵活性与可扩充性。
      • 易于改编应用程序。
    • 不足:
      • 不可靠性与瓶颈问题:系统若只有一个服务器,则服务器故障,系统就会故障,性能也受这个服务器的影响。

面向对象的程序设计技术(Object-Orientated Programming)

  • 面向对象技术的基本概念:
    • 基于“抽象”与“隐蔽”原则来控制大型程序的复杂度。
    • 对象:
      • 对象是具有相同的属性、或服从一定规则的一系列事物的抽象,具体事物被称为对象的实例。
      • 利用被封装的数据结构和一组对它进行操作的过程(方法)来表示系统中某个对象。
      • 对象的变量(数据)称为属性,对象的操作称为方法。
      • 对象的变量对外隐蔽,外界需要通过对象中的方法才能操作它。
    • 对象类:
      • 拥有相同特点的对象可以分成一类,他们具备相似的方法或属性,通过对象类来定义一组相似的对象,可以简化操作。
      • 类是对象的抽象,对象是类的实例。
    • 继承:
      • 类细化出子类,子类具备父类的属性与方法,但同时具有自己独特的属性与方法。
  • 面向对象技术的优点:
    • 通过“重用”提高产品质量和生产率。
    • 更好的易修改性和易扩展性。
    • 保证系统的正确性和可靠性。

微内核OS结构

  • 微内核OS的基本概念:
    • 足够小的内核:
      • 只将OS中最基本的部分放入微内核中,通常包含:
        • 与硬件处理紧密相关的部分。
        • 基本功能。
        • 客户机与服务器间的通信。
    • 基于客户/服务器模式:
      • 将OS基本功能放入内核,OS的其他大部分功能放在微内核外的一组服务器中实现。
      • 例如,提供对进程进行管理的进程服务器等,以进程方式实现功能,运行在用户态。
      • 客户与服务器间通过微内核提供的消息传递机制来实现信息交互。
    • 应用“机制与策略分离”原理:
      • 机制处于系统基层,是实现某一功能的具体执行机构。
      • 策略处于系统高层,在机制的基础上借助参数和算法实现该功能的优化。
      • 传统OS中,机制放在OS的内核较低层,策略放在内核较高层。
      • 微内核OS中,机制放在OS的微内核中。
    • 采用面向对象技术:
      • 基于面向对象技术的“抽象”和“隐蔽”原则控制OS复杂性。
      • 利用“对象”、“封装”、“继承”等概念确保OS的“正确性”、“可靠性”、“易修改性”、“易扩展性”等。
      • 提高OS的设计速度。
  • 微内核的基本功能:
    • 进程(线程)管理
    • 低级存储器管理
    • 中断和陷入处理
  • 微内核OS的优点:
    • 提高可扩展性。
    • 增强系统可靠性。
    • 可移植性强。
    • 提供对分布式系统的支持。
    • 融入面向对象技术。
  • 微内核OS存在的问题:
    • 效率低:
      • 客户对OS提出服务请求时,需要进行多次交换和进行用户/内核模式与上下文的多次切换。
      • 早期OS仅需要两次,一次用户态转向系统态,一次系统态转向用户态。

You may also like...

发表评论

邮箱地址不会被公开。 必填项已用*标注