一、中断机制的诞生
问题一:发生中断意味着什么?
多道程序并发执行时,CUP需要在多个进程之间循环切换,而如何切换需要操作系统进行管理。 而中断的发生就是意味着需要操作系统进行介入管理。
问题而:中断发生时会发什么?
1.中断发生时,CPU进入核心太。
2.中断发生时,当前运行的进程暂停运行,并由操作系统内核对中断进行处理。
3.对于不同的中断信号,会进行不同的处理。
发生中断后操作系统介入,由于操作系统的管理工作(如:进程切换,分配I/O设备 等)需要特权指令,因此CPU需要从用户态转为核心态,操作系统获得计算机的控制权。有了中断才能实现多道程序并发执行。
用户态切换到核心态只能通过中断。
核心态切换到用户态只需执行一条特权指令,将程序状态字(PSW)的标志位设置为“用户态”。
二、中断的分类
终端分为两类内中断和外中断。是由信号的来源进行区分的内中断也称异常、例外、陷入,此中断信号的来源是CPU内部与当前执行的指令有关。外中断也称中断(狭义的中断)此中断信号的来源是CPU外部,与当前执行的指令无关。
1.内中断
内中断有:1.自愿中断——指令中断(陷入),如系统调用时使用的访管指令(又叫陷入指令、trap指令)
2.强迫中断——强迫中断中有硬件故障(故障)(如:却页),和软件中断(终止)(如:整数除零)
2.外中断
外中断分为:1.外设请求(如:I/O操作完成发出的中断信号)
2.人工干涉(如:用户强行终止一个进程)