
1. 首先需要获取中断程序的代码,可以使用调试器或者反汇编工具得到。
2. 在代码中找到中断处理程序的入口点,并添加一个观察点或者打印语句,以便在程序执行时记录堆栈深度。
3. 调试或运行程序,当野型裂中断处理程序被触发时,记录下堆栈深度。
4. 重复多次触发中断,并记录每次的堆栈深度。
5. 最终的最大堆栈深度是所有记录中的最大值。
注意:中断程序的最大堆栈深度可能会随着不同的中颂闭断触发条件和输入数据而有所变化,因此需要对不同情况下的堆栈深度进行测试和记录。
个人理解:PSW和PC的保存一般携祥是中断控制器发出中断信号后郑隐举由硬件自动完成的,此时相当于将这些寄存器的值【临时】喊碧存在系统栈中,之后CPU跳转至相应的中断向量表项,将这些在系统栈中临时保存的寄存器进一步保存在【被中断进程】的PCB中(每个进程专有的内存页面,驻留在内存中,不会发生缺页错误中断),并且将这些临时保存的信息在系统栈中删除(防止系统栈溢出),之后中断服务程序继续处理引起中断的I/O
参见《现代 *** 作系统》1.3.4节 2.1.6节 5.1.5节
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)