我已经阅读了几页有关中断处理的内容,而且我越来越对操作系统实际选择执行中断处理程序的方式感到困惑。
我读了以下内容:
CPU通过发出中断确认来向硬件提出这个问题('中断服务程序在哪里?'),硬件通过在数据总线上放置一个中断向量号来回答问题。 CPU使用中断向量编号来找出中断服务程序的位置。
这是其中一项,另一项包括
这有什么意义,哪一个实际上是正确的?
答案 0 :(得分:3)
根据您使用的实际硬件,这实际上会发生很大变化。
概述如下:
您正在询问步骤6和7.步骤6取决于中断控制器。一些中断控制器实际上是处理器内部的物理内部,在这种情况下,"问"只是读取正确的内存地址。有些是在总线上,在这种情况下,处理器必须取得总线的所有权,向中断控制器发出信号,并使用中断线号进行回复。
步骤7完全由OS定义。操作系统可能有一个映射中断线的表来中断函数处理程序,并且该表可能是预定义的(通常是固定硬件布局的嵌入式系统上的情况),或者可能在启动期间确定,因为系统发现了什么设备附在它上面。