CPU运行模式
- 用户程序->用户态
- 内核程序->核心态
从用户态转换到核心态只有一种方式:中断(访管(陷入)指令或系统调用)
一、操作系统的运行机制
- 时钟管理
- 中断机制
- 原语
- 系统数据结构
- 系统调用
操作系统分为内核空间与用户空间
时钟管理 硬件设备
计时:提供系统时间
时钟中断:进程切换
中断机制
CPU在执行一个进程的时候,接受中断就不执行了,去执行别的进程
- 提高多道程序环境下CPU利用率
- 外中断:中断信号来源于外部设备,被动中断。等I/O可能比较慢,就中断
- 内中断:中断信号来源于当前指令,程序决定,主动中断
内中断三种情况:
- 陷阱/陷入(Trap):由应用程序主动引发,由CPU产生的陷入指令。然后去执行特权指令
- 故障(fault):由错误条件引发,由CPU产生故障中断,执行中断和对应处理程序后,去执行后续指令
- 终止(abort):由致命错误引发,直接终止程序
每个中断都会有一个对应的处理程序
中断处理过程
产生一个故障中断后:
part1
- 关中断,CPU不再响应更高级的中断请求,由计算机硬件实现的
- 保存断点,保存程序计数器
- 引出中断服务程序(还没执行)
- 保存现场和屏蔽字
- 开中断,开了后,CPU可以同时并发响应其它中断
part2
6. 执行中断服务程序
part3
- 关中断
- 恢复现场和屏蔽字(PSWR和通用寄存器内容)
- 开中断
- 中断返回
原语
- 由若干条指令组成,是一个程序段,运行在内核空间
- 用来完成某个特定功能
- 执行过程不会被中断,原子性,底层实现就是关开中断
系统数据结构
一般只涉及到对数据结构的操作,不涉及硬件
- 进程管理:作业控制块、进程控制块
- 存储器管理:存储器分配与回收
- 设备管理:缓冲区、设备控制块
系统调用
应用程序去访问系统内核的程序时需要的调用,从用户空间切换到了内核空间
- 由操作系统实现,给应用程序调用
- 是一套接口的集合
- 应用程序访问内核服务的方式