1.操作系统的逻辑结构
1.1逻辑结构
- OS的设计和实现思路
1.2逻辑结构的种类
1.2.1整体式结构
以模块为基本单位构建
-
特点
模块设计、编码和调式独立
模块调用自由
模块通信多以全局变量形式完成
-
缺点
信息传递随意,维护和更新困难
1.2.2.层次结构
层次结构的软件例子:TCP/IP协议栈
分层的操作系统:
所有功能模块按照调用次序排成若干层,相邻层间只有单向依赖或单向调用
分层原则:
- 硬件相关——最底层
- 外部特性——最外层
- 中间层——调用次序或消息传递顺序
- 共性的服务——较低层
- 活跃功能——较低层
层次结构的优点:
- 结构清晰,避免循环调用
- 整体问题局部化,系统的正确性容易保证
- 有利于操作系统的维护、扩充、移植
1.2.3.微内核结构(客户/服务器结构,Client/Server)
操作系统 = 微内核 + 核外服务器
微内核:
-
足够小,提供OS最基本的核心功能和服务
-
实现与硬件紧密相关的处理
-
实现一些基本的功能
-
服务客户和服务器间的通信
核外服务器:
-
完成OS的绝大部分服务功能,等待应用程序提出请求
-
由若干服务器或进程共同完成
例如:进程/线程服务器,虚存服务器,设备管理服务器等,以进程形式运行在用户态
2、CPU的态
支持操作系统的最近本硬件结构: CPU,内存,中断,时钟
2.1、CPU
2.1.1、CPU态
- CPU的工作状态
- 对资源和指令使用权限的描述
2.1.2、态的分类
-
核态(Kernel mode)
能够访问所有资源和执行所有指令
管理程序/OS内核
-
用户态(User.mode,目态)
仅能访问部分资源,其他资源受限
用户程序
-
管态(Supervisor mode)
介于核态的用户态之间
2.1.3、用户态和核态之间的转换
-
用户态向核态转换
用户请求OS提供服务
发生中断
用户进程产生错误(内部中断)
用户态企图执行特权指令
-
核态向用户态转换的情形
一般是执行中断返回:IRET
2.1.4、硬件和OS对CPU的观察
- 硬件按“态”的区分CPU的状态
- OS按“进程”来区分CPU的状态
2.2、存储器
- 存储程序和数据的部件
2.2.1、分类
-
按存储器(半导体存储器)读写工作方式
RAM
ROM
-
按存储元的材料
半导体存储器(常作主存)
磁存储器(磁带,磁盘)
光存储器(光盘)
-
按与CPU的联系
主存:直接和CPU交换信息
辅存:不能直接和CPU交换信息
2.2.2、存储体系
理想存储体系:速度快,容量大,成本低
实际存储体系:
- 寄存器
- 高速缓存-(CACHE)
- 主存
- 辅存
2.2.3、分级存储系统的工作原理
CPU读取指令或数据时的访问顺序
-
- 访问缓存(命中,HIT)
-
- 访问内存(没有命中,MISS)
-
- 访问辅存(缺页,PAGE_FAULT)
- 访问辅存(缺页,PAGE_FAULT)
3、中断机制
3.1、中断定义
- 值CPU对突发的外部事件的反应过程或机制
- CPU收到外部信号(中断信号)后,停止当下工作,转去处理该外部事件,处理完毕后回到原来工作的中断处,继续原来的工作
3.2、引入中断的目的
- 实现并发活动
- 实现实时处理
- 故障自动处理
3.3、中断的一些概念
3.3.1、中断源和中断类型
-
引起系统中断的事件称为中断源
-
中断类型
-
强迫中断和自愿中断
强迫中断:程序没有预期,例:I/O,外部中断
自愿中断:程序没有预期的,例:执行访管指令
-
外中断(中断)和内中断(俘获)
外中断:由CPU外部事件引起
内中断:由CPU内部事件引起
-
外中断:不可屏蔽中断和可屏蔽中断
不可屏蔽中断:中断的原因和紧要,CPU必须响应
可屏蔽中断:中断原因不很紧要,CPU可以不响应
-
3.3.2、断点
- 程序中断的地方,将要执行的下一指令的地址
3.3.3、现场
- 程序正确运行所依赖的信息集合
3.3.4、现场的两个处理过程
- 现场的保护:进入中断服务程序之前,栈
- 现场的恢复:退出中断服务程序之后,栈
3.4、中断响应过程
- 识别中断源
- 保护断电和现场
- 装入中断服务程序的入口地址
- 进入中断服务程序
- 恢复现场和断点
- 中断返回:IRET
3.5、中断响应的是指
-
交换指令执行地址
-
交换CPU的态
-
工作
现场保护和回复
参数传递(通信)