中断机制的诞生
早期的计算机:
为了解决上述问题,人们发明了操作系统(作为计算机的管理者),引入中断机制,实现了多道程序并发执行。
本质:发生中断就意味着需要操作系统介入,开展管理工作。
操作系统内核工作在核心态。
用户程序工作在用户态。
发生中断或异常时,运行用户态的CPU会立即进入核心态,通过硬件实现。
中断的概念和作用
中断(内中断):指来自CPU执行指令以外的事件的发生。
I/O结束中断:表示设备输入/输出处理已经完成,希望处理机能够向设备发下一个输入/输出请求,同时让完成输入/输出后的程序继续运行。
时钟中断:表示一个固定的时间片已到,让处理机处理计时、启动定时运行的任务。
- 当中断发生时,CPU立即进入核心态
- 当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理。
- 对于不同的中断信号,会进行不同的处理。
发生了中断,就意味着需要操作系统介入,开展管理工作,由于操作系统的管理工作(比如进程切换、分配I/O设备等)需要使用特权指令,因此CPU要从用户态转为核心态。中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的控制权。有了中断,才能实现多道程序并发执行。
用户态、核心态之间的切换是怎么实现的
用户态->核心态:通过中断实现的,并且中断是唯一途径。
核心态->用户态:通过执行一个特权指令,将程序状态字(PSW)的标志位设置为用户态
中断的分类
另一种分类方式:
外中断的处理过程
异常(外中断):指源自CPU执行指令内部的事件,如程序的非法操作码、地址越界、算术溢出、虚存系统的缺页、专门的陷入指令等引起的事件。