Appearance
1.6 操作系统的体系结构
一、无结构操作系统
存在于早期开发的操作系统。
开发的侧重点是
- 功能的实现
- 效率的提高
系统结构:
- 过程的集合
- 过程之间相互调用
Note
整体式系统
缺点:
- 难以调试与维护
- 扩展性很差
二、模块化结构
模块化结构
- 按功能划分成若干个模块
- 模块之间通过接口实现交互
模块独立性衡量标准
- 内聚性:模块内部各部分间联系的紧密程度
- 耦合度:模块间相互联系和相互影响的程度
优点
- OS设计的正确性高,易于理解和维护
缺点
- 接口难以定义
- 模块之间存在复杂的依赖关系
三、分层式结构
分层式结构
- 按功能流图的调用顺序等原则划分为若干层
- 每层只能使用其直接下层所提供的服务
- 每层对其上层隐藏其下各层的存在
Note
2和3体现了单向依赖关系
优点
- 易保证系统的正确性
- 易于理解和维护
- 易于扩充
缺点
- 系统效率低
双模式系统结构示意图如下:
请思考:
1. 进程调度程序、时钟中断处理程序和命令解释程序哪种模式下执行?
进程调度程序:内核模式
时钟中断处理:内核模式
命令解释程序:用户模式
进程调度程序属于系统调用,时钟中断处理属于中断,而发生中断、陷阱或系统调用时,处理器是置于内核模式的。命令解释程序属于接口命令,因此属于用户模式。
2. 系统调用时的模式切换过程?
一个运行态的用户进程在执行系统调用命令之后
向操作系统传递各种参数
执行陷入指令,保存现场,操作系统由用户态转变为内核态
进程开始执行系统调用
如果系统调用的内容为调度CPU以外的系统资源,则分为以下两种情况:
- 资源空闲,可以直接使用,则进程使用资源,同时保存现场,转为阻塞态,当使用完资源时,资源向进程发出信号,进程转为就绪态
- 资源被占用,需要排队,则进程开始排队,同时保存现场,转为阻塞态,当排到该进程时,转为就绪态,然后当等待到CPU时,转为情况1
资源使用完成,释放资源,恢复现场
系统调用完成,返回用户态
四、微内核
实现思想:在操作系统内核中只留下一些最基本的功能,而将其它服务尽可能地从内核中分离出去,用若干个运行在用户态的服务器进程来实现,形成“客户/服务器模式”。普通用户进程通过内核向服务器进程发送请求。
机制与策略
- 机制:实现某一功能的具体执行机构——怎么做
- 策略:方法或原则,用以优化功能实现——做什么
- 机制与策略的分离:如基于优先级的进程调度中,选择进程,为之分配处理机,使之运行属于机制部分;而为每个进程设定优先级则属于策略部分。
微内核的基本功能
- 进程管理
- 低级存储器管理
- 中断和陷入处理
优点
- 增强了系统的可扩展性
- 增强了系统的可靠性
- 可移植性好
- 提供了对分布式系统的支持
缺点
- 运行效率有所降低:消息传递开销+模式切换开销