2023-2更文25-cpu软中断

128 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 25 天,点击查看活动详情

cpu软中断

前文

本文内容将主要是围绕cpu软中的相关知识进行展开。

什么是软中断

提到软中断,首先需要了解一下什么是cpu的中断。中断主要是指cpu在指令的执行过程中,收到可能是来自硬件的中断请求,也就是会将当前执行的进程进行终止处理,并通过中断程序来完成进程的响应。例如我们常见的外接移动硬盘,突然断开连接时其实已经是一种中断的情况。再比如我们使用的鼠标键盘灯,可能突然的出现断电,也是一种明显的中断现象。一般来讲提到的中断,也就是这里所叙述的硬中断。

那么相比于硬中断,什么是软中断呢?硬中断主要是来自于硬件设备导致的进程中断现象,而软中断则是某一个进程内的软件处理逻辑。当触发软中断时,程序会暂时性的中断当前线程的执行,但不会对当前的线程进行终止,仅仅是单纯的挂起。待中断程序处理结束后,再继续执行因为软中断导致挂起的线程,也就是软中断的线程后续会继续执行,不会出现硬中断直接结束的情况。

软中断与硬中断的异同

对于软中断与硬中断,最明显的一点是硬中断是由系统硬件发出的指令,而软中断则是通过软件程序向cpu发起的线程挂起指令,二者的指令来源不同。硬中断想要控制中断需要通过中断控制器进行处理,具有更快的处理响应速度。而软中断的处理则需要软件向cpu进行指令的发送,再通过cpu对相应的处理程序调度,来整体实现逻辑。显然,硬中断的处理速度更快,而软中断则适用于对于响应速度要求没有十分严格的场景。硬中断由于是硬件层面的处理,当然也可以通过硬件的屏蔽来进行屏蔽,但软中断是通过程序发出指令,不能通过硬件的处理来屏蔽。但是要注意的是,我们要避免系统中有过多软中断的出现,会影响程序整体的运行速度,浪费硬件资源。当大量中断出现时,系统中会有大量的挂起线程出现待处理的状态,处理时会占用cpu资源。在实际的使用中,我们要对软硬中断进行适当的控制,来达到系统的最佳性能。

总结

本文主要是介绍了软中断的相关概念,并对软中断与硬中断之间的区别进行了比较。