【问题标题】:Why is an interrupt caused at the END of an operation?为什么在操作结束时会产生中断?
【发布时间】:2014-08-18 22:15:33
【问题描述】:

我正在阅读设备控制器,但对以下几点感到困惑:

设备控制器通知 CPU 它已完成 通过引起中断来操作

对我来说,这似乎违背了中断是什么的直观概念,即“停止(活动或过程)的持续进展”。中断不应该在控制器的开始或整个执行过程中发生,然后在控制器完成后停止吗?

例如,如果我在我的计算机上发送一个命令来打印一个文档,我想象有一条消息从打印机发送到 PC 以表明它的执行结束,但我当然不会想到它作为一个中断。如果 I/O 设备已完成执行,那不应该为操作系统释放更多资源吗?

【问题讨论】:

  • 中断不必“停止”任何事情。它实际上只是一个信号,意思是“做某事”,如果它是来自键盘的中断,它不会停止进程,它会告诉调度程序获取输入并用它“做某事”。

标签: operating-system interrupt device-driver


【解决方案1】:

看,中断基本上与您的想法相反!

中断只是为了通知CPU这个操作已经完成!请帮助从物理内存中删除此进程,从而释放资源!

中断也是在开始时触发的,但是,你能想象如果中断在进程执行中每次都挂起会发生什么吗? CPU 不会因为每次大量调用而感到沮丧,而按照正常程序很容易避免这种情况!

在结束时(以及在开始时)引起中断是一个相当有效的步骤,因为此时 CPU 正忙于执行其他任务,它成为 device controller to cause interrupt 的工作来通知 CPU Hey CPU, the work has been done, please free the resources and kill the process!

这里可悲/效率低的部分在哪里???

【讨论】:

    【解决方案2】:

    中断通知 CPU 需要注意外部设备。外部设备完成操作后可能需要注意,因为可能需要 CPU 处理操作结果,从而释放外部设备资源,以便再次使用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-19
      相关资源
      最近更新 更多