关中断和开中断其实就是像我们生活中的开关一样。 关中断是为了保护一些不能中途停止执行的程序而设计的,计算机的CPU进行的是时分复用,即每个时钟周期内,CPU只能执行一条指令。在多道程序设计的环境下(就是我们通常所说的多个程序同时运行时),CPU是不断地交替地将这些程序的指令一条一条的分别执行,这样从宏观上看我们就感觉多个程序是在同时执行,但从微观上看则是CPU在不同的时间段(极短)内执行着不同程序的单条指令。而CPU在这些指令之间的切换就是通过中断来实现的。关中断就是为了让CPU在一段时间内执行同一程序的多条指令而设计的,比如在出现了非常事件后又恢复正常时,CPU就会忙于恢复非常事件出现之前计算机的工作环境(通常叫做恢复现场),在恢复现场的时候,CPU是不允许被其他的程序打扰的,此时就要启动关中断,不再相应其他的请求。当现场恢复完毕后,CPU就启动开中断,其他等待着的程序的指令就开始被CPU执行,计算机恢复正常。
通俗一点说假设你在吃饭,这时候家里漏水了,你肯定会停止吃饭去处理漏水的情况,处理好了再回来吃饭。
至于多重中断,假设你在吃饭,这时候家里漏水了,你肯定会停止吃饭去处理漏水的情况。但是漏水还没有修好,突然又地震了,你就会跑到外面(对地震做出处理)。一会之后发现不地震了,就会回到屋子里,继续处理水管漏水,处理完之后再继续吃饭。