第二章 操作系统的硬件基础
支持操作系统的最基本硬件结构:CPU、内存、中断、时钟
CPU的态
CPU的工作状态,对资源和指令使用权限的描述
硬件按“态”来区分CPU的状态,OS按“进程”来区分CPU的状态
-
核态
- 能够访问所有资源和执行所有指令
- 管理程序/OS内核
-
用户态
- 仅能访问部分资源,其他资源受限
- 用户程序
-
管态
- 介于核态和用户态之间
用户态和核态之间的转换
-
用户态向核态转换
- 用户请求OS提供服务
- 发生中断
- 用户进程产生错误(内部中断)
- 用户态企图执行特权指令
-
核态向用户态转换
- 一般是中断返回:IRET
存储器
- 寄存器
- 高速缓存(CACHE)
- 主存:直接和CPU交换信息——内存
- 辅存:不能直接和CPU交换信息——硬盘、软盘
中断定义
- 指CPU对突发的外部事件的反应过程或机制
- CPU收到外部信号(中断信号)后,停止当前工作,转去处理该外部事件,处理完毕后回到原来工作的中断处(断点)继续原来的工作
- 引起系统中断的时间称为中断源
引入中断的目的
- 实现并发活动
- 实现实时处理
- 故障自动处理
中断类型
-
强迫中断和自愿中断
- 强迫中断:程序没有预期:例:I/O、外部中断
- 自愿中断:程序有预期。例:执行访管指令
-
外中断(中断)和内中断(俘获)
- 外中断:由CPU外部事件引起。例:I/O,外部事情
- 内中断:由CPU内部事件引起。例:访管中断、程序中断
-
外中断分为不可屏蔽中断和可屏蔽中断
- 不可屏蔽中断:中断的原因很紧要,CPU必须响应
- 可屏蔽中断:中断原因不很紧要,CPU可以不响应
中断响应过程
- 识别中断源
- 保护断点
- 保护现场
- 进入中断服务程序
- 恢复现场
- 中断返回
中断嵌套处理:高优先级打断低优先级中断服务
中断响应的实质
- 交换指令执行地址
- 交换CPU的态
- 现场保护和恢复、参数传递(通信)
基本输入输出系统BIOS
-
显示卡BIOS:C0000-C7FFF
-
IDE控制器BIOS:C8000-CBFFF
-
系统BIOS:F0000-FFFFF,大小为64K
功能:
- 加电自检及初始化(POST)
- CMOS设置
- 系统自举/加载OS
- 基本I/O服务(BIOS中断)
POST(Power On Self-Test)
按下PowerOn键开始执行POST程序
-
POST程序:执行首条指令(FFFF0):JMP POST;加电自检
初始化基本硬件(CPU、内存、显卡)
CMOS设置
系统自举/加载OS
开机时加载并运行OS位用户建立用户环境
- 现场引导方式:OS文件存储在本地存储设备
- 下载引导方式:OS文件存储在网络存储设备中
基本I/O服务(BIOS中断)
BIOS使用的中断类型号为10H~1FH,每一组又分为不同的子功能,AH寄存器指定子功能编号。
INT 13H AH=02H 为读扇区
实模式和保护模式
-
实模式
- 寻址方式:物理地址(20位),可访问1MB空间(0~FFFFFh)
- CPU单任务运行
-
保护模式
- 寻址方式:段(16位)和偏移量(32位),寻址4GB
- 段的新含义和新工作机制
- 段的属性:起始地址、存取属性、权限…
- 段页式虚拟内存管理机制(段,页)
- 新增多个寄存器(GDR,LDR,CR0,CR1,CR2)
- 虚拟地址,进程,封闭空间
- 应用程序和操作系统的运行环境都被保护
- CPU支持多任务
- 寻址方式:段(16位)和偏移量(32位),寻址4GB
操作系统的启动
从加电到用户工作环境准备好的过程
- 初始引导
- 核心初始化
- 系统初始化
初始引导
目的:把OS内核装入内存并使之开始工作接管计算机系统
-
加电,JUMP POST(FFFF0)
-
跳入BIOS的启动程序
- 读取0面0道第一扇区内容
- MBR(Master Boot Record):主启动记录:引导程序
(BIOS 从MBR 读入引导程序,装入内存的特定位置)
-
运行引导程序
- 根据相关参数,读取硬盘指定位置的OS内核到内存
- 初始化基本参数
-
OS内核:逐步加载OS剩余部分,直到最后完全控制计算机
核心初始化
目的:OS内核初始化系统的核心数据
各种寄存器的初始化、存储系统和页表初始化、核心进程构建…
系统初始化
目的:为用户使用系统做准备,使系统处于待命状态
初始化文件系统、初始化网络系统、初始化控制台、初始化图形界面…
MBR(主引导记录、主启动记录)
存放引导代码:OS启动相关的数据和代码,存放在主启动扇区(0面0道第一扇区),大小为512字节(510+AA55h)
- 结构
- 引导程序
- 该磁盘的分区表
- 主引导签名:55AA表示MBR结束
其中分区表的作用记录硬盘分区信息(多个操作系统)。每个分区的第一个扇区叫作分区引导记录(PartitionBoot Record,PBR),也叫次引导记录,其结构与MBR类似。
- 功能
- 直接指向引导代码加载OS
- 提供启动选项菜单
- 跳转到PBR以加载特定OS BootLoader
- 工作原理
- 初启过程
POSTCMOS设置读取MBR控制权交给MBR - MBR工作
- MBR读取分区表,查找并确认唯一的活动分区
- MBR读取活动分区PBR,并加载到内存
- PBR控制后续引导过程
- 读OS内核
- 初启过程