爆肝上传!清华大佬终于把困扰我大学四年的【计算机操作系统】讲的如此通俗易懂

(二)中断和异常处理和系统调用
1.中断处理
方便管理中断,计算机内部会存储一个中断向量表,表内每种中断和异常有对应的编号和地址。
那么当在实际操作中,效率更高。
对于硬件而言,外设以及CPU能够识别中断编号,也能够向操作系统发送编号。
对于软件而言(即操作系统),需要做到:
- 保存当前处理状态(保存中断前的地址)
- 中断服务程序处理
- 清楚中断标记(一件事有始有终)
- 恢复之前保存的处理状态(和1中的对应)
2.异常处理
操作系统需要:
- 保存现场(同样是寄存器内容和值)
- 异常处理
杀死产生了异常的程序
重新执行异常指令
- 恢复现场
3.系统调用
以C语言为例,当执行输出printf的代码时,程序只需要发出请求,其余的屏幕显示和一些调用情况都由操作系统完成。
完成操作之后,操作系统将执行结果正确或者错误的信息反馈给程序/程序员。
可见,操作系统其实相当于程序员或者计算机使用者的一个助手,或者小管家,它管理硬件设备并整合资源,调度工作,计算机使用者对于硬件设备不再需要过多的了解,只需发出请求即可。这方面其实也大大促进了计算机的普及。
程序访问主要是通过高层次的API接口而不是直接进行系统调用。
i) Win32 API用于Windows
ii) POSIX API用于POSIX-based systems(包括UNIX,LINUX,Mac OS X的所有版本)
iii) java API 用于JAVA虚拟机(JVM)
- 具体的工作流程
10. 2.2 操作系统的终端、异常、... P10 - 11:27