中断的基本概念

异常和中断

  • 概念: 程序执行过程中CPU会遇到一些特殊情况,是正在执行的程序被“中断”,cpu中止原来正在执行的程序,转到处理异常情况或特殊事件的程序去执行,结束后再返回到原被中止的程序处(断点)继续执行

  • 程序执行被"中断“的事件(在硬件层面)有两类

    • 内部异常:在CPU内部发生的意外事件或特殊事件
    • 外部中断:在CPU外部发生的特殊事件,通过“中断请求“信号向CPU请求处理。
  • 异常和中断的处理
    发生异常和中断事件后,系统将进入OS内核态对相应事件进行处理,即改变处理器状态(用户态->内核态)
    在这里插入图片描述

异常的分类

  1. 故障: 执行指令引起的异常事件,如溢出,非法指令,缺页,访问越权等。
    ”断点“为发生故障指令的地址

  2. 自陷:预先安排的事件(“埋地雷”),如单步跟踪,断点,系统调用等。是一种自愿中断。
    ”断点“为自陷指令下条指令地址

  3. 终止:硬故障事件,此时机器将”终止“,调出中断服务程序来重启操作系统
    ”断点“是什么?随便!
    思考一:自陷处理完成后回到哪条指令执行?回到下条指令
    思考二:哪些故障补救后可继续执行,哪些只好终止当前进程?
    缺页,TLB缺失等:补救后可继续,回到发生故障的指令重新开始
    溢出,除数为0,非法指令,内存保护错等:终止当前进程

    “断点”:异常处理结束后回到原来被”中断“的程序执行时的起始指令

中断

1. 中断的概念

  • 外设通过中断请求信号线向CPU提出”中断”请求,不由指令引起,故中断也称为异步中断
  • 事件:CTRL-C, DMA传送结束,网络数据到达,打印缺纸……
  • 每执行完一条指令,CPU就查看中断请求引脚,若引脚的信号有效,则进行中断响应:将当前PC(断点)和当前机器状态保存在栈中,并“关中断”。然后,从数据总线读取中断类型号,根据中断类型号跳转到对应的中断服务程序执行。中断检测及响应过程由硬件完成。
  • 中断服务程序执行具体的中断处理工作中断处理完成后,再回到被打断程序的“断点“出继续执行

2. 中断的分类

  • 可屏蔽中断:通过INTR向CPU请求,可通过设置屏蔽字来屏蔽请求,若中断请求被屏蔽,则不会被送到CPU
  • 不可屏蔽中断:非常紧急的硬件中断,如:电源掉电,硬件线路故障等。通过NMI向CPU请求。一旦产生,就被立即送CPU,以便快速处理。这种情况下,中断服务程序会尽快保存系统重要信息,然后在屏幕上显示相应的消息或直接重启系统。

IA-32的向量中断方式

  1. 有256中不同类型的异常和中断
  2. 每个异常和中断都有唯一的编号,称之为中断类型号.
  3. 每个异常和中断有与其对应的异常处理程序或中断服务程序,其入口地址放在一个专门的中断向量表或中断描述符表中。
  4. 前32个类型(0~31)保留给CPU使用,剩余的由用户自行定义(这里的用户指机器硬件的用户,即操作系统)
  5. 通过执行INT n(指令第二字节给出的中断类型号n, n=32~255)使CPU自动转到OS给出的中断服务程序执行
  6. 实模式下,用中断向量表描述
  7. 保护模式下,用中断描述表描述

实地址模式下的中断向量表

实地址是Intel为80286及其之后的处理器提供的一种8086兼容模式,寻址空间1MB,指令地址=CS<<4+IP。从地址0~1KB大小的内存大小的内存构成一个中断向量表,位于0000H~03FFH。共256组,每组占4个字节。中断向量表中每一项是对应中断服务程序或异常处理的入口地址,被称为中断向量。

保护模式下的中断描述符表

  • 保护模式下,通过中断描述表捕获异常处理或中断服务程序入口地址
  • 中断描述表(Interrupt Descriptor Table,IDT)是OS内核中的一个表,共有256个表项,每个表项占8个字节,IDT共占2KB
  • IDTR中存放IDT在内存中的首地址
  • 每一个表项是一个中断门描述符,陷阱门描述符或任务门描述符。

开机过程(中断在其中扮演角色)

  1. 开机后系统首先在实地址模式下工作(只有1MB的寻址空间)
  2. 开机过程中,需要首先准备实模式下的中断向量表和中断服务程序。通常,由固化在主板上的一块ROM芯片中的BIOS程序完成。
  3. 开机过程后,需要首先准备检测显卡,键盘,内存等,并在0000H~003FFH区建立中断向量表,在中断向量所指主存区建立相应的中断服务程序。
  4. BIOS利用INT指令执行特定的中断服务程序把OS从磁盘加载到内存中。例如,BIOS可通过执行int 0x19指令来调用中断向量表0x19对应的中断服务程序,将启动盘上的0号磁头对应盘面的0磁道1扇区中的引导程序装入内存。
  5. BIOS(Basic Input/Ouput System)是基本输入输出系统的简称,是针对具体主板设计的,与安装的操作系统无关。
  6. BIOS包含各种基本设备驱动程序,通过执行BIOS程序**,基本设备驱动程序以中断服务程序的形式被加载到内存**,以提供基本的I/O系统调用
  7. 一旦进入保护模式,就不在使用BIOS
  • 8
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值