中断模式和polling模式 && 硬件中断和软件中断

文章目录

    • 一、总结在前
    • 二、中断
      • 2.1 硬件中断与软件中断
        • 2.1.1 对比
        • 2.1.2 硬件中断
        • 2.1.3 软件中断
    • 三、polling

一、总结在前

S.NO Interrupt Polling
1 中断模式下,设备通知CPU有业务需要被处理 polling模式下,CPU周期依序检查设备是否有业务需要处理
2 中断是一种硬件机制 轮询是一种协议
3 由中断处理器直接服务各设备 polling模式中,CPU服务各设备
4 设备可以在任何时候通过中断方式请求服务 polling模式下,CPU定期轮询设备是否需要服务
5 设备通过中断线发起中断请求来请求服务 设备置位 指令就绪 bit位,来告诉CPU需要服务
6 设备中断将打断当前CPU处理的进程 轮询模式将浪费处理器周期,来检查设备是否需要服务

二、中断

中断可以理解为通知CPU立即采取某种行动的事件,例如通知CPU定时器超时等异常,例如通知接收到了 络上的数据包需要出来等。
中断可能发生在任何时间。
当中断发生时,CPU 暂停当前正在执行的任务,并执行相应的中断处理程序,这称为中断服务程序(ISR)。
处理中断后,它切换回它正在执行的常规任务。

2.1 硬件中断与软件中断

2.1.1 对比

SR.NO. Hardware Interrupt Software Interrupt
1 硬件中断是外部设备或硬件产生的 软件中断是系统内部产生
2 不增加程序计数器 增加程序计数器
3 硬件中断可由外部设备调用,例如IO读写,硬件故障等 软件中断需要调用INT指令
4 硬件中断是由外部硬件触发的,是与外围设备、硬件进行通信的方式之一。 软件中断由软件触发,是与内核通信或触发系统调用的方式之一,例如错误或异常处理。
5 异步事件(对CPU来讲不知道什么时候发生,对其相应也是被动的) 是同步事件(程序有意产生,是主动的同步的)
7 硬件中断可分为两种类型: 1. 可屏蔽中断。 2. 不可屏蔽中断。 软件中断可分为两种类型: 1. 正常中断。 2. 例外
8 击键和鼠标移动是硬件中断的例子。 所有系统调用都是软件中断的例子

2.1.2 硬件中断

硬件中断是由某些硬件设备引起的,设备一般连接到某中断线上,当需要中断时,通过在信 线上产生特定的电平,告知中断控制器有中断产生。随后中断控制器告知CPU。
例如按下键盘上的某个按键就会触发一次中断。处理器根据对应的中断 确定是哪个设备产生的中断,并调用相应的中断处理程序。
硬件中断也分为两种,可屏蔽中断和不可屏蔽中断。

可屏蔽中断可以通过在中断屏蔽寄存器 (IMR) 的位掩码中设置一个位来忽略它。 不可屏蔽中断没有相关位掩码的硬件中断,因此它永远不能被忽略。

可屏蔽中断有助于处理优先级较低的任务,例如键盘输入等;非屏蔽中断有助于处理更高优先级的任务,例如看门狗定时器、电源掉电等。

2.1.3 软件中断

软件中断是由处理器或执行程序中的异常情况引起的中断。 将一个数除以零会导致异常,这是一个软件中断。 而且,无限循环导致的无效变量和内存泄漏也会产生软件中断。

三、polling

polling即轮询模式,是一种软件协议。
在轮询过程中,CPU周期性的依次询问每一个设备,是否有业务需要处理。
每个设备有一个指令就绪bit位,这个bit位标识了设备是否需要处理器服务的状态。当这个状态位被置位,CPU将处理该设备上的指令。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年6月2日
下一篇 2022年6月2日

相关推荐