UNIX中断处理过程源代码分析

UNIX中断处理过程源代码分析

ID:38261784

大小:635.43 KB

页数:6页

时间:2019-05-24

UNIX中断处理过程源代码分析_第1页
UNIX中断处理过程源代码分析_第2页
UNIX中断处理过程源代码分析_第3页
UNIX中断处理过程源代码分析_第4页
UNIX中断处理过程源代码分析_第5页
资源描述:

《UNIX中断处理过程源代码分析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、同济大学《操作系统》UNIX中断处理过程源代码分析1.PDP-11中断类型与中断向量PDP-11对各种中断设置不同的处理程序入口。当处理机对某个设备的中断请求作出响应后,首先应获取下列两种信息:相应中断处理程序的入口地址;中断处理时处理机的状态字。PDP-11将这两种信息组合起来,称其为中断矢量(interruptvector)。所有设备的中断矢量都集中存放在总线地址最低部分的内存中。表1中列出了主要设备的中断矢量以及它们所在的总线请求级。表1:外部设备的中断矢量和总线请求等级外部设备名中断矢量地址中断处理程序地址新处理机状态字总线请求级设备处理子程序电传输入060kilnbr44klri

2、nt电传输出064kloubr44klxint纸带输入070pcinbr44pcrint纸带输出074pcoubr44pcpint线频时钟100kwlpbr66clock程序时钟104kwlpbr66clock行式打印机200lpoubr44lpintRK磁盘220rkiobr55rkintr表1中各中断矢量的定义在low.s文件中,如下所示。0525.=60^./以下内容写入60开始的内存单元0535kwlp;br60526klin;br405360527klou;br40537.=114^.05280538trap;br7+7./11/70parity0529.=70^.0539053

3、0pcin;br40540.=200^.0531pcou;br40541lpou;br4053205420533.=100^.0543.=220^.0534kwlp;br60544rkio;br5由上述代码可以看出,在PDP-11的内存低地址部分,中断向量的分布如图1所示。2.中断响应过程UNIX中断响应过程分为三个部分,分别是:中断隐指令(硬件完成)、中断现场保护与恢复(汇编指令)、设备处理子程序部分(C语言)。下面将分别阐述这三部分的详细过程。2.1.中断隐指令CPU响应中断后,首先由硬件完成一部分现场保护的工作,其具体内容及流程如图2所示。中断隐指令执行结束后,由于PC中的值为中断处

4、理程序的地址,则下一个时钟周期开始,CPU转去执行中断处理程序。同济大学《操作系统》060电传输入中断处理程序kiln入口地址电传输入中断处理机状态字br4064电传输出中断处理程序klou入口地址电传输出中断处理机状态字br4070纸带输入中断处理程序pcin入口地址纸带输入中断处理机状态字br4074纸带输出中断处理程序pcou入口地址纸带输出中断处理机状态字br4中断0100线频时钟中断处理程序kwlp入口地址向量线频时钟中断处理机状态字br6区0104实时时钟中断处理程序kwlp入口地址实时时钟中断处理机状态字br6……0200行打印机中断处理程序lpou入口地址行打印机中断处理机

5、状态字br4……0220磁盘读写中断处理程序rkio入口地址磁盘读写中断处理机状态字br5图1:PDP-11中断向量区低地址PC②中断处理程序入口地址处PS③处理机状态字理指向子④程设①序备⑤UNIX内核内部寄存器00⑥核心栈①CPU把当前PC和PS的值先暂存在内部寄存器中②读出中断处理程序入口地址,装入PC③装入新读出处理机状态字,装入PS的5~7位④PS的14,15位写入12,13位,即:设置先前态⑤PS的14,15位写入00,即:设置当前态为核心态高地址⑥内部寄存器中暂存的旧PC和PS的值压入核心栈图2:中断隐指令执行过程同济大学《操作系统》2.2.UNIX现场保护与恢复过程表1中所

6、列的UNIXV6中所有的中断处理程序只包含一条跳转指令,代码如下所示(位于low.s文件中)。可以看出,中断处理程序的代码都很类似,都是由一条jsr指令和随后的函数入口地址组成(此时,两条指令放在同一行时,使用分号隔开,但这里第二句代码并不是指令,而只是一个函数地址)。这两句代码的含义是:r0的值被压入栈,pc的值(即:第二句中的函数地址)存入r0,call函数的入口地址放入pc。这样,下一个时钟周期,程序将跳转到一段入口地址为call的汇编指令。0551////////////////////////////////////////////////////////////////////

7、///05650552/interfacecodetoC0566.globl_pcpint0553///////////////////////////////////////////////////////////////////////0567pcou:jsrr0,call;_pcpint055405680555.globlcall,trap0569.globl_clock05560570kwlp:jsrr0,cal

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。