📜  中断与异常(1)

📅  最后修改于: 2023-12-03 15:21:34.908000             🧑  作者: Mango

中断与异常

介绍

中断与异常是计算机系统内部的事件处理机制, 主要用于响应硬件发出的信号或软件内部的错误与异常。在计算机系统中, 所有的操作都必须由中断或异常来触发, 包括输入/输出操作, 访存操作等等。由于中断和异常的处理机制非常复杂, 所以对程序员来说是非常重要的知识点。

中断

中断是计算机系统的一种事件处理机制, 必须通过硬件设备来引起。当硬件设备发生某些特定的事件, 例如I/O结束, 计时器到时等等, 会向CPU发送一个中断请求信号。CPU接收到中断请求信号后就会暂停当前的操作, 跳转到中断处理程序中去处理这个事件。处理完事件后, CPU会返回回来, 继续执行之前的操作, 就好像从没被中断过一样。

通常中断可以分为两种: 外部中断和内部中断。

外部中断

外部中断是由CPU的外部设备引起的事件, 存储在中断向量表中, 它可以分为可屏蔽中断和不可屏蔽中断。

  • 可屏蔽中断: 具有屏蔽功能, 例如键盘输入等待中断。
  • 不可屏蔽中断: 不具有屏蔽功能, 例如总线超时等。
内部中断

内部中断是由CPU内部发生的异常事件引起的, 例如除数为0。

异常

异常是指由于程序内部的错误或不恰当的使用CPU指令而引起的一种事件。CPU内部的硬件电路会检测到这些错误并发送一个异常请求信号给CPU, CPU收到异常请求信号后也会跳转到相应的异常处理程序中去。

异常可以分为三类:

  • 中断异常: 与中断处理类似的处理方法。
  • 故障异常: 是指引起了某种进程无法继续执行的情况, 例如显示器中断。
  • 终止异常: 是指由CPU执行一个非法指令或对禁止内存区的存储过程进行写操作引起的异常。
中断与异常的处理

中断与异常处理是由操作系统来负责的, 程序员需要以合适的方式与操作系统进行配合, 以便更好地利用这两种机制。

中断与异常的处理流程大致相同, 都是根据不同的类型进行分类处理。具体的处理流程可以参考实际的操作系统的实现方法。

在编写程序时, 程序员也需要注意中断与异常的处理机制, 特别是在一些需要实时性的操作时, 如多媒体播放等。

总结

中断和异常是计算机系统内部的两种事件响应机制, 在计算机系统中, 所有的操作都必须由中断或异常来触发。程序员需要了解中断与异常的发生机制, 这样才能更好地利用计算机系统的处理能力, 以及提高程序的实时性和可靠性。