人物探究硬中断和软中断原理与区别现场总线技术第三版课后题答案解析
从本质上讲,中断是一种电信号,当设备有某种事件发生时,它就会产生中断,通过总线把电信号发送给处理器的某个特定引脚。若中断的线是激活的,中断就把电信号发送给处理器的某个特定引脚。处理器于是立即停止自己正在做的事,跳到中断处理程序的入口点,进行中断处理。
硬中断由与系统相连的外设(比如网卡、硬盘)自动产生。主要是用来通知操作系统系统外设状态的变化。比如当网卡收到数据包的时候,就会发出一个中断。我们通常所说的“ 中斷”指的是硬件产生的一种特殊类型,即hardirq。
软、中斷(softirq)則由Linux内核为了实现实時性而設計的一種機制。在Linux內核當中的軟、中斷(softirqs)被用來處理那些不需要實時完成但又不能延遲太久的事情,比如一些I/O操作等。
在多核心系統上,一個硬件介面可以發出一個IRQ號碼,這個號碼會告訴CPU哪個介面需要注意。我們可以設定一個ISR來處理這些 IRQ,但如果ISR過於耗時,那麼它可能會阻塞其他對同一IRQ號碼響應得更快者的响应。
總結而言,从硬件层面来说,我们可以认为" 中斷" 是一种用于传递控制信息的手段,它能够将执行当前任务的CPU暂停,并转移控制权到预先定义好的服务例程,以便于对发生了什么事件进行相应地响应或处置。而在软件层面,这两者则代表着不同的工作流程和优先级,有助于提高系统性能和效率。此外,对于不同情况下的开关机制以及判断是否处于各种状态也非常重要,以确保资源管理和任务调度得以有效执行。