不同的外部设备、不同的体系结构、不同的OS其中断实现机制都有差别。
中断存在的意义是CPU控制外部设备的同时,外部设备也可以高效的“控制CPU”。这种设计思想扩展到了外部硬件控制CPU、软件控制CPU、CPU运行管理等三个方面。因此,使用events事件表示,更加贴切实际,但在平时描述中,基本上仍然采用了中断这个词。
events的分类如下图所示,主要包括中断和异常,外部硬件控制CPU对应hardware interupt,软件控制CPU对应software interrupt,CPU运行管理则对应exception。(所以脑子里还是要丰富这个认识)
(你整得戳得代码就容易产生异常,你如果对这个没有映像,说明友友你是个软件小能手。)
什么是中断
中断是为了解决外部设备完成某些工作后通知CPU的一种机制(譬如硬盘完成读写操作后通过中断告知CPU已经完成)。早期没有中断机制的计算机就不得不通过轮询来查询外部设备的状态,由于轮询是试探查询的(也就是说设备不一定是就绪状态),所以往往要做很多无用的查询,从而导致效率非常低下。由于中断是由外部设备主动通知CPU的,所以不需要CPU进行轮询去查询,效率大大提升。(中断的意义)
从物理学的角度看,中断是一种电信号,由硬件设备产生,并直接送入中断控制器(如8259A)的输入引脚上,然后再由中断控制器向处理器发送相应的信号。处理器一经检测到该信号,便中断自己当前正在处理的工作,转而去处理中断。此后,处理器会通知OS 已经产生中断。这样,OS就可以对这个中断进行适当的处理。不同的设备对应的中断不同,而每个中断都通过一个唯一的数字标识,这些值通常被称为中断请求线。
全部0条评论
快来发表一下你的评论吧 !