1.5 OS结构设计
1.5.1 传统操作系统结构
传统操作系统结构
- 早期的无结构OS、模块化结构OS、分层式结构OS统称为传统结构OS,微内核结构OS称为现代结构OS。
1.无结构OS
- 无结构OS:
- 只注重功能实现与提高效率的设计思想。
2.模块化结构OS
模块化结构OS:
模块化程序设计技术的基本概念:
使用“模块-接口法”的设计方法,将OS分成若干个具有一定独立性和大小的模块,并规定好模块间接口。
例如,将OS分成进程管理模块、存储器管理模块、文件管理模块等,再将进程管理模块分成进程控制子模块、进程调度子模块等。
模块独立性:
模块划分过小会使得模块间联系繁多,系统混乱;模块划分过大,又会增加模块内部复杂性,内部联系增加。因此需要衡量。
衡量模块独立性有两个标准:
内聚性:模块内部的联系紧密程度,内聚性越高,独立性越强。
耦合度:模块间联系与影响程度,耦合度越低,独立性越好。
模块-接口法的优缺点:
优点:
提高OS设计的正确性、可理解性、可维护性。
增强OS的可适应性。
加速OS的开发过程。
不足:
模块间接口规定难以满足模块设计完成后的实际需求。
模块化设计中,各模块设计齐头并进,造成决定的“无序性”,难以使得设计步骤都是建立在可靠的基础上。
因此模块-接口法又被称为“无序模块法”。
3.分层式结构OS
分层式结构的基本概念:
- 在目标系统An与裸机系统A0之间设计若干层的软件A1、A2…,使得An通过An-1、An-2…A2、A1层在A0上能运行。
- 常用自底向上法铺设中间层。
- 设计原则:每步设计建立在可靠基础上。
- 每层仅能使用其底层所提供的功能和服务。
优缺点:
- 优点:
- 易保证系统的正确性。
- 易扩充和易维护性。
- 缺点:
- 效率低,每次调用功能都需要穿越多个层次。
1.5.2 客户/服务器模式(Client/Server Model)简介
1.客户/服务器模式(C/S模式)的由来、组成、类型
客户/服务器模式(C/S模式)的由来、组成、类型:
客户机:在一个LAN网络上连接有多台网路工作站(客户机),每台客户机都是一台计算机,有处理能力,客户进程在其上运行,处理业务,并能发送消息给服务器以请求某服务。
服务器:规模较大的机器,驻留有网络文件系统或数据库系统等,能为网上所有用户提供一种或多种服务,并一直处于工作状态,被动等待来自客户机的消息。收到客户机的服务请求后,进行处理并反馈给客户机。
网络系统:实现客户机与服务器间的通信与网络资源共享。
2.客户/服务器间的交互
- 客户/服务器间的交互:
客户发送请求消息:
客户机要请求服务器时,先输入相应命令及参数,由客户机上的发送进程将这些信息装配成请求信息,再发送给服务器,接受进程等待服务器的响应。
服务器接受消息:
服务器的接受进程平时处于等待状态,当客户发来请求,接受进程激活,根据请求内容发送给相应软件进行处理。
服务器会送消息:
服务器软件处理后,将结果装配成响应消息,由发送进程发给客户机。
客户机接受消息:
客户机接受进程将响应转交给客户机软件,软件处理后发送给提出请求的客户。
3.客户/服务器模式的优缺点
- 客户/服务器模式的优缺点:
优点:
- 数据分布处理与存储。
- 便于集中管理、
- 灵活性与可扩充性。
- 易于改编应用程序。
- 不足:
- 不可靠性与瓶颈问题:系统若只有一个服务器,则服务器故障,系统就会故障,性能也受这个服务器的影响。
1.5.3 面向对象的程序设计(Object-Orientated Programming)技术简介
1.面向对象技术的基本概念
基于“抽象”与“隐蔽”原则来控制大型程序的复杂度。
对象:
对象是具有相同的属性、或服从一定规则的一系列事物的抽象,具体事物被称为对象的实例。
利用被封装的数据结构和一组对它进行操作的过程(方法)来表示系统中某个对象。
对象的变量(数据)称为属性,对象的操作称为方法。
对象的变量对外隐蔽,外界需要通过对象中的方法才能操作它。
对象类:
拥有相同特点的对象可以分成一类,他们具备相似的方法或属性,通过对象类来定义一组相似的对象,可以简化操作。
类是对象的抽象,对象是类的实例。
继承:
类细化出子类,子类具备父类的属性与方法,但同时具有自己独特的属性与方法。
2.面向对象技术的优点
- 面向对象技术的优点:
- 通过“重用”提高产品质量和生产率。
- 更好的易修改性和易扩展性。
- 保证系统的正确性和可靠性。
1.5.4 微内核OS结构
1.微内核OS的基本概念
- 微内核OS的基本概念:
- 足够小的内核:
只将OS中最基本的部分放入微内核中,通常包含:
与硬件处理紧密相关的部分。
基本功能。
客户机与服务器间的通信。
基于客户/服务器模式:
将OS基本功能放入内核,OS的其他大部分功能放在微内核外的一组服务器中实现。
例如,提供对进程进行管理的进程服务器等,以进程方式实现功能,运行在用户态。
客户与服务器间通过微内核提供的消息传递机制来实现信息交互。
应用“机制与策略分离”原理:
机制处于系统基层,是实现某一功能的具体执行机构。
策略处于系统高层,在机制的基础上借助参数和算法实现该功能的优化。
传统OS中,机制放在OS的内核较低层,策略放在内核较高层。
微内核OS中,机制放在OS的微内核中。
采用面向对象技术:
基于面向对象技术的“抽象”和“隐蔽”原则控制OS复杂性。
利用“对象”、“封装”、“继承”等概念确保OS的“正确性”、“可靠性”、“易修改性”、“易扩展性”等。
提高OS的设计速度。
2.微内核的基本功能
- 微内核的基本功能:
- 进程(线程)管理
- 低级存储器管理
- 中断和陷入处理
3.微内核OS的优点
- 微内核OS的优点:
- 提高可扩展性。
- 增强系统可靠性。
- 可移植性强。
- 提供对分布式系统的支持。
- 融入面向对象技术。
4.微内核OS存在的问题
- 微内核OS存在的问题:
- 效率低:
- 客户对OS提出服务请求时,需要进行多次交换和进行用户/内核模式与上下文的多次切换。
- 早期OS仅需要两次,一次用户态转向系统态,一次系统态转向用户态。
————————————————