中断和异常
在中断和异常之前,操作系统会生成一个表(为每一个异常,中断编号);
处理过程分为硬件处理和软件处理,每个外设都有相对应的中断号,从而让操作系统和所识别;
中断
一:硬件(外设) 设置中断标记(CPU初始化)
1:将内部外部事件设置中断标记
2:找出中断事件ID,让操作系统识别
二:软件(操作系统)
1:保存当前处理状态
2:中断服务程序处理
3:清除中断标记
4:恢复之前保存的处理状态
异常:
一:硬件 设置中断标记(CPU初始化)
1:将内部外部事件设置异常标记
2:找出异常事件ID,让操作系统识别
二:软件(操作系统)
1:保存现场
2:异常处理(杀死异常程序或重新执执行异常命令)
3:恢复现场
系统调用:
由操作系统为应用程序提供服务
eg:c程序在调用printf()时,会触发系统调用write(设备,内容)->访问设备;
系统调用接口:(可以实现跨平台)
win32 API 用于windows
POSIX API 用于Linux,UNIX,MAC OS
实现方式:
系统调用使得计算机从应用程序的用户态(应用程序运行时的cup状态,权限低)转向操作系统内核态(权限大);
该过程还需要切换堆栈;使得计算机变得更安全可靠。
总结:中断异常。系统调用均跨越了操作系统的边界;也就有了内存和时间的开销;开销如下;
1:建立中断异常表
2:建立内核堆栈
3:验证参数