1
0
mirror of https://github.com/Didnelpsun/CS408.git synced 2026-02-07 04:44:02 +08:00

Update 0-summary.md

This commit is contained in:
Didnelpsun
2022-08-28 22:57:09 +08:00
parent 40fdb2275c
commit d5c46f7358

View File

@@ -307,16 +307,18 @@
1. 关中断。$CPU$响应中断后,首先要保护程序的现场状态,在保护现场的过程中,$CPU$不应响应更高级中断源的中断请求。否则,若现场保存不完整,在中断服务程序结束后,也就不能正确地恢复并继续执行现行程序。
2. 保存断点。为保证中断服务程序执行完毕后能正确地返回到原来的程序,中断隐指令将原来的程序的断点(即程序计数器$PC$)保存起来。由硬件自动完成。
3. 中断服务程序寻址。其实质是取出中断服务程序的入口地址送入程序计数器$PC$。
4. 保存现场和屏蔽字。进入中断服务程序后,首先要操作系统保存现场,现场信息一般是指程序状态字寄存器$PSWR$和某些通用寄存器的内容。
4. 保存现场和屏蔽字。进入中断服务程序后,首先要**操作系统**保存现场,现场信息一般是指程序状态字寄存器$PSWR$和某些通用寄存器的内容,即中断屏蔽字
5. 开中断。允许更高级中断请求得到响应。
6. 执行中断服务程序。这是中断请求的目的。
6. 执行中断服务程序。这是中断请求的目的。各中断向量统一存放在中断向量表中,该表由操作系统初始化,硬件找到该中断信号对应的中断向量,中断向量指明中断服务程序入口地址,然后根据其开始执行。
7. 关中断。保证在恢复现场和屏蔽字时不被中断。
8. 恢复现场和屏蔽字。将现场和屏蔽字恢复到原来的状态。
9. 开中断、中断返回。中断服务程序的最后一条指令通常是一条中断返回指令,使其返回到原程序的断点处,以便继续执行原程序。
第一步到第三步是$CPU$进入中断周期后,由硬件自动完成(中断隐指令),第四到九条是中断服务程序完成。
第一步到第三步是$CPU$进入中断周期后,由硬件自动完成(中断隐指令),第四到九条是中断服务程序(软件)完成。
中断处理和子程序调用都会压栈保存数据。子程序调用只需保存程序断点,即该指令的下一条指令的地址;中断处理不仅要保存断点($PC$的内容),还要保存程序状态字寄存器($PSW$)的内容
终端服务程序本身可能是用户程序,但是具体进入中断进行处理的程序一定是系统程序
中断处理和子程序调用都会压栈保存数据。子程序调用只需保存程序断点$PC$内容,即该指令的下一条指令的地址;中断处理不仅要保存断点($PC$的内容),还要保存程序状态字寄存器($PSW$)的内容。
### 系统调用