【操作系统】中断是什么
本文最后更新于 43 天前,其中的信息可能已经有所发展或是发生改变。

中断(英语:Interrupt),又称插断,在计算机科学中是指处理器接收到来自硬件或软件的信号,提示发生了某个事件,应予以注意,这种情况就称为中断。

1. 引入中断的意义与作用

中断是用以提高计算机工作效率、增强计算机功能的一项重要技术。最初引入硬件中断,只是出于性能上的考量。如果计算机系统没有中断,则处理器与外部设备通信时,它必须在向该设备发出指令后进行忙等),反复轮询该设备是否完成了动作并返回结果。这就造成了大量处理器周期被浪费。引入中断以后,当处理器发出设备请求后就可以立即返回以处理其他任务,而当设备完成动作后,发送中断信号给处理器,后者就可以再回过头获取处理结果。这样,在设备进行处理的周期内,处理器可以执行其他一些有意义的工作,而只付出一些很小的切换所引发的时间代价。后用于CPU外部与内部紧急事件的处理、机器故障的处理、时间控制等多个方面,并产生通过软件方式进入中断处理(软中断)的概念。

2. 硬中断与软中断

2.1 硬中断

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

2.2 软中断

  • 软中断是利用硬件中断的概念,用软件方式进行模拟,实现宏观上的异步执行效果,但是软中断仅仅由当前运行的进程产生。通常软中断是对一些I/O的请求。
  • 软中断仅与内核相联系, 而内核主要负责对需要运行的任何其他进程进行调度
  • 软中断不会直接中断CPU, 也只有当前正在运行的代码(或进程)才会产生软中断。 软中断是一种需要内核为正在运行的进程去做一些事情(通常为I/O)的请求。
上一篇
下一篇