操作系统系列(二):启动、中断、异常、系统调用

一、操作系统的启动:

OS存放于磁盘(Disk);
BIOS(基本IO处理系统): 开机后从特定内存地址开始执行,检查外设,然后加载Bootloader;
Bootloader:放在硬盘第一个主引导扇区、将OS从硬盘加载到内存、跳转到OS起始地址;

OS于设备、应用的交互:

系统调用:应用主动向OS发出服务请求;

异常:应用的非法指令/坏的处理状态;

中断:来自外设,通知OS需要中断处理。

中断、异常、系统调用 区别:

1、来源不同:中断来自外设;异常来自应用程序的异常行为;系统调用来自应用程序请求系统提供服务;
2、处理时间不同:中断是异步事件、异常同步、系统调用返回可以是异步,请求是同步的。
3、响应:中断:持续,对应用透明;异常:杀死/重新执行指令;系统调用:等待系统调用完成后继续执行。

中断/异常、系统调用机制:

中断:

硬件上:1、将事件设置中断标记;2、key记录中断事件ID,(value有中断事件地址,给OS查询中断表);
软件上:1、保存当前处理状态;2、执行中断程序;3、清除中断标记;4、恢复之前的保存状态;

异常:

1、保存现场;2、异常处理(杀死进程/重新执行);3、恢复异常。

系统调用:

应用通过高层API(System Call Interface)使用,完成从用户态到内核态的切换。

跨越操作系统边界的开销:

1、建立中断/异常/系统调用号与对应服务号的开销;
2、内核堆栈的建立;
3、验证系统调用参数;
4、内核态数据拷贝到用户态;
5、内存状态改变(Cache/TLB 刷新的开销)。

你可能感兴趣的:(操作系统系列(二):启动、中断、异常、系统调用)