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