操作系统2-中断异常调用

操作系统的启动

DISK中放操作系统,BIOS是基本的IO系统,检测外设,Bootloader能够加载OS,BIOS从CS段寄存器;IP指令寄存器开始执行,然后BIOS会POST(加电自检),然后BIOS找到bootloader加载Bootloader,并传递控制权,然后Bootloader找到OS,读到内存吧控制权交给OS # 操作系统的中断、系统调用、异常 系统调用是应用程序主动想操作系统发出服务请求, 异常是来源于不良的应用程序的非法指令 中断是来自不同硬件设备到额计时器和网络的中断 我们不能让应用程序直接访问外设,这不安全,另外OS可以提供更好的借口,通用可移植 # 中断处理 保存现场、查表、中断处理、清楚中断标志、恢复现场 # 异常处理 保存现场、查表、异常处理(杀死程序或者重新执行异常指令)、恢复现场 # 系统调用 printf(..); 会触发系统调用write(); 程序主要是用高层次API而不是系统调用,用户是不知道系统调用怎么实现的。 # 用户态 是一个cpu状态,有一部分权限 # 内核态 有更多权限 # 系统调用 会发生用户态到内核态的转化 # 操作系统的开销 建立中断、异常、系统调用号与相印服务的开销,建立内核堆栈的开销,验证用户程序发出的参数的开销,内核态映射用户态的时候页面映射权限更新的开销,TLB的开销