- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第五章 中断与异常中断的基本知识中断描述符表的初始化中断处理中断的下半部处理机制中断的应用-时钟中断
数据传送控制方式选择和衡量控制方式的原则:数据传送速度足够高系统开销小,所需的处理控制程序少;能充分发挥硬件资源的能力;
数据传送控制方式程序直接控制方式中断控制方式DMA方式通道方式
CPU忙等待ProgrammedDirectControl外围设备做接收或发送数据准备接收到start命令等待CPU来的下条指令准备完毕?是标志触发器置“done”否CPU发start命令否等 待执行下条指令开始数据传送设备标志触发器为done”?是(a)(b)
优点:控制简单,不需要多少硬件支持缺点:CPU和外设只能串行工作;CPU在一段时间内只能和一台外设交换数据,不能实现设备间的并行操作;无法发现和处理由于设备和其他硬件所产生的错误。
Interrupt
中断控制方式的处理过程接收到CPU发来的start指令准备数据并将其置入缓冲寄存器缓冲寄存器满吗?向设备发start指令将中断允许位置1调度程序调度其他进程其他进程执行收到中断信号了吗?被中断进程执行否否是中断处理是控制器发中断信号设备 CPU
优点:并行操作缺点:I/O控制器的数据缓冲寄存器满,就会发中断。此寄存器一般较小,则在一次数据传送过程中,中断次数较多,将耗去大量CPU时间;若设备间并行操作,则中断次数增加,造成CPU无法响应中断和数据丢失。中断方式是假设外设速度很低。如果外设速度很高,则造成CPU来不及取走数据缓冲寄存器中的数据,造成数据丢失。
中断控制是计算机发展中一种重要的技术。最初它是为克服对I/O接口控制采用程序查询所带来的处理器低效率而产生的。中断控制的主要优点是只有在I/O需要服务时才能得到处理器的响应,而不需要处理器不断地进行查询。由此,最初的中断全部是对外部设备而言的,即称为外部中断(或硬件中断)。但随着计算机系统结构的不断改进以及应用技术的日益提高,中断的适用范围也随之扩大,出现了所谓的内部中断(或叫异常),它是为解决机器运行时所出现的某些随机事件及编程方便而出现的。因而形成了一个完整的中断系统。本章主要讨论在IA32保护模式下中断机制在Linux中的实现中断控制的主要优点:CPU只有在I/O需要服务时才响应。外部中断:外部设备所发出的I/O请求。内部中断:也称之为“异常”,是为解决机器运行时所出现的某些随机事件及编程方便而出现的。 中断掠影
中断向量:8位无符号整数中断源的编号0~255外设可屏蔽中断:32~47屏蔽外部I/O请求中断线、IRQ异常及非屏蔽中断:0~31异常:CPU内部中断非屏蔽中断:计算机内部硬件出错引起的异常软中断:48~255中断描述符表:描述中断的相关信息中断相关的汇编指令: 5.1中断的基本知识
Intelx86系列微机共支持256种向量中断,为使处理器较容易地识别每种中断源,将它们从0到256编号,即赋以一个中断类型码n,Intel把这个8位的无符号整数叫做一个向量,因此,也叫中中断断向向量量。所有256种中断可分为两大类:异常和中断。异常又分为故故障障((Fault))和和陷陷阱阱(Trap),它们的共同特点是既不使用中断控制器,又不能被屏蔽(异常其实是CPU发出的终端信号)。中断又分为外部可可屏屏蔽蔽中中断断(INTR)和外部非非屏屏蔽蔽中中断断(NMI),所有I/O设备产生的中断请求(IRQ)均引起屏蔽中断,而紧急的事件(如硬件故障)引起的故障产生非屏蔽中断。非屏蔽中断的向量和异常的向量是固定的,而屏蔽中断的向量可以通过对中断控制器的编程来改变。Linux对256个向量的分配如下:(1)从0~31的向量对应于异常和非屏蔽中断。(2)从32~47的向量(即由I/O设备引起的中断)分配给屏蔽中断。剩余的从48~255的向量用来标识软中断。Linux只用了其中的一个(即128或0x80向量)用来实现系统调用。 中断向量-每个中断源都被分配一个8位无符号整数作为类型码,即中断向量。(0~255)中断的种类: –中断:外部可屏蔽中断外部非屏蔽中断异常:不使用中断控制器,不能被屏蔽故障陷阱 中断向量-中断源的类型
Intelx86通过两片中断控制器8259A来响应15个外中断源,每个8259A可管理8个中断源。第一级(称主片)的第二个中断请求输入端,与第二级8259A(称从片)的中断输出端INT相连,如图5.1所示。我们把与中断控制器相连的每条线叫做中中断断线线,要使用中断线,就要进行中断线的申请,也就是IRQ(InterruptReQuirement),因此我们也常把申请一条中断线称为申请一个IRQ或者是申
文档评论(0)