设某计算机有4级中断A、B、C、D,其硬件排队优先级次序为A>B>C>D。如表所示列出了执行每级中断服务程序所需的时间。 如果以执行中断服务程序的时间作为确定中断优先级的尺度:时间越短优先级越高。 如果A、B、C、D分别在6μs、8μs、10μ

admin2018-07-17  23

问题 设某计算机有4级中断A、B、C、D,其硬件排队优先级次序为A>B>C>D。如表所示列出了执行每级中断服务程序所需的时间。

    如果以执行中断服务程序的时间作为确定中断优先级的尺度:时间越短优先级越高。
如果A、B、C、D分别在6μs、8μs、10μs、0μs时刻发出中断请求,请画出CPU执行中断服务程序的序列。

选项

答案各级中断发出的中断请求信号的时刻,画出CPU执行中断服务程序的序列,如下图所示。第0μs时,D请求到来,由于没有其他的中断请求,所以开始执行中断服务程序D。第6μs时,A请求到来,A的优先级高于D,转去执行中断服务程序A。第8μs时,B请求到来,由于B的优先级低于A,所以不响应B请求,继续执行中断服务程序A。第10μs时,C请求到来,C的优先级最高,虽然此时中断服务程序A还没结束,也必须暂停转去执行中断服务程序C。中断服务程序C所需时间为3μs,当第13μs时,中断服务程序C执行完毕,返回执行中断服务程序A。第14μs时,中断服务程序A执行完毕(共执行5μs),返回执行中断服务程序D。第20μs时,中断服务程序D执行完毕(共执行12μs),返回现行程序。因为B请求还存在,所以此时开始执行中断服务程序B,直至35μs结束(共执行15μs)。 [*] 注意:有同学会问执行完D为什么要返回现行程序再响应B的中断,这是因为B的中断在有A、C、D的条件下B中断都是被屏蔽而暂时不响应的,而当上述3种中断执行完毕后,回到主程序,B中断才不被屏蔽,所以这时候才会直接响应B的中断,如果不回到主程序而直接响应B的中断是错误的。

解析
转载请注明原文地址:https://jikaoti.com/ti/LAfjFFFM
0

最新回复(0)