【操作系统】第二章:操作系统基础操作
2.1 启动、中断、异常和系统调用
一. 启动
DISK:存放 OS
BIOS:基本I/O处理系统
Bootloader:加载 OS
二. 中断、异常和系统调用
定义:
- 系统调用(来源于应用程序):应用程序主动向操作系统发出服务请求
- 异常(来源于不良的应用程序):非法指令或者其他坏的处理状态(如内存出错)
- 中断(来源于外设):来自不同的硬件设备的计时器和网络的中断
源头:
- 中断:外设
- 异常:应用程序意想不到的行为
- 系统调用:应用程序请求操作系统提供服务
处理时间:
- 中断:异步
- 异常:同步
- 系统调用:异步或同步
响应:
- 中断:持续,对用户应用程序是透明的
- 异常:杀死或者重新执行意想不到的应用程序指令
- 系统调用:等待和持续
2.2 中断、异常和系统调用
一. 中断处理机制
硬件:设置中断标记(CPU初始化)
- 将内部、外部事件设置中断标记
- 中断事件的ID
软件:
- 保存当前处理状态
- 中断服务程序处理
- 清除中断标记
- 恢复之前保存的处理状态
二 . 异常处理机制
异常:异常编号
保存现场
异常处理
- 杀死产生异常的程序
- 重新执行异常指令
恢复现场
三. 系统调用
应用程序调用
printf()
时,会触发系统调用write()
操作系统提供很多 API 来进行系统调用
跨越操作系统边界需要支付额外的开销:
- 建立中断/异常/系统调用号与对应服务例程映射关系的初始化开销
- 建立内核堆栈
- 验证参数
- 内核态映射到用户态的地址空间
- 内核态独立地址空间
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.