中断机制的诞生
还是之前计算机只能一个一个的处理作业,CPU资源利用率低下,为了解决这个问题,人们发明了操作系统,引入中断机制,实现了多道程序并发执行。
本质:发生中断就意味着需要操作系统的介入,开展管理工作。
中断的概念和作用
- 当中断发生时,CPU立即进入核心态
- 当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理。
- 对于不同的中断信号,会进行不同的处理
发生了中断,就意味着需要操作系统介入,开展管理工作。由于操作系统的管理工作(比如进程切换,分配IO设备等)需要使用特权指令,因此CPU会由用户态转变成内核态。中断可以使CPU由 用户态转变成内核态。使操作系统获得计算机的控制权。
用户态、核心态之间的转换是通过什么来实现的?
用户态->核心态转换:中断实现,并且中断是唯一的方式
核心态->用户态的转换:通过执行一个特权指令,将程序状态字(PSW)的标志位置为用户态
中断的分类
- 根据信号的来源进行分类: 来自于CPU内部与当前执行的指令有关是内中断;
- 信号来自于CPU外部与当前执行的指令无关是外中断,外中断是狭义的中断。
内中断
内中断也称为异常、例外、陷入;
自愿中断----指令中断:如系统调用时使用的访管指令(又叫做陷入指令、trap指令)
强迫中断----例如:硬件故障(缺页),软件中断(整数除0)
外中断
又称狭义的中断;外设干预,人工干预。
如 I/O 完成中断,表示设备输入/输出处理已经完成,处理器能够发送下一个输入/ 输出请求。此外还有时钟中断、控制台中断等
外中断的处理过程
1、CPU一个一个指令的执行,每次执行完一个指令都要检查一下当前是否有外部中断信号传过来。
2、如果检测到有外部中断信号,则需要保护被中断进程的CPU环境,(程序计数器(PC),程序状态字(PWS),各种通用的寄存器)
3、根据中断信号类型转入相应的中断处理程序。
4、恢复原进程的CPU状态并退出,返回原来的进程继续往下执行。
引入系统调用
操作系统作为用户和计算机硬件之间的接口,需要向上提供一些简单易用的服务。主要包括命令接口和程序接口。其中,程序接口由一组系统调用组成。
系统调用
系统调用是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以发出系统调用请求来获得操作系统的服务。
系统调用的作用
应用程序通过系统调用请求操作系统的服务。系统中的各种共享资源都由操作系统统一掌管,因此在程序中,凡是与资源有关的操作(如存储分配,IO操作,文件管理等),都必须通过系统调用的方式向操作系统提出服务请求,由操作系统代替他完成,这样可以保证系统的稳定性和安全性,防止用户进行非法操作。