[清华向勇]操作系统笔记之二
2.1 操作系统的启动
DISK:存放OS
BIOS:基本I/O 处理系统
BootLoader :加载OS
CS:IP = 0xf000:fff0(CS:段寄存器;IP:指令寄存器)
POST(加电自检):寻找显卡和执行BIOS,先检查各种设备是否正常,然后将BootLoader加载到内存当中,
BootLoader 一般存放在硬盘的第一个引导扇区(512K),BIOS将BootLoader加载到 0x7c00 的位置。随后BootLoader负责将Disk中的OS加载到内存。
BootLoader接下来将找到OS的起始地址以及OS的长度,并将这块数据加载到内存中。然后将CPU的控制权交给OS。
接下来整个操作系统的管理都由OS来处理。
2.2 中断、异常、系统调用
操作系统的interface有三个:中断、异常和系统调用。其中,面对外设是通过中断来处理;面向应用程序,通过系统调用和异常来处理。
系统调用(来源于应用程序):应用程序主动向操作系统发出服务请求。
异常(来源于不良的应用程序):非法指令或者其他坏的处理状态(如内存出错)
中断(来源于外设):来自不同的硬件设备的计时器和网络的中断。
为什么要通过interface?
- 在计算机运行中,内核是被新人的第三方;
- 只有内核可以执行特权指令;
- 为了方便应用程序。
疑问:(系统调用和函数调用有什么区别?)
三者有什么区别和特点?
可以从以下三点来考虑:
-
源头:
中断——外设
异常——应用程序意想不到的行为
系统调用——应用程序请求操作提供服务。 -
处理时间:
中断——异步
异常——同步
系统调用——异步或同步 -
响应:
中断——持续,对用户应用程序是透明的
异常——杀死或者重新执行意想不到的应用程序指令
系统调用——等待或持续