2.1 操作系统的逻辑结构
OS的设计和实现思路称为逻辑结构。
逻辑结构的种类
- 整体式结构
- 层次式结构
- 微内核结构(客户/服务器结构)
整体式结构
以模块为基本单位构建。
特点:模块设计、编码和调试独立;模块调用自由;模块通信多以全局变量形式完成
缺点:信息传递随意,维护和更新困难
层次式结构
分层结构的操作系统所有功能模块按照调用次序排成若干层,相邻层间只有单向依赖或单向调用。层次式结构的软件例子:TCP/IP协议栈。
分层原则
- 硬件相关-最底层
- 外部特性-最外层
- 中间层-调用次序或消息传递顺序
- 共性的服务-较低层
- 活跃功能-较低层
微内核结构
操作系统=微内核+核外服务器
微内核:足够小,提供OS最基本的核心功能和服务。完成的工作:1,实现与硬件紧密相关的处理;2,实现一些较基本的功能;3,负责客户和服务器间的通信
核外服务器:完成OS的绝大部分服务功能,等待应用程序提出请求。由若干服务器或进程共同构成,例如进程/线程服务器,虚存服务器,设备管理服务器等。以进程形式运行在用户态。
典型的微内核结构OS如Linux, Minix OS。
2.2 CPU的态
支持操作系统的最基本的硬件结构:CPU、内存、中断、时钟。
CPU态
CPU态(Mode):CPU的工作状态,对资源和指令使用权限的描述。
如特权指令:LGDT/LIDT :装载特殊寄存器、CLTS:清除任务开关标志、STI/CTI:允许和禁止中断、IN/OUT:执行I/O操作
态的分类
核态:能够访问所有资源和执行所有指令;管理程序/OS内核
用户态(User mode, 目态):仅能访问部分资源,其它资源受限;用户程序
管态(Supervisor mode):介于核态和用户态之间
用户态向核态转换
- 用户请求OS提供服务
- 发生中断
- 用户进程产生错误(内部中断)
- 用户态企图执行特权指令
核态向用户态的情形
一般是执行中断返回:IRET
硬件和OS对CPU的观察
硬件按“态“来区分CPU的状态;OS按“进程”来区分CPU的状态
Intel CPU的态
- Ring 0 ~ Ring 3 (Ring 0最核心,Ring 3最外层)
- 程序段A访问程序段B时进行权限检查(态)
- 程序段:请求特权级,RPL
- 描述符特权级,DPL
存储程序和数据的部件
分类
- 按存储器(半导体存储器)读写工作方式:RAM,ROM
- 按存储元的材料:半导体存储器(常做主存);磁存储器(磁带,磁盘);光存储器(光盘)
- 按与CPU的联系:主存,直接和CPU交换信息;辅存,不能直接和CPU交换信息
理想的存储体系:速度快,容量大,成本低
实际存储体系(混搭而成):寄存器;高速缓存(cache);主存;辅存
分级存储体系的工作原理
CPU读取指令或数据时的访问顺序
- 访问缓存(命中,HIT)
- 访问内存(没有命中,MISS)
- 访问辅存(缺页,PAGE——FAULT)
2.3 中断机制
中断定义
指CPU对突发的外部事件的反应过程或者机制。CPU收到外部信号(中断信号)后,停止当前工作,转去处理该外部事件,处理完毕后回到原来工作的中断处(断点)继续原来的工作。
引入中断的目的
- 实现并发活动
- 实现实时处理
- 故障自动处理
中断的一些概念
中断源和中断类型
中断源:引起系统中断的事件
中断类型
- 强迫性中断:程序没有预期。例,I/O,外部中断
- 自愿中断:程序有预期。例,如访管指令
- 外中断:由CPU外部事件引起,分不可屏蔽中断和可屏蔽中断。例,I/O,外部事件
- 内中断:由CPU内部事件引起。例,访管中断,程序中断
断点:程序中断的地方,将要执行的下一指令的地址。CS:IP
现场:程序正确运行所依赖的信息集合,相关寄存器
现场的两个处理过程:现场的保护,进入中断服务程序之前,栈;现场的恢复,退出中断服务程序之后,栈
中断响应过程
- 识别中断源
- 保护断点和现场
- 装入中断服务程序的入口地址(CS:IP)
- 进入中断服务程序
- 恢复现场和断点
- 中断返回:IRET
中断响应的实质
- 交换指令执行地址
- 交换CPU的态
- 工作:现场保护和恢复;参数传递(通信)