第七章 异常控制流 CPU控制流的概念 进程上下文切换 异常和中断的基本概念 异常和中断的响应和处理

Slides:



Advertisements
Similar presentations
定 格 入 格 破 格 —— 新诗仿写复习训练 仿照下列句子,再把 “ 人生 ” 比喻成 “ 大海 ”“ 天空 ” , 造两个句子。 如果说人生是一首优美的乐曲,那么痛苦则 是其中一个不可或缺的音符。 参考答案: 1 、如果说人生是一望无际的大海,那么挫折则 是其中一个骤然翻起的浪花。 2 、如果说人生是一片湛蓝的天空,那么失意则.
Advertisements

实习期工作总结 述职人:孙伟 —— 个人简历 姓名:孙伟 毕业院校 : 内蒙古民族大学 专业:农业机械化及其自动化.
《微型计算机技术 及应用》 ( 第 4 版) —— 戴梅萼 史嘉权. 目标 深刻理解 牢固掌握 灵活应用.
© 2001 孟静制作 版权所有 第二章 CPU 管理和进程、线程管理 2.1 CPU 管理概述 2.2 进程管理 2.3 进程模型实例分析 :UNIX 早期版本的 CPU 管理 子系统 ( 进程模型 ) 2.4 处理机管理实例分析 (2):linux CPU 管理(进程 模型) 2.5 线程模型.
第 3 章操作系统基础 3.1 操作系统概述 3.2 操作系统的功能模块 3.3 典型操作系统概述.
进 程. “ 程序 ” 和 “ 进程 ” 进程是 OS 对 CPU 执行的程序的运行过程的一种抽象。进程有自 己的生命周期,它由于任务的启动而创建,随着任务的完成(或 终止)而消亡,它所占用的资源也随着进程的终止而释放。 Linux 内核中通常把进程称为任务,每个进程主要通过一个称为进程描 述符(
第一章 微型计算机系统概述 1.1 计算机的发展与应用 微型计算机的发展与分类 微型计算机的应用
第一章 计算机基本知识 网考小组.
第2章 微处理器 2.1 概述 /8086微处理器 微处理器 X86/Pentium微处理器
第 4 章 社會中的文化 一、文化的意義與特徵 二、文化的內涵 三、次文化 四、文化的傳承與創新 課後複習 歷屆基測試題.
案例分析题 主讲蔡影.
1.6 中国人口迁移.
科目名稱: 觀光與文化 教師:李奇嶽.
班級:行流四甲 組員:497D0004何筱瑩 497D0016鄧宜欣 497D0044呂亭儀 497D0056黃 琪 497D0063賴依淩
香港普通話研習社科技創意小學 周順強老師.
厝厝有玄機架構圖.
全 国 教 育 经 费 统 计 报 表 填表说明及指标解释 2011年12月 主讲人:焦叶飞 去除PPT模板上的--无忧PPT整理发布的文字
闪耀之星 团队口号:成功来源于财富,财富就是我们的财务报表 团队成员: 组长:杨细桃 组员:冯永波 周贺能 张政论 刘世仙 勾朝兰.
POWERPOINT 2003 课程用时:2课时 课程目的:让学生掌握POWERPOINT2003的操作方法 和应用技巧。 讲 师:张 莉
世界各国的经济支柱产业 09工商一班 收集资料:盛秀秀 09B 李艳君 09B
网络信息资源的开发与设计 主讲教师 罗双兰 广西师范大学教育科学学院.
本位課程分享 報告:葉尚旻
Ch3 总线、中断与I/O系统 3.1 输入输出系统概述 3.2 总线设计 3.3 中断系统 3.4 通道处理机 3.5 外围处理机
期中考试后改薄工作督导点评 教务处 督导室.
繪本文學探討 課程內容& 成績評量說明 授課教師:王晴慧.
寫 作 教 學 6 電腦與我 時代改變,科技進步,電腦成為日常生活不可或缺的設備。我是二十一世紀的E世代少年,一隻滑鼠在手,樂趣無窮。
第一节 存储器的构成 第二节 存储系统的构成 第三节 Cache 第四节 虚拟存储器
第5章 输入输出与接口技术.
也許你很疑惑: 最近升官的同事,專業能力又沒你強! 情場得意的朋友,長的又沒你帥或美! 小曹要交新朋友,為什麼就是比較簡單!
汇编语言与接口技术 教师:范新民.
存储器的层次结构 512KB~8MB 400GB/S 1~8GB 12GB/S CPU Cache RAM 500GB DISK
養生恪守九不過 世界上最美最聰明的女人 “跳頻 ”技術之母 ─海蒂 ‧拉瑪 按鍵換頁.
第8章 现代微型计算机 x86系列微处理器 8.2 微型计算机体系结构 8.3 存储管理技术 8.4 多任务管理与I/O管理
第5章 中央處理單元與主記憶體 5-1 中央處理單元-CPU 5-2 主記憶體.
第7章 中斷系統.
第一章 概述.
C H A P T E R 11 体系结构对操作系统的支持.
微机原理与接口技术 第2章 8086系统结构 朱华贵 2015年09月17日.
第4章 作業系統的介紹及操作.
作 業 系 統 第三組 楊育翰 顏瑞霖.
5 Computer Organization (計算機組織).
第2章 16位和32位微处理器 位微处理器8086/ 位微处理器80386
編譯環境介紹.
讲师:田家华 第1章 认识计算机 本章要点   计算机的发展 计算机的组成.
Ch 9: Input/Output System 输入/输出系统
… 第一节 外设的定时方式与信息交换 一、外围设备的定时方式 CPU 1、速度极慢或简单的外围设备 2、慢速或中速的外围设备
微机原理及应用 主讲:郑海春.
操作系统实验 lab1-系统引导
和諧社區資訊服務推廣計畫 -軟體雲端社區 資訊研習營
第五章,抢占式调度(lab3).
第二章 8086/8088系统结构 主要内容 8086/8088微处理器的内部结构 8086/8088 CPU 的引脚与功能
第2章 ARM微处理器硬件结构 计算机体系结构分类 ARM版本及系列 ARM处理器结构 存储系统机制.
詩文的形成 有意義的字詞 句子 段落 一首詩文的形成,是由有意義的字詞組成句子,再由句子組成段落。
第 13 章 中断系统.
中国科学技术大学计算机系 陈香兰(0512- ) 助教:孟宁 Fall 2009
6.1 输入/输出 6.2 CPU与外设数据传送方式 6. 3 MCS-51中断系统 6. 4 中断应用举例
第五章 中断与异常 中断的基本知识 中断描述符表的初始化 中断处理 中断的下半部处理机制 中断的应用-时钟中断.
7.1.1 设备管理的功能(P95) 分配设备:按设备的不同类型和操作系统选用的算法分配。包括分配相应的通道、设备控制器以及对未分配到的任务或怍业进行排队等; 控制和实现真正的输入输出操作。包括通道程序控制、启动设备、及时响应及处理中断讯号等; 对输入输出缓冲区进行管理。例如逻辑名的管理,多个缓冲区的分时以及串并行操作,同类多个外部设备的均衡工作,避免“忙的忙”和“闲的闲”;
Linux Debugging ls,ps,top,etc. printk() /proc i386提供的调试机制(断点,信号,单步执行)
大綱 *專題演講介紹 *大陸醫療的改革與發展 *海報發表文章分享 2012海峽兩岸醫院院長論壇行後報告 ‧台北
操作系统的结构和硬件支持 第2章 操作系统的结构和硬件支持.
第2章 80x86计算机组织  计算机系统  存储器  中央处理机  外部设备.
作業系統 第十四章 輸出輸入系統.
微型计算机原理与接口技术 (第2版) 赵宏伟 于秀峰 黄永平 秦贵和 北京:科学出版社 出版 吉林大学计算机科学与技术学院 制作.
实验2 中断模拟实验.
報告人:張淑惠.
第12章 中断 罗文坚 中国科大 计算机学院
印天电子白板软件使用讲解 -杨馥宇 QQ:
微型计算机系统.
Presentation transcript:

第七章 异常控制流 CPU控制流的概念 进程上下文切换 异常和中断的基本概念 异常和中断的响应和处理

异常控制流 主要教学目标 主要教学内容 使学生了解程序执行过程中正常的控制流和异常控制流的区别 了解在较低层次上如何实现异常控制流 初步理解硬件如何和操作系统协调工作,从而为将来理解和掌握操作系统核心内容打下良好基础。 主要教学内容 CPU控制流、异常控制流 进程和进程上下文切换 异常和中断的基本概念 异常和中断的响应和处理

异常控制流 分以下两个部分介绍 第一讲:进程与进程的上下文切换 CPU的控制流、异常控制流 程序和进程、引入进程的好处 逻辑控制流和物理控制流 进程与进程的上下文切换 程序的加载和运行 第二讲:异常和中断 异常和中断的基本概念 异常和中断的响应、处理 第三讲:IA-32/Linux下的异常/中断机制

异常和中断 程序执行过程中CPU会遇到一些特殊情况,使正在执行的程序被“中断” 程序执行被 “中断” 的事件(在硬件层面)有两类 内部“异常”:在CPU内部发生的意外事件或特殊事件 按发生原因分为硬故障中断和程序性中断两类 硬故障中断:如电源掉电、硬件线路故障等 程序性中断:执行某条指令时发生的“例外(Exception)”,如溢出、缺页、越界、越权、非法指令、除数为0、堆栈溢出、访问超时、断点设置、单步、系统调用等 外部“中断”:在CPU外部发生的特殊事件,通过“中断请求”信号向CPU请求处理。如实时钟、控制台、打印机缺纸、外设准备好、采样计时到、DMA传输结束等。 一种情况:上课时由于机器死机(PPT不能放)或屏幕保护(黑屏)等,使上课不能再正常继续下去----“内部异常” 另一种情况:上课时突然有紧急事情需要上课老师出去处理一下,回头继续上课----“外部中断” 打铃下课是“内部异常”还是“外部中断”?

异常和中断的处理 发生异常(exception)和中断(interrupt)事件后,系统将进入OS内核态对相应事件进行处理,即改变处理器状态(用户态→内核态) 用户进程 OS 响应异常/中断 事件 当前指令 具体的异常或中断处理 下条指令 返回当前指令 返回下条指令 终止(abort) 用户进程的正常控制流中插入了一段内核控制路径 中断或异常处理执行的代码不是一个进程,而是“内核控制路径”,它代表异常或中断发生时正在运行的当前进程在内核态执行一个独立的指令序列。内核控制路径比进程更“轻”,其上下文信息比进程上下文信息少得多。而上下文切换后CPU执行的是另一个用户进程。

异常的分类 “异常” 按处理方式分为故障、自陷和终止三类 故障(fault) :执行指令引起的异常事件,如溢出、缺页、堆栈溢出、访问超时等。 自陷(Trap) :预先安排的事件,如单步跟踪、系统调用 (执行访管指令) 等。是一种自愿中断。 终止(Abort) :硬故障事件,此时机器将“终止”,调出中断服务程序来重启操作系统。 “断点”为发生故障指令的地址 “断点”为自陷指令下条指令地址 “断点”是什么? 随便! 思考1:自陷处理完成后回到哪条指令执行? 回到下条指令 思考2:哪些故障补救后可继续执行,哪些只好终止当前进程? 缺页、TLB缺失等:补救后可继续,回到发生故障的指令重新执行。 溢出、除数为0、非法操作、内存保护错等:终止当前进程。 不同体系结构和教科书对“异常”和“中断”定义的内涵不同,在看书时要注意!

异常举例—页故障 “页故障”事件何时发现?如何发现? “页故障”事件是软件发现的还是硬件发现的? 以下几种情况都会发生“页故障” 执行每条指令都要访存(取指令、取操作数、存结果) 在保护模式下,每次访存都要进行逻辑地址向物理地址转换 在地址转换过程中会发现是否发生了“页故障”! “页故障”事件是软件发现的还是硬件发现的? 逻辑地址向物理地址的转换由硬件(MMU)实现,故“页故障”事件由硬件发现。所有异常和中断事件都由硬件检测发现! 以下几种情况都会发生“页故障” 缺页:页表项有效位为0 地址越界:地址大于最大界限 访问越级或越权(保护违例): 越级:用户进程访问内核数据(CPL=3 / DPL=0) 越权:读写权限不相符(如对只读段进行了写操作) 可通过读磁盘恢复故障 不可恢复,称为“段故障(segmentation fault)”

异常举例—页故障 正常的控制流为 …、0x8048300、 0x8048309、 0x8048313、… 可能的异常控制流是什么? 假设在IA-32/linux系统中一个C语言源程序 P 如下: 1 int a[1000]; 2 int x; 3 main( ) 4 { 5 a[10]=1; 6 a[1000]=3; 7 a[10000]=4; 8 } 假设编译、汇编和链接后,第5、6和7行源代码对应的指令序列如下: 5 8048300: c7 05 28 90 04 08 01 00 00 00 movl $0x1, 0x8049028 6 8048309: c7 05 a0 9f 04 08 03 00 00 00 movl $0x3, 0x8049fa0 7 8048313: c7 05 40 2c 05 08 04 00 00 00 movl $0x4, 0x8052c40 已知页大小为4KB,若在运行P对应的进程时,系统中无其他进程在运行,则: (1) 对于上述三条指令的执行,在取指令时是否可能发生页故障? (2) 在数据访问时分别会发生什么问题? (3) 哪些问题是可恢复的?哪些问题是不可恢复的? 正常的控制流为 …、0x8048300、 0x8048309、 0x8048313、… 可能的异常控制流是什么?

异常举例—页故障 三条指令在读指令时都不会发生缺页,Why? 假设在IA-32/linux系统中一个C语言源程序 P 如下: 1 int a[1000]; 2 int x; 3 main( ) 4 { 5 a[10]=1; 6 a[1000]=3; 7 a[10000]=4; 8 } 假设编译、汇编和链接后,第5、6和7行源代码对应的指令序列如下: 5 8048300: c7 05 28 90 04 08 01 00 00 00 movl $0x1, 0x8049028 6 8048309: c7 05 a0 9f 04 08 03 00 00 00 movl $0x3, 0x8049fa0 7 8048313: c7 05 40 2c 05 08 04 00 00 00 movl $0x4, 0x8052c40 已知页大小为4KB,若在运行P对应的进程时,系统中无其他进程在运行,则: (1) 对于上述三条指令的执行,在取指令时是否可能发生页故障? (2) 在数据访问时分别会发生什么问题? (3) 哪些问题是可恢复的?哪些问题是不可恢复的? 三条指令在读指令时都不会发生缺页,Why? 它们都位于起始地址为0x08048000(是一个4KB页面的起始位置)的同一个页面,执行这三条指令之前,该页已经调入内存。因为没有其他进程在系统中运行,所以不会因为执行其他进程而使得调入主存的页面被调出到磁盘。因而都不会在取指令时发生页故障。

异常举例—页故障 第5行指令取数据时是否发生页故障,Why? 假设在IA-32/linux系统中一个C语言源程序 P 如下: 1 int a[1000]; 2 int x; 3 main( ) 4 { 5 a[10]=1; 6 a[1000]=3; 7 a[10000]=4; 8 } 假设编译、汇编和链接后,第5、6和7行源代码对应的指令序列如下: 5 8048300: c7 05 28 90 04 08 01 00 00 00 movl $0x1, 0x8049028 6 8048309: c7 05 a0 9f 04 08 03 00 00 00 movl $0x3, 0x8049fa0 7 8048313: c7 05 40 2c 05 08 04 00 00 00 movl $0x4, 0x8052c40 已知页大小为4KB,若在运行P对应的进程时,系统中无其他进程在运行,则: (1) 对于上述三条指令的执行,在取指令时是否可能发生页故障? (2) 在数据访问时分别会发生什么问题? (3) 哪些问题是可恢复的?哪些问题是不可恢复的? 第5行指令取数据时是否发生页故障,Why? 对a[10](地址0x8049028)的访问是对所在页面(首址为0x08049000)的第一次访问,故不在主存,缺页处理结束后,再回到这条movl指令重新执行,再访问数据就没有问题了。

异常举例—页故障 第6行指令取数据时是否发生页故障,Why? 假设在IA-32/linux系统中一个C语言源程序 P 如下: 1 int a[1000]; 2 int x; 3 main( ) 4 { 5 a[10]=1; 6 a[1000]=3; 7 a[10000]=4; 8 } 假设编译、汇编和链接后,第5、6和7行源代码对应的指令序列如下: 5 8048300: c7 05 28 90 04 08 01 00 00 00 movl $0x1, 0x8049028 6 8048309: c7 05 a0 9f 04 08 03 00 00 00 movl $0x3, 0x8049fa0 7 8048313: c7 05 40 2c 05 08 04 00 00 00 movl $0x4, 0x8052c40 已知页大小为4KB,若在运行P对应的进程时,系统中无其他进程在运行,则: (1) 对于上述三条指令的执行,在取指令时是否可能发生页故障? (2) 在数据访问时分别会发生什么问题? (3) 哪些问题是可恢复的?哪些问题是不可恢复的? 第6行指令取数据时是否发生页故障,Why? 对a[1000](地址0x8049fa0)的访问是对所在页面(首址为0x08049000)的第2次访问,故在主存,不会发生缺页。但a[1000]实际不存在,只不过编译器未检查数组边界,0x8049fa0处可能是x的地址,故该指令执行结果可能是x被赋值为3

异常举例—页故障 假设在IA-32/linux系统中一个C语言源程序 P 如下: 1 int a[1000]; 2 int x; 3 main( ) 4 { 5 a[10]=1; 6 a[1000]=3; 7 a[10000]=4; 8 } 假设编译、汇编和链接后,第5、6和7行源代码对应的指令序列如下: 5 8048300: c7 05 28 90 04 08 01 00 00 00 movl $0x1, 0x8049028 6 8048309: c7 05 a0 9f 04 08 03 00 00 00 movl $0x3, 0x8049fa0 7 8048313: c7 05 40 2c 05 08 04 00 00 00 movl $0x4, 0x8052c40 已知页大小为4KB,若在运行P对应的进程时,系统中无其他进程在运行,则: (1) 对于上述三条指令的执行,在取指令时是否可能发生页故障? (2) 在数据访问时分别会发生什么问题? (3) 哪些问题是可恢复的?哪些问题是不可恢复的? 第7行指令取数据时是否发生页故障,Why? 地址0x8052c40偏离数组首址0x8049000已达4×10000 +4=40004个单元,即偏离了9个页面,很可能超出可读写区范围,故执行该指令时可能会发生保护违例。页故障处理程序发送一个“段错误”信号(SIGSEGV)给用户进程,用户进程接受到该信号后就调出一个信号处理程序执行,该信号处理程序根据信号类型,在屏幕上显示“段故障(segmentation fault)”信息,并终止用户进程。

陷阱(Trap)异常 陷阱也称自陷或陷入,执行陷阱指令(也称为自陷指令)时,CPU调出特定程序进行相应处理,处理结束后返回到陷阱指令的下一条指令执行。 用户进程 OS 陷入OS内核 事件 陷阱指令 具体的陷阱处理(如系统调用) 下条指令 返回下条指令 陷阱的作用之一是在用户和内核之间提供一个像过程一样的接口,这个接口称为系统调用,用户程序利用这个接口可方便地使用操作系统内核提供的一些服务。操作系统给每个服务编一个号,称为系统调用号。例如,Linux系统调用fork、read和execve的调用号分别是1、3和11。 IA-32处理器中的 int 指令和 sysenter 指令、MIPS处理器中的 syscall指令等都属于陷阱指令。 陷阱指令异常称为编程异常(programmed exception),这些指令包括 INT n、int 3、into(溢出检查)、bound(地址越界检查)等

Trap举例: Opening File User Process OS 用户程序中调用函数 open(filename, options) open函数执行陷阱指令(即系统调用指令“int”) 0804d070 <__libc_open>: . . . 804d082: cd 80 int $0x80 804d084: 5b pop %ebx User Process OS 通过执行“int $0x80”指令,调出OS完成一个具体的“服务”(称为系统调用) 陷入OS int $0x80 文件打开操作 pop %ebx 返回到pop指令执行 Open系统调用(system call):OS must find or create file, get it ready for reading or writing,Returns integer file descriptor

陷阱(Trap)异常 SKIP 问题:你用过单步跟踪、断点设置等调试功能吗?你知道这些功能是如何实现的吗? 利用陷阱机制可实现程序调试功能,包括设置断点和单步跟踪 IA-32中,当CPU处于单步跟踪状态(TF=1且IF=1)时,每条指令都被设置成了陷阱指令,执行每条指令后,都会发生中断类型号为1的“调试”异常,从而转去执行“单步跟踪处理程序”。 注意: 当陷阱指令是转移指令时,不能返回到转移指令的下条指令执行,而是返回到转移目标指令执行。 IA-32中,用于程序调试的“断点设置”陷阱指令为int 3,对应机器码为CCH。若调试程序在被调试程序某处设置了断点,则调试程序就在该处加入一条int 3指令。执行到该指令时,会暂停被调试程序的运行,并发出“EXCEPTION_BREAKPOINT”异常,以调出调试程序执行,执行结束后回到被调试程序执行。 SKIP

IA-32的标志寄存器 …… 6个条件标志 3个控制标志 OF、SF、ZF、CF各是什么标志(条件码)? 8086 80286/386 6个条件标志 OF、SF、ZF、CF各是什么标志(条件码)? AF:辅助进位标志(BCD码运算时才有意义) PF:奇偶标志 3个控制标志 DF(Direction Flag):方向标志(自动变址方向是增还是减) IF(Interrupt Flag):中断允许标志 (仅对外部可屏蔽中断有用) TF(Trap Flag):陷阱标志(是否是单步跟踪状态) ……

终止(Abort)异常 如果在执行指令过程中发生了严重错误,例如,控制器出现问题,访问DRAM或SRAM时发生校验错等,则程序将无法继续执行,只好终止发生问题的进程,在有些严重的情况下,甚至要重启系统。 这种异常是随机发生的,无法确定发生异常的是哪条指令。

中断的概念 溢出、整除0、缺页等异常和外部中断都是由硬件检测并响应的! 断点是什么? 外设通过中断请求信号线向CPU提出“中断”请求,不由指令引起,故中断也称为异步异常。 事件:Ctrl-C、DMA传送结束、网络数据到达、打印缺纸、…… 每执行完一条指令,CPU就查看中断请求引脚,若引脚的信号有效,则进行中断响应:将当前PC(断点)和当前机器状态保存到栈中,并“关中断”,然后,从数据总线读取中断类型号,根据中断类型号跳转到对应的中断服务程序执行。中断检测及响应过程由硬件完成。 中断服务程序执行具体的中断处理工作,中断处理完成后,再回到被打断程序的“断点”处继续执行。 保护断点、关中断、转中断处理 用户进程 中断服务程序 中断响应 进行中断处理,例如,键盘中断时,将键盘缓冲区的字符取到存储器中 返回下条指令执行 8048500: pushl … 8048402: movl … 溢出、整除0、缺页等异常和外部中断都是由硬件检测并响应的! 断点是什么?

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

异常/中断响应过程 检测到异常或中断时,CPU须进行以下基本处理: ① 关中断(“中断允许位” 清0):使CPU处于“禁止中断”状态,以防止新中断破坏断点(PC)、程序状态(PSW)和现场(通用寄存器)。 ② 保护断点和程序状态:将断点和程序状态保存到栈或特殊寄存器中 PC→栈 或 EPC(专门存放断点的寄存器) PSWR →栈 或 EPSWR (专门保存程序状态的寄存器) PSW(Program Status Word):程序状态字 PSWR(PSW寄存器):如IA-32中的的EFLAGS寄存器 ③ 识别异常事件 有软件识别和硬件识别(向量中断)两种不同的方式。

异常/中断响应过程 有两种不同的识别方式:软件识别和硬件识别(向量中断)。 (1)软件识别(MIPS采用) 设置一个异常状态寄存器(MIPS中为Cause寄存器),用于记录异常原因。操作系统使用一个统一的异常处理程序,该程序按优先级顺序查询异常状态寄存器,识别出异常事件。 (例如:MIPS中位于内核地址0x8000 0180处有一个专门的异常处理程序,用于检测异常的具体原因,然后转到内核中相应的异常处理程序段中进行具体的处理) (2)硬件识别(向量中断)(IA-32采用) 用专门的硬件查询电路按优先级顺序识别异常,得到“中断类型号”,根据此号,到中断向量表中读取对应的中断服务程序的入口地址。 所有事件都被分配一个“中断类型号”,每个中断都有相应的“中断服务程序”,可根据中断类型号找到中断服务程序的入口地址。