【硬件中断和软件中断的区别】

中断

中断指当出现需要时,CPU暂时停止当前程序的执行转而执行处理新情况的程序和执行过程。即在程序运行过程中,系统出现了一个必须由CPU立即处理的情况,此时,CPU暂时中止程序的执行转而处理这个新的情况的过程就叫做中断。

硬件中断

  • 硬件中断是一个异步信号, 表明需要注意, 或需要改变在执行一个同步事件.
  • 硬件中断是由与系统相连的外设(比如网卡 硬盘 键盘等)自动产生的. 每个设备或设备集都有他自己的IRQ(中断请求), 基于IRQ, CPU可以将相应的请求分发到相应的硬件驱动上(注: 硬件驱动通常是内核中的一个子程序, 而不是一个独立的进程). 比如当网卡受到一个数据包的时候, 就会发出一个中断.
  • 处理中断的驱动是需要运行在CPU上的, 因此, 当中断产生时, CPU会暂时停止当前程序的程序转而执行中断请求. 一个中断只能中断一颗CPU(也有一种特殊情况, 就是在大型主机上是有硬件通道的, 它可以在没有主CPU的支持下, 同时处理多个中断).
  • 硬件中断可以直接中断CPU. 它会引起内核中相关代码被触发. 对于那些需要花费时间去处理的进程, 中断代码本身也可以被其他的硬件中断中断.
    对于时钟中断, 内核调度代码会将当前正在运行的代码挂起, 从而让其他代码来运行. 它的存在时为了让调度代码(或称为调度器)可以调度多任务.

软中断

  • 软中断的处理类似于硬中断. 但是软中断仅仅由当前运行的进程产生.
  • 通常软中断是对一些I/O的请求.
  • 软中断仅与内核相联系, 而内核主要负责对需要运行的任何其他进程进行调度.
  • 软中断不会直接中断CPU, 也只有当前正在运行的代码(或进程)才会产生软中断. 软中断是一种需要内核为正在运行的进程去做一些事情(通常为I/O)的请求.
    有一个特殊的软中断是Yield调用, 它的作用是请求内核调度器去查看是否有一些其他的进程可以运行.

硬件中断和软中断的区别

  • 硬件中断是由外设引发的, 软中断是执行中断指令产生的.
  • 硬件中断的中断号是由中断控制器提供的, 软中断的中断号由指令直接指出, 无需使用中断控制器.
  • 硬件中断是可屏蔽的, 软中断不可屏蔽.
  • 硬件中断处理程序要确保它能快速地完成任务, 这样程序执行时才不会等待较长时间, 称为上半部.
  • 软中断处理硬中断未完成的工作, 是一种推后执行的机制, 属于下半部.
  • 处理方式:硬件中断是由中央处理器(CPU)直接中断正在运行的程序,去处理中断源的请求,而软件中断需要将CPU的控制权转移到中断处理程序或其他特定的指令,待其处理完毕后,再继续被打断的程序。
  • 来源:硬件中断通常由外部硬件设备请求,如键盘、硬盘等,而软件中断则通常来自操作系统的输入/输出软件或用户程序的错误。
  • 系统响应:硬件中断是强制性的,CPU不管原先的程序有多么关键,都必须暂停运行,而软件中断虽然也具有优先级别,但系统还是会先把原先运行的程序执行完毕,再执行中断处理程序。

出自AI回答

相关推荐
沐浴露z11 分钟前
详解 零拷贝(Zero Copy):mmap、sendfile、DMA gather、splice
java·网络·操作系统
电子硬件笔记1 小时前
嵌入式硬件:如何理解高频电子线路,从入门开始
嵌入式硬件·硬件架构·硬件工程·嵌入式实时数据库
EVERSPIN1 小时前
推荐高性能MCU微控制器N32H785EC(MCU单片机特征)
单片机·嵌入式硬件·微控制器·mcu微控制器·mcu单片机
d111111111d2 小时前
STM32外设学习--TIM定时器--输入捕获---测频方法。
stm32·单片机·学习
光子物联单片机2 小时前
C语言基础开发入门系列(八)C语言指针的理解与实战
c语言·开发语言·stm32·单片机·mcu
Tracy9733 小时前
XMAU7118_VC1:16通道PDM到I²S/TDM音频转换器产品介绍
嵌入式硬件·音视频·智能硬件·xmos模组固件
聚能芯罗180380464763 小时前
HLD3350AL深圳智芯一级代理聚能芯半导体CMOS 技术耐压 50V低压差线性稳压器原厂技术支持
嵌入式硬件
Shylock_Mister3 小时前
ESP32堆栈空间优化全攻略
c语言·嵌入式硬件·物联网
点灯小铭4 小时前
基于单片机的超声波自动泥浆回收系统
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
Tracy9734 小时前
OT83211_VC1:4通道 ASRC OTG(44.1kHz~192kHz)音频采样率转换器产品介绍
嵌入式硬件·音视频·xmos 模组·xmos模组固件