中国高校课件下载中心 》 教学资源 》 大学文库

《Linux操作系统原理与应用》课程教学课件(PPT讲稿)第五章 中断与异常

文档信息
资源类别:文库
文档格式:PPT
文档页数:37
文件大小:772.5KB
团购合买:点击进入团购
内容简介
《Linux操作系统原理与应用》课程教学课件(PPT讲稿)第五章 中断与异常
刷新页面文档预览

第五章中断与异常中断的基本知识中断描述符表的初始化中断处理中断的下半部处理机制中断的应用一时钟中断

第五章 中断与异常 中断的基本知识 中断描述符表的初始化 中断处理 中断的下半部处理机制 中断的应用-时钟中断

中断掠影·中断控制的主要优点:-CPU只有在IVO需要服务时才响应·外部中断:r一外部设备所发出的/O请求·内部中断:也称之为“异常”,是为解决机器运行时所出现的某些随机事件及编程方便而出现的

• 中断控制的主要优点: – CPU只有在I/O需要服务时才响应 • 外部中断: – 外部设备所发出的I/O请求 • 内部中断: – 也称之为“异常”,是为解决机器运 行时所出现的某些随机事件及编程方 便而出现的 中断掠影

中断常识·中断向量:一中断源的编号·外设可屏蔽中断:屏蔽外部/O请求r异常及非屏蔽中断:一CPU内部中断或计算机内部硬件出错引起的异常·中断描述符表:一描述中断的相关信息·中断相关的汇编指令:Λ=>

• 中断向量 : – 中断源的编号 • 外设可屏蔽中断: – 屏蔽外部I/O请求 • 异常及非屏蔽中断 : – CPU内部中断或计算机内部硬件出错 引起的异常 • 中断描述符表 : – 描述中断的相关信息 • 中断相关的汇编指令 : 中断常识

中断向量一中断源的类型中断向量一每个中断源都被分配一个8位无符号整数作为类型码,即中断向量中断的种类:一中断:r·外部可屏蔽中断·外部非屏蔽中断一异常:不使用中断控制器,不能被屏蔽·故障·陷阱KM

• 中断向量-每个中断源都被分配一个8 位无符号整数作为类型码,即中断向量 • 中断的种类: – 中断: • 外部可屏蔽中断 • 外部非屏蔽中断 – 异常:不使用中断控制器,不能被屏蔽 • 故障 • 陷阱 中断向量-中断源的类型

外设可屏蔽中断。Intelx86通过两片中断控制器8259A来响应15个外中断源,每个8259A可管理8个中断源。·外部设备拥有相应权限时,可以向r特定的中断线发送中断请求信号·外部I/O请求的屏蔽:一从CPU的角度,清除eflag的中断标志位一从中断控制器的角度,将中断屏蔽寄存器的相应位置位A>

• Intel x86通过两片中断控制器8259A来 响应15个外中断源,每个8259A可管 理8个中断源。 • 外部设备拥有相应权限时 ,可以向 特定的中断线发送中断请求信号 • 外部I/O请求的屏蔽: –从CPU的角度, 清除eflag的中断标志位 – 从中断控制器的角度,将中断屏蔽寄存 器的相应位置位 外设可屏蔽中断

异常及非屏蔽中断·异常就是CPU内部出现的中断,即在CPU执行特定指令时出现的非法情况。非屏蔽中断就是计算机内部硬件出错时r引起的异常情况·Intel把非屏蔽中断作为一种异常来处理·在CPU执行一个异常处理程序时,就不再为其他异常或可屏蔽中断请求服务<>

• 异常就是CPU内部出现的中断,即在CPU 执行特定指令时出现的非法情况。 • 非屏蔽中断就是计算机内部硬件出错时 引起的异常情况 • Intel把非屏蔽中断作为一种异常来处理 • 在CPU执行一个异常处理程序时,就不再 为其他异常或可屏蔽中断请求服务 异常及非屏蔽中断

中断描述符表中断描述符表(IDT):即中断向量表每个中断占据一个表项3116 151287540DP000RODXXX偏移量31.16r3116 150段选择符偏移量15.0DPL段描述符的特权级偏移量入口函数地址的偏移量段是否在内存中的标志0段选择符入口函数所处代码段的选择符标志位,1=32位,0=16位XXX3位门类型码<V

• 中断描述符表(IDT):即中断向量表, 每个中断占据一个表项 中断描述符表

相关汇编指令·调用过程指令CALL:-CALL过程名·调用中断过程的指令INTr-INT中断向量·中断返回指令IRET-IRET·加载中断描述符表的指令LIDT-LIDT48位的伪描述符KM

• 调用过程指令CALL : – CALL 过程名 • 调用中断过程的指令INT – INT 中断向量 • 中断返回指令IRET – IRET • 加载中断描述符表的指令LIDT – LIDT 48位的伪描述符 相关汇编指令

初始化中断描述符表·Linux内核在系统的初始化阶段要初始化可编程控制器8259A;将中断描述符表的起始地址装入IDTR寄存器,并初始化表中的每一项r当计算机运行在实模式时,中断描述符表被初始化,并由BIOS使用。·真正进入了Linux内核,中断描述符表就被移到内存的另一个区域,并为进入保护模式进行预初始化>

• Linux内核在系统的初始化阶段要初始 化可编程控制器8259A;将中断描述符 表的起始地址装入IDTR寄存器,并初 始化表中的每一项 • 当计算机运行在实模式时,中断描述 符表被初始化,并由BIOS使用 。 • 真正进入了Linux内核,中断描述符表 就被移到内存的另一个区域,并为进 入保护模式进行预初始化 初始化中断描述符表

IDT表项的设置·IDT表项的设置通过 set gaetO函数实现·调用该函数在IDT表中插入一个中断门set intr gate(unsigned int n, void *addr)r调用该函数在IDT表中插入一个陷阱门:set_trap_gate(unsigned int n, void *addr)调用该函数在IDT表中插入一个系统门:set system gate(unsigned int n, void *addr)

• IDT表项的设置通过_set_gaet()函数实现 • 调用该函数在IDT表中插入一个中断门: set_intr_gate(unsigned int n, void *addr) • 调用该函数在IDT表中插入一个陷阱门: set_trap_gate(unsigned int n, void *addr) • 调用该函数在IDT表中插入一个系统门: set_system_gate(unsigned int n, void *addr) IDT表项的设置

刷新页面下载完整文档
VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
相关文档