[优秀毕业论文]在虚拟机中编程实现IO中断处理机制.doc
《[优秀毕业论文]在虚拟机中编程实现IO中断处理机制.doc》由会员分享,可在线阅读,更多相关《[优秀毕业论文]在虚拟机中编程实现IO中断处理机制.doc(57页珍藏版)》请在三一文库上搜索。
1、本科毕业设计(论文)毕业设计(论文) 题 目 在虚拟机中编程实现I/O 中断处理机制 专 业 计算机科学与技术 学 号 学 生 指 导 教 师 答 辩 日 期 2008年6月23日 摘 要本论文主要研究了中断处理机制,并在此基础上实现了键盘驱动程序。在实现中断处理机制的过程中,首先介绍了中断及中断源的概念,分析了中断的处理流程;其次介绍了中断处理机制的硬件和软件实现过程,其中硬件方面主要介绍了8259A的内部结构,工作原理及相关配置;软件方面主要介绍了中断描述符表IDT的建立过程。在实现键盘驱动程序的过程中,主要介绍了键盘的内部结构及工作原理,建立了扫描码表数组,总结了键盘的工作过程,并实现了
2、对键盘上单键和复合键的响应。在分析中断处理机制的过程,发现了Linux 2.6.25内核中断部分关于s3c2410上的DMA通道映射的上的一个bug,并实际的调试跟踪了相应的内核源码,解决了这个bug。关键词中断;8259A;中断描述符;扫描码 AbstractThis paper mostly researchs the interrupt handing mechanism, on the basis of which, realizes the keyboard driver.In the process of realizing the interrupt handing mechan
3、ism, firstly, it introduces the conception of interrupt and interrupt source, and analyses the flow of interrupt handing. Secondly, it introduces the process of achieving the hardware and software in the interrupt handing mechanism, of which, mostly describes the internal structure, operational prin
4、ciple and configure in the 8259A, then, describes the build process of the Interrupt Descriptor Table IDT.In the process of realizing the keyboard driver, it describes the internal structure and operational principle of the keyboard, and sets up scan code table array, then sums up the working proces
5、s of the keyboard and achieves the responding of the single and complex keys.Finally, it discovers a bug in the 2.6.25 kernel , which is about DMA channel mapping on the s3c2410 board, and debug the kernel code , then resolves the bug.Key wordsinterrupt 8259A interrupt descriptor scan code不要删除行尾的分节符
6、,此行不会被打印- II -本科毕业设计(论文)目 录摘 要IAbstractII第1章 绪论11.1 课题背景11.2 课题来源、目的和意义11.2.1 课题来源11.2.2 课题目的和意义11.3 主要研究内容21.4 本文结构2第2章 中断概论32.1 中断简介32.1.1 中断的概念及作用32.1.2 中断源32.2 I/O中断的处理过程42.2.1 标志寄存器IF位42.2.2 中断处理流程42.3 本章小结6第3章 中断处理机制的实现73.1 中断机制硬件部分实现73.1.1 8259A简述73.1.2 8259A工作原理103.1.3 8259A相关配置113.2 中断机制软件部
7、分实现163.2.1 保护模式简述163.2.2 中断描述符表IDT173.2.3 编程实现中断处理过程213.3 本章小结24第4章 键盘驱动的实现264.1 键盘简述264.1.1 键盘种类264.1.2 键盘内部结构264.2 键盘工作原理284.2.1 键盘扫描码284.2.2 键盘的工作过程及实现304.3 键盘按键的实现314.3.1 单键的实现314.3.2 复合键的实现324.4 本章小结32第5章 内核中断相关bug的简述345.1 引言345.2 内核中断相关bug的描述345.3 内核中断相关bug的修改365.4 本章小结38结 论39致 谢40参考文献41千万不要删除
8、行尾的分节符,此行不会被打印。在目录上点右键“更新域”,然后“更新整个目录”。打印前,不要忘记把上面“Abstract”这一行后加一空行- 51 -本科毕业设计(论文)第1章 绪论1.1 课题背景现代通用处理器都通过中断处理机制来处理中断。硬件中断发生时,CPU将停止执行当前指令并将跳转到内存中包含中断处理代码或中断处理代码指令分支的位置继续执行。这些代码在一种特殊CPU模式:中断模式下执行1。随着计算机系统的不断发展,中断处理机制也在不断的完善。在嵌入式系统在实时控制领域的广泛应用的今天, 系统对嵌入式微处理器和嵌入式软件的要求越来越高。不仅要求系统支持实时多任务、支持抢占式任务切换而且具有
9、较短的中断响应时间, 及时处理现场环境的实时请求。这就要求中断处理机制不仅要执行中断处理程序,还有在短时间内快速对外部的中断请求进行处理2。1.2 课题来源、目的和意义1.2.1 课题来源中断处理是由内核执行的最敏感的任务之一,当内核正打算去做一些别的事情时,中断随时会到来,中断当前的任务进而执行中断处理程序。因此内核的目标就是让中断尽可能快的处理完, 尽其所能把更多的处理工作向后推迟。为此Linux把中断的处理分成上半部分和下半部分。上半部分立即执行, 下半部分将唤醒相应的和中断处理相关的进程稍后执行。这种中断处理机制使得中断处理变得更加高效和易于维护。鉴于中断处理机制在计算机系统中的重要地
10、位以及对中断处理机制的浓厚兴趣,并在和导师的沟通交流下获得了本课题。1.2.2 课题目的和意义通过编程实现I/O中断处理机制,想进一步了解中断处理机制的工作原理和一些相关的硬件的知识。同时阅读大量Linux内核源码,掌握内核中断的基本流程,为将来从事嵌入式开发行业打下基础。1.3 主要研究内容本论文主要研究了中断处理机制,编程实现了中断处理的全过程,并在此基础上实现了键盘驱动,最后对Linux 内核关于中断处理的一个bug加以解决。1.4 本文结构本文主要内容如下:第2章中,主要介绍了中断的基本概念和中断的处理流程及原理。 第3章中,主要介绍了中断处理机制在硬件和软件方面的实现。第4章中,主要
11、介绍了键盘驱动的实现。第5章中,主要介绍了Linux 2.6.25内核上的关于DMA的一个bug,并加以解决。第2章 中断概论2.1 中断简介2.1.1 中断的概念及作用中断是一种使CPU中止正在执行的程序而转去处理特殊事件的操作。一方面,有了中断功能, PC系统就可以使CPU和外设同时工作,使系统可以及时地响应外部事件,这样就大大提高了CPU的利用率,也提高了输入、输出的速度,从而提高了系统的实现性;另一方面,有了中断功能,就可以使CPU及时处理各种软硬件故障。计算机在运行过程中,往往会出现事先预料不到的情况或出现一些故障,如电源掉电、存储出错、运算溢出等等。计算机可以利用中断系统自行处理,
12、而不必停机或报告工作人员3。2.1.2 中断源2.1.2.1 中断源概念CPU要响应中断,必须有外部设备或应用程序向CPU发出中断请求,这种引起中断的原因或设备就叫中断源4。2.1.2.2 中断源分类中断源一般有以下几种5: (1) 外部I/O设备,如键盘,其可以产生I/O中断;(2) 系统定时器,其可以产生的系统时钟中断;(3) 计算机硬件故障或者程序出错,这种中断是随机发生的,又叫异常;(4) 程序中断,这种中断是由应用程序通过执行特殊的中断指令而产生中断调用的,所以又叫程序中断或者软中断。 其中(1),(2)两种设备产生的中断叫做硬中断,而本论文中所讨论的I/O中断就为此类中断。2.2
13、I/O中断的处理过程2.2.1 标志寄存器IF位EFLAGS为32位标志寄存器,又称为程序状态寄存器。这是一个存放条件码标志,控制标志和系统标志的寄存器。其结构如表1-1所示。表2-1 标志寄存器低16位OFDFIFTFSFZFAFPFCF其中标志寄存器的第9位为IF即为中断标志位。当IF位为1时,允许CPU响应中断请求即开中断;当IF位为0时,CPU不响应外部中断即关闭中断。2.2.2 中断处理流程当外部I/O设备产生中断后,系统将按照下面的过程进行处理:(1) 中断控制器接受设备产生的中断,并向CPU发出中断请求;(2) CPU接受请求,并关闭中断即IF位置0。因为下一步是保存断点和现场,
14、在此过程中,CPU不应该响应别的中断,否则,现场保存不完整,在中断服务程序结束后,CPU就不能正确的回到断点继续执行程序; (3) 保存断点和现场。为了保证程序在中断服务程序执行后返回断点继续执行,必须保存当前CPU中寄存器的内容和断点的位置; (4) 开启中断。因为下面将执行中断服务程序,为了保证此时CPU能响应更高级别的中断,必须将标志寄存器中的IF位置1,即开中断; (5) 执行中断服务程序; (6) 关闭中断。因为下一步要恢复现场和断点,否则将破环恢复过程; (7) 恢复现场和断点; (8) 开启中断,以便继续接受外部中断; (9) 返回断点。其流程图如图2-1所示。图2-1 中断处理
15、流程2.3 本章小结 本章首先介绍了中断的概念,其就是一种使CPU中止正在执行的程序而转去处理特殊事件的操作。接着又介绍了中断源及其分类,中断按中断源可分为硬中断,软中断和异常。而本论文中所涉及的I/O中断即为硬中断。本章又介绍标志寄存器IF位的作用,IF为0时,即关中断;IF为1时,即开中断。并重点的介绍了中断的处理流程。第3章 中断处理机制的实现3.1 中断机制硬件部分实现3.1.1 8259A简述3.1.1.1 8259A简介8259A为Intel公司生产的中断控制器6,其是专为定时、中断驱动的微计算机应用系统进行中断控制而设计的芯片,并且是可编程的,即可以由软件设置该中断控制器的工作模
16、式,在使用中非常灵活方便。另外,8259A中断控制器的功能也比较强大,1片8259A能管理8级中断,并可以利用两片8259A芯片来实现主从式中断系统,在目前的大多数计算机系统中就是采用这种主从式结构,在本论文中,也是采用的此种结构。其详细结构如图3-1所示。 图3-1 8259A主从结构3.1.1.2 8259A外部引脚 8259A共有28个外部引脚,其详细引脚位置如图3-2所示。 图3-2 8259A外部引脚每一个引脚都有特定的功能及作用,其具体功能如表3-1所示。 表3-1 8259A的引脚说明符号名称管脚号类型功能Vcc电源28输入+5V电源GND地14输入地CS片选1输入为低电平时,8
17、259A工作。WR写2输入为写信号线,低电平有效,当其有效时,控制信息从CPU写入至8259芯片。 RD读3输入为低电平有效,当其有效时,控制信息从8259芯片读至CPU。表3-1 8259A的引脚说明续符号名称管脚号类型功能D7D0双向数据总线411输入/输出传送控制状态和中断向量号CAS2CAS0级连信号线12,13,15输入/输出8259A专用总线,以便构成多个主从结构,对于主片来说,为输出;对于从片来说,为输入。SP/EN从片/开启缓冲器16输入/输出在缓冲器方式下,为输出,控制缓冲收发器。在其他方式下,为输入,主片sp=1,从片sp=0。INT中断17输出向CPU发出中断请求IR0I
18、R7中断请求1825输入中断请求输入端INTA中断响应26输入中断响应输入端A0A0地址线27输入来选择芯片内部不同的寄存器,通常接至地址总线的A0。3.1.1.3 8259A内部结构8259A的内部结构主要由中断请求寄存器、当前服务寄存器、中断屏蔽寄存器构成的。其具体结构如图3-3所示。 图3-3 8259A内部结构 其中相关部件的功能为:(1) 中断请求寄存器(IRR)。用于存放正在请求的服务的所有中断源;(2) 当前服务寄存器(ISR)。用于存放正在服务的中断源;(3) 中断屏蔽寄存器(IMR)。对IRR寄存器起屏蔽作用;(4) 优先级电路。该部件确定IRR寄存器中置“1”位的优先级;(
19、5) 数据总线缓冲器。用于发送或接收状态字和控制字信息;(6) 读/写控制逻辑。用于接收CPU来的命令字,并把它们保存到寄存器。3.1.2 8259A工作原理8259A的工作流程如下:(1) 当外部产生中断时,某一条或多条中断线(IR07)变为高电平,使IRR 寄存器的对应位为1,即对这一中断进行锁存;(2) 如果中断没有被屏蔽且没有更高优先级的中断被受理,8259A的INT引脚将输出1,向CPU发出中断请求;(3) CPU响应后,会发出两个负脉冲,当第一个负脉冲到达INTA后,8259A将ISR寄存器中优先级最高的一位置1,并将IRR中的全部对应位置0,并且封锁IR07上的中断请求,即使IR
20、R的锁存功能失效;(4) 当第二个负脉冲到达INTA后,8259A将中断类型码,即中断号送至数据总线的D0D7,并送至CPU开始执行相应的中断处理程序。与此同时8259A允许IR07的中断请求,即使IRR的锁存功能有效;(5) 当CPU正在执行中断处理程序的时候,如有更高级的中断请求时,8259A会将此中断与ISR中的标识的中断(即CPU正在处理的中断)进行优先级比较,如果请求中断的优先级高于正在执行的中断的优先级,那么CPU必须停止执行当前的中断的处理程序,去响应正在请求的中断,即产生中断嵌套。对新中断的响应过程如(1),(2),(3),(4)。3.1.3 8259A相关配置3.1.3.1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 优秀毕业论文 优秀 毕业论文 虚拟机 编程 实现 IO 中断 处理 机制
链接地址:https://www.31doc.com/p-3903242.html