# 操作系统的逻辑结构
OS的设计和实现思路
# 逻辑结构的种类
- 整体式结构
- 层次式结构
- 微内核结构
操作系统 = 微内核 + 核外服务器
微内核:足够小,提供OS最基本的核心功能和服务
- 实现与硬件紧密相关的处理
- 实现一些基本的功能
- 负责客户和服务器间的通信
核外服务器:完成OS的绝大部分服务功能,等待应用程序提出请求
- 完成OS的绝大部分服务功能,等待应用程序提出请求
- 由若干服务器或进程共同构成:例如进程/线程服务器、虚存服务器,设备管理服务器等,以进程形式运行在用户态
# CPU的态(Mode)
CPU的工作状态,对资源和指令使用权限的描述,一些特权指令(不能随便使用)
# 态的分类
- 核态(kernel mode):能访问所有资源和执行所有的指令,管理程序/OS内核
- 用户态(User mode):仅能访问部分资源,其他资源受限,用户程序
- 管态(Supervisor mode)
介于核态和用户态之间
硬件按照“态”来区分CPU的状态
OS按照“进程”来区分CPU的状态
Intel CPU的态 Ring0~Ring3
# 中断机制
指CPU对外部的突发事件的反应过程或机制,CPU收到外部信号后,停止当前工作,转去处理外部事件,处理完毕后回到原来工作的中断处(断点)继续原来的工作。
# 中断源和中断类型
引起系统中断的事件称为中断源
中断类型:
- 强迫性中断:程序没有预期,例如I/O、外部中断
- 自愿中断:程序有预期的,例如执行访管指令(访问内核)
- 外中断(中断):由CPU外部事件引起,例如I/O,外部事件
- 内中断(俘获):由CPU内部事件引起,例如访管中断、程序中断
# 断点
程序中断的地方,将要执行的下一指令的地址
CS:IP 两个寄存器
# 现场
程序正确运行所依赖的信息集合
- 现场的保护:进入中断服务程序之前,入栈
- 现场的恢复:推出中断服务程序之后,出栈
# 中断响应过程
- 识别中断源
- 保护断点和现场
- 装入中断服务程序的入口地址(CS:IP)
- 进入中断服务程序
- 恢复现场和断点
- 中断返回:IRET