Linux操作系统分析5 interrupt.ppt_第1页
Linux操作系统分析5 interrupt.ppt_第2页
Linux操作系统分析5 interrupt.ppt_第3页
Linux操作系统分析5 interrupt.ppt_第4页
Linux操作系统分析5 interrupt.ppt_第5页
已阅读5页,还剩96页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Linux操作系统分析、中国科技大学计算机系陈香兰(051287161312) Autumn 2010、中断和异常、2020/8/5、Linux操作系统分析、3/内核的主要功能之一是硬件外围I/O内核必须处理其他任务。外围设备实际就绪后,只有CPU可以转过来处理外围设备io。轮询、中断、DMA等轮询方法效率低下。中断机制是符合上述条件的解决方案。2020/8/5、Linux OS 4/100、主要内容、中断信号的作用和中断信号处理一般说明I/O设备导致CPU中断x86 CPU在硬件级别处理中断信号Linux内核中的软件级别中断处理和数据结构Linux中的软中断、tasklet和下半部分、22

2、Linux中断信号的作用和中断信号处理一般准则I/O设备导致CPU中断x86 CPU如何在硬件级别处理中断信号Linux内核中的软件级别中断处理和数据结构Linux中的软中断、tasklet和下半部分、2020/8/5、Linux OS analysis、6 Linux OS Analysis,7/100,中断信号的作用,中断信号提供了CPU转到正常节目以外的代码的特殊方法。例如,如果外围设备收集一些数据并发送中断信号,则CPU必须立即响应牙齿信号。否则,可能会丢失数据。中断信号到达时,必须停止CPU。此外,新活动切换为此,流程的内核状态堆栈将节目计数器的当前值(如EIP和cs寄存器)牙齿存档

3、,以便在中断处理完成后正确返回到中断点。将中断信号相关地址放在节目计数器中,输入中断处理,2020/8/5,Linux操作系统Anan。内核在做其他事情的时候,中断随时会来。无辜运行的代码中断的中断处理程序在运行时可以禁止同级中断中断处理程序进行硬件操作,普通硬件时间也非常敏感的内核的目标是确保中断处理尽快完成。允许更多处理,如上半部分和下半部分、2020/8 Linux OS Analysis、9/100和徐璐其他类型的中断嵌套,使更多I/O设备进入使用中状态。内核在处理中断时可以接受一个新中断,但是内核代码中仍有临界区域。临界区域内禁止中断、2020/中断上下文、与中断上下文不同的进程上下

4、文中断或异常处理程序运行的代码不是进程。内核控制路径,指示发生中断时正在运行的进程执行。中断处理程序比一个进程“轻”(中断上下文仅包含少数几个有限的寄存器,设置和结束牙齿上下文所需的时间非常少),2020/8 Linux OS Analysis,11/100,中断上下文示例,A、B、C和D的互占关系由于Linux不为中断处理程序设置process context,因此a是c的kernel stack唯一可执行堆栈、c进程、d进程、a中断、b中断、a中断发生情况、current、2020这是因为所有已启动的interrupt contexts都无法插入调度程序调度程序的调用,无论是在interr

5、upt contexts之间切换还是在interrupt context中运行代码的过程。除非Interrupt context主动或被动地睡不着,否则它会引发调度程序,但必须避免。危险在3点说明中列出。C进程,d进程,A中断,b中断,A中断发生,current,2020/8/5,Linux OS analysis,13/100,11这污染了A的利益和C的kernel stack。第二,如果interrupt Context A堵塞或因其他原因睡觉,外界对系统的反应能力将无法忍受。2020/8/5,Linux Os Analysis,14/100,4 Interrupt context中的一个

6、步骤中CPU的IF flag标志可能已打开,因此在a过程中触发b的IRQ line牙齿PIC以获取CPU IRQ pin允许此类复盖。当然,实时Linux上的patch可能不允许优先级较低的interrupt context抢占优先级较高的interrupt context。c进程、d进程当前、b中断发生、开放中断、2020/8/5、Linux OS分析、15/100、主要内容、中断信号的作用和中断信号处理一般说明I/O设备导致CPU中断x86 CPU如何在硬件级别处理中断信号Linus可遮罩中断可以位于两个茄子状态:遮罩(遮罩)和非遮罩(非遮罩)中断(Nonmaskable interrup

7、t)中。硬件故障或电源关闭,2020/8/5,Linux Os Analysis,17/100,异常:处理器检测异常是在CPU执行命令时检测到异常情况时发生的(例如,由程序员的特定请求生成编程异常,如溢出、零调试等)。Linux OS Analysis,18/100,对于处理器检测异常,在异常情况下,根据内核堆栈中存储的EIP的值,故障(fault): EIP=故障引发命令的地址通常可以更正,处理异常后将重新运行(例如,缺失),异常中止(abort)-嗯?-嗯?发生严重的错误。Eip值无效。受影响的进程、2020/8/5、Intel OS analysis、19/100、中断向量、每个中断和异

8、常都通过0255之间的数字(8位)标识,在英特尔称之为中断向量的非屏蔽中断矢量和异常矢量是中断控制器,2020/8所有IRQ线都连接到中断控制器上的输入针脚。中断控制器与CPU的intr针连接。设备、设备控制器、中断控制器、IRQ、CPU、INTR、2020/8/5、Linux OS分析发生信号在IRQ联机A中出现时,将牙齿信号转换为相应的中断向量B,并将牙齿矢量保存在中断控制器的I/O端口将发生信号发送到处理器INTR针,即生成中断D,等待CPU响应牙齿信号。收到响应后,清除Intel针脚3,然后返回第一步,2020/8/5,Linux Os analysis,22/100,IRQ编号和中断

9、向量编号,中断控制器对输入IRQ行从0开始按顺序返回到IRQ0,IRQ1。与上述IRQ行相对应的中断向量顺序为32 0、32 1,可以对中断控制器进行编程。也就是说,您可以修改起始中断向量值或选择屏蔽/激活每个IRQ线路、屏蔽损失、2020/8/5、Linux Os analysis、23/。中断控制器还向CPU发送可选掩码/激活IRQ行全局掩码/激活前者,对中断控制器进行编程,使后者可以通过特定命令操作CPU上的状态字。2020/8/5、Linux Os Analysis、24/100、I386:开放中断和1=打开中断。中断关闭时,CPU不响应中断控制器发布的中断请求核心。使用CLI和STI

10、命令将牙齿标志、2020/8/5、Linux操作系统分析、25/100;传统中断控制器:8259A;传统中断控制器使用两个8259 a“级联”连接到每个芯片,从而最多连接8个徐璐其他IRQ线路主节点这意味着主IRQ2针总共可以处理15条徐璐其他IRQ线、2020/8/5、Linux Os Analysis。Init _ 8259a,2020/8/5,Linux OS analysis,27/100,8259a:禁止/启用IRQ线,变量的第一个x字节,有关某些例外情况,请参阅硬件错误代码IDTr寄存器IDT表中的物理基本地址lidt说明,2020/8/5,Linux OS analysis,31

11、/100,31/100中断语句:进入中断语句时,系统处于关机中断状态,因此必须正确初始化IDT CPU 陷阱语句:与中断语句类似,但是进入陷阱语句时,系统无法进入关机中断状态(2020/8/5,Linux OS analysis,32/100,)中断信号的作用和中断信号处理一般指令I/O设备导致CPU中断x86 CPU如何在硬件级别处理中断信号Linux在发出牙齿命令之前,CPU控制单元将检查在执行前面的命令时是否发生了中断或异常。发生中断或异常时,CPU控制单元将:2020/8/5,Linux Os analysis,34/100,1,与中断或异常关联的矢量i(0255) 2,读取idtr检查中断:中断处理程序的权限是中断发生程序的权限(GDT表条目中的DDT必须比较CPL与其IDT表条目的DPL。牙齿描述符指定中断或异常处理程序所在段的缺省地址。只能从较低的权限级别“切入”到较高的权限级别,反之则不允许。2020/8/5,Linux Os analysis,35/100,5,检查是否发生了权限级别更改。通常指示用户状态是否已进入内

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论