1.启动
(1)一开始bootloader,OS存在硬盘,而BIOS存在内存
(2)启动电源键后,CPU控制权在BIOS手里,其将硬盘中的bootloader加载到内存中,然后将控制权移交给bootloader,bootloader将OS加载到内存中,然后将控制权移交给OS.
(3)接下来操作系统是如何与设备和程序交互,这就涉及到接下来的中断(外设),异常和系统调用(应用程序)。
2.中断、系统调用和异常的联系与区别
(1)源头:
中断源于外设,是来自不同的硬件设备的计时器和网络中断;
系统调用源于应用程序,是应用程序主动向操作系统发出服务请求;
异常源于不良的应用程序,是非法指令或者其他坏的处理状态。
(2)处理时间:
中断:异步
异常:同步
系统调用:异步或同步,(异步是指令下达与执行不一致;而同步是指令下达就执行)
(3)响应:
中断:持续,对用户应用程序是透明的
异常:杀死或重新执行意想不到的应用程序指令
系统调用:等待和持续
3.中断、系统调用和异常的执行机制
(1)中断:
针对中断处理要分为两部分,一部分是硬件,首先硬件产生一个中断标记告诉cpu,cpu根据中断标记表知道是哪一类中断;另一部分是软件,保存当前处理状态、中断服务程序处理、清除中断标记和恢复之前保存的状态。
(2)异常:
其与中断很类似,异常发生时,会得到一个异常编号,然后保存现场,其次杀死异常程序或重新执行异常指令,最后恢复现场。
(3)系统调用:
用户态和内核态:应用程序系统调用时,会发生由用户态到内核态的转变,也就是控制权由应用程序转到操作系统。
堆栈:应用程序和操作系统拥有各自的堆栈。