抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

操作系统的启动

DISK中放操作系统,BIOS是基本的IO系统,检测外设,Bootloader能够加载OS,BIOS从CS段寄存器;IP指令寄存器开始执行,然后BIOS会POST(加电自检),然后BIOS找到bootloader加载Bootloader,并传递控制权,然后Bootloader找到OS,读到内存吧控制权交给OS

操作系统的中断、系统调用、异常

系统调用是应用程序主动想操作系统发出服务请求,
异常是来源于不良的应用程序的非法指令
中断是来自不同硬件设备到额计时器和网络的中断
我们不能让应用程序直接访问外设,这不安全,另外OS可以提供更好的借口,通用可移植

中断处理

保存现场、查表、中断处理、清楚中断标志、恢复现场

异常处理

保存现场、查表、异常处理(杀死程序或者重新执行异常指令)、恢复现场

系统调用

printf(..); 会触发系统调用write(); 程序主要是用高层次API而不是系统调用,用户是不知道系统调用怎么实现的。

用户态

是一个cpu状态,有一部分权限

内核态

有更多权限

系统调用

会发生用户态到内核态的转化

操作系统的开销

建立中断、异常、系统调用号与相印服务的开销,建立内核堆栈的开销,验证用户程序发出的参数的开销,内核态映射用户态的时候页面映射权限更新的开销,TLB的开销

评论