《操作系统 - 清华大学》2 -2:中断、异常和系统调用

1. 中断和异常处理机制

接下来看一看中断和异常的处理过程,看下图就比较清楚,中断和异常都有硬件的处理过程和软件的处理过程,合在一起才能够正确地完成中断和异常的操作系统服务。

在这里插入图片描述
关注上图,可以看出,

  1. 首先产生中断或者异常之后,它需要知道具体这个中断或者异常异应该是由哪个特定的服务例程来服务。这一点是需要判断的,为此需要建立好一个表,表的一侧是中断号或者是异常号,因为一旦每个中断和异常把它编号之后,就很容易区分出来,到底产生的是硬盘的中断,还是键盘的中断,还是鼠标的中断,这很容易区分出来,不同的外设产生的中断,具有一个特定的编号。
  2. 有编号后,特定的编号就有一个对应的地址,这个地址实际上就是针对这个特定中断的服务例程的地址。有这个地址后,就可以假定,操作系统收到这个中断之后,就可以直接查这个中断表,查到它对应的中断服务例程的那个起始地址,直接转跳到那去执行就 OK 了。

这实际是简单的描述,但为能够让整个系统能够正常地工作,还需要去完成一些更多的事情。

1.1 中断

当产生中断之后,是打断了当前的正常执行,来处理一个更加紧急的外设中断事件。那打断了程序正常执行的话,就需要在硬件和软件方面做出一定的保护,称之为保存恢复机制,有保存恢复才能够让操作系统在完成中断处理之后,能够正常地继续运行。这是中断处理过程中需要注意的具体实现细节。它分两部分来完成:

  1. 第一部分硬件,首先外设是一个硬件,当它需要让操作系统产生相应的支持之后,那需要产生一个标记,让 CPU 知道,外设产生一个中断标记,CPU 看到这个标记之后,它会得出到底是哪一号中断,为此会产生一个具体的中断号,然后把这个中断号发给操作系统,从而操作系统可以根据中断号找到对应的处理例程,这是硬件要完成的事情。

  2. 那软件呢?软件就是操作系统,它具体完成什么事情呢?
    在这里插入图片描述

  • 首先,操作系统需要保存被打断的执行现场。

什么叫被打断的执行现场?程序正在执行过程中,突然产生了中断,那首先需要把被打断的这个程序当前执行的一些状态给保证起来,比如它执行什么地方,它执行的寄存器的内容是什么,这些都要保证起来,便于后续恢复,能够让程序从被打断的点继续往下执行,这是操作系统来完成的,保存当前被打断程序的执行的现场。

  • 再者,保存完之后,根据 CPU 给的这个中断号,查到对应的中断处理例程的地址,然后跳
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值