操作系统对中断的处理过程

什么是中断?

中断是指CPU对I/O设备发来的中断信号的一种响应。CPU暂停正在执行的程序,保留CPU环境后,自动地去执行该I/O设备的中断处理程序。执行完后,再回到断点,继续执行原来的程序。I/O设备可以是字符设备,也可以是块设备、通信设备。由于中断时由外部设备引起的,故又称外中断。

什么是陷入?

另外一种由CPU内部事件所引起的中断,例如进程在运算中发生了上溢或者下溢,有如程序出错,如非法指令,地址越界等。通常把这类中断称为内中断或者陷入。若系统发现有陷入事件,CPU也将暂停正在执行的程序,转去执行该陷入事件的处理程序。中断和陷入的主要区别是信号的来源,既是来自CPU外部,还是CPU内部。

对中断的处理方式

1. 屏蔽(禁止)中断

当处理机正在处理一个中断时,将屏蔽掉所有的中断,即处理机对任何新到的中断请求,都暂时不予理睬,而让他们等待,直到处理机已完成本次中断的处理后,处理机再去检查是否有中断发生。若有,再去处理新到的中断,若无,则返回被中断的程序,在该方法中,所有中断都按顺序依次执行,优点是简单,不适合用于对实时性要求较高的中断请求。



2. 嵌套中断

在设置了中断优先级的系统中。通常按这样的规则来处理中断。

扫描二维码关注公众号,回复: 1586993 查看本文章

(1)当同时有多个不同优先级的中断请求时,CPU优先响应最高优先级的中断请求。

(2) 高优先级的中断请求可以抢占正在运行的低优先级中断的处理机。


中断处理程序的处理过程

1. 测定是否有未响应的中断信号。

2. 保护被中断进程的CPU环境。

3. 转入相应的设备处理程序。

4. 中断处理。

5. 恢复CPU的现场并退出中断。



猜你喜欢

转载自blog.csdn.net/weixin_42294335/article/details/80427300
今日推荐