一、中断 VS polling
中断
中断是一种硬件机制,设备通知CPU处理器中断CPU当前正在运行的任务,来处理中断任务。中断可能发生在任何时间,所以当CPU通过中断线收到中断信号时,会立即停止当前处理的任务,转而调用中断设备的中断相应程序来处理中断。
设备一般连接到某中断线上,当需要中断时,通过在信号线上产生特定的电平,告知中断控制器有中断产生。随后中断控制器告知CPU。
polling
polling即轮询模式,是一种软件协议。 在轮询过程中,CPU周期性的依次询问每一个设备,是否有业务需要处理。 每个设备有一个指令就绪bit位,这个bit位标识了设备是否需要处理器服务的状态。当这个状态位被置位,CPU将处理该设备上的指令。
对比
S.NO | Interrupt | Polling |
---|
1 | 中断模式下,设备通知CPU有业务需要被处理 | polling模式下,CPU周期依序检查设备是否有业务需要处理 | 2 | 中断是一种硬件机制 | 轮询是一种协议 | 3 | 由中断处理器直接服务各设备 | polling模式中,CPU服务各设备 | 4 | 设备可以在任何时候通过中断方式请求服务 | polling模式下,CPU定期轮询设备是否需要服务 | 5 | 设备通过中断线发起中断请求来请求服务 | 设备置位 指令就绪 bit位,来告诉CPU需要服务 | 6 | 设备中断将打断当前CPU处理的进程 | 轮询模式将浪费处理器周期,来检查设备是否需要服务 |
二、硬中断 VS 软中断
硬中断
硬件中断是由某些硬件设备引起的,例如启动 I/O 的请求、硬件故障或类似的事情。 引入硬件中断是为了避免在轮询循环中浪费处理器宝贵的时间,等待外部事件。
软中断
INT指令参考这个链接和这个链接
对比
SR.NO. | Hardware Interrupt | Software Interrupt |
---|
1 | 硬件中断是外部设备或硬件产生的 | 软件中断是系统内部产生 | 2 | 不增加程序计数器 | 增加程序计数器 | 3 | 硬件中断可由外部设备调用,例如IO读写,硬件故障等 | 软件中断需要调用INT指令 |
3 Hardware interrupt can be invoked with some external device such as request to start an I/O or occurrence of a hardware failure. Software interrupt can be invoked with the help of INT instruction. 4 It has lowest priority than software interrupts It has highest priority among all interrupts. 5 Hardware interrupt is triggered by external hardware and is considered one of the ways to communicate with the outside peripherals, hardware. Software interrupt is triggered by software and considered one of the ways to communicate with kernel or to trigger system calls, especially during error or exception handling. 6 It is an asynchronous event. It is synchronous event. 7 Hardware interrupts can be classified into two types they are: 1. Maskable Interrupt. 2. Non Maskable Interrupt. Software interrupts can be classified into two types they are: 1. Normal Interrupts. 2. Exception 8 Keystroke depressions and mouse movements are examples of hardware interrupt. All system calls are examples of software interrupts
|