PC:程序计数器,指向马上要执行的那一条指令
中断号:系统分配给每个中断源的代号,以便识别和处理
断点:检测到中断时,处理机刚执行完的那条指令地址
恢复点:断点的逻辑后续指令地址
现场信息:中断那一刻确保被中断程序能继续运行的有关信息,如PC,通用寄存器,其他特殊寄存器等
PS:处理机状态字,寄存处理机运行状态的寄存器
核心态:允许特权指令执行的状态,可访问系统空间。内核程序在此态运行
用户态:一般程序所运行的状态,只可访问用户空间
中断向量:一组存放程序入口地址和程序运行所需PS的内存单元
1.中断,异常(陷入)进入
1)硬件自动将当前PC,PS存入暂存寄存器.
2)中断/异常发生,用中断号/异常号作下标,查中断向量表,从指定的中断向量单元中取出新PC,PS内容装入 PC,PS寄存器,从而转到相应处理程序
3)将原PC,PS保存到现场保护区栈
2.保存现场,形成现场区栈帧
1)硬件将原PS,PC压栈,且根据中断类将中断向量表中的新PS,PC值送PS,PC寄存器.
2)中断入口指令将r0压栈后将中断处理程序地址存入r0,转总控程序.
3)由总控程序将新的PS压栈(因其中有陷入号信息).
4)由总控将r1,r6压栈(r6中为栈指针,此时是上一栈帧顶)由总控从新PS低五位截取trap号进入栈.
5)总控按照r0转相应中断(或trap)处理程序时,将返回地址压栈.
6)由各中断(陷入)处理程序先将r5,r4,r3,r2压栈,返回总控时恢复r2,r3,r4,r5.
3.转相应中断/异常(陷入)处理程序
总控程序直接根据r0中的地址(已存放好中断程序的入口地址)转向中断(陷入)处理子程序。转向子程序时,将返回地址压栈(转子指令自动压栈)
中断处理通常是向设备控制器发下一个I/O请求,就绪等该I/O结束的进程。
陷入处理即操作系统系统调用处理。
指令出错时一般是做进程结束处理。
4.恢复现场
问题:中断处理完成后,回到用户态之前CPU要先去运行什么程序?
中断处理完成后,
回退到核心态时:
1)退栈
2)执行rtt指令,该指令自动将栈帧中保存的原PC,PS值装入PC,PS寄存器
回退到用户态时:
1)进程调度
2)退栈
3)执行rtt指令.该指令自动将栈帧中的PC,PS值装入PC,PS寄存器