中断是外设的事件
异常是内部CPU的事件
中断和异常迫使CPU访问一些被中断和异常服务访问的功能
硬件
设置中断标记(CPU初始化)
- 将内部、外部事件设置中断标记
- 中断事件的ID 中断事件的ID指程序访问的中断向量地址。
中断和异常的处理过程:
他们都有一个硬件的处理过程和软件的处理过程。这两者结合在一起才能正确完成一个中断或者异常的操作系统的具体的一个服务。
首先产生一个中断或者异常之后呢,需要知道这个具体中断或者异常是由哪个特定的服务例程来服务,这一点需要去判断的。为此需要建立一个表。
它的key是中断号或者是异常号,因为每一个中断和异常把它编号之后,很容易区分出来到底产生的是硬盘的中断还是键盘的中断还是鼠标的中断,这很容易区分出来,不同的外设产生的中断,它都有一个特定的编号,有了这个编号之后呢,对于特定的编号,我们就有一个对应的地址,这个地址实际上就是针对这个特定中断的服务例程的地址。有了这个地址之后,假定操作系统收到了这个中断,收到中断之后可以直接根据这个表,查找这个表(中断表),可以查到它对应的那个中断服务例程那个起始地址,直接转跳到那里执行,这实际上是一个简单的描述。
如果需要系统正常的完成工作,还需要完成更多的事情,因为产生中断后,是打断了当前的正常执行,来处理一个更加紧急的外设的一个中断事件,那你打断一个程序的正常执行的话,我们需要在硬件和软件方面做出一定的保护,或者称之为保存与恢复机制。有了这个保存和恢复之后呢,我们才能让我们整个系统在完成完中断处理后,能够正常继续运行,这也是我们说中断处理过程中需要主要的实现细节。
这里面分两部分完成,
第一部分硬件:
硬件(外设是一个硬件),当它需要操作系统产生相应的支持之后呢,需要产生一个标记,会让我