由于计算机的计时码表指示分配给某个进程的时间间隔(时间片)终止而发生的中断,被分为同步中断还是异步中断?
答案 0 :(得分:2)
时间中断,因为硬件中断被视为所有异步硬件中断。尽管这会导致混乱,但让我解释一下:
同步中断是与cpu指令时钟同步发生的中断,这意味着它们在指令流中的确切时刻发生。通常,这些同步中断称为(由于这个原因)陷阱。它们是由CPU内部生成的某些事件引起的。它们可以是预见的(例如被0除)或oveflow,也可能是不可预知的,例如堆栈过低(此处没有双关);或页面错误(cpu生成的地址属于不存在的页面)。它们的处理机制相同:cpu停止指令序列,并跳转到某个地方的中断处理程序。
时间中断发生在精确的时间点,但是CPU时钟与挂钟不同步,因此您无法准确预测中断发生在什么指令上。因此,它们被认为是异步的。考虑一下,如果某个指令可能发生中断,但上一条指令或下一条指令也可能发生中断,那么它是异步的。
异步属性意味着发出中断时,您不能假设任何有关先前上下文的信息。如果发生溢出或页面错误,您可以获取有关事件的信息,以确定发生了什么(例如,导致页面错误的地址是什么,或者产生陷阱的数字是多少),但是当硬件中断CPU时,您的过程通常与产生中断的事件完全无关。在执行某些计算时,可能会发生磁盘就绪中断,因此您无法从上一个堆栈帧中获得任何有用的信息。
有一类特殊的陷阱(同步中断)很有趣,因为它们确实是由希望它们发生的程序产生的,它们是软件中断(或软件陷阱)。用于获取系统服务(通常称为系统陷阱或系统调用),它们需要完全隔离(出于保护目的)系统调用之前的环境,但是它们允许将任意数量的信息传递给内核< / em>。