中断的意思是在做一件事情的时候临时打个岔,中途去做另外一件事情,然后再回来。这好比拍一下中央处理器的肩膀,告诉她有一件事情需要她过来帮个小忙。
为了获得中断的益处,需要在io接口和中央处理器之间架设专门的线路,用来传送中断信号。而且,每种外部设备都分配了各自不同的中断号。一旦有了中断,计算机的内存里可以放置多个不同的程序,而不是像以前那样每次只能有一个。
和以前一样,中央处理器每次依然只能执行一个程序。但是,当中断发生的时候(比如她来自声卡),中央处理器就中断当前程序的执行,把下一条指令的地址;连同各个寄存器的内容都临时保存起来,这叫做“保护现场”。然后,她响应中断,跳到另一个程序那里接着执行。
注意,中央处理器只知道闷着头干活,为了使她不至于迷路,每个利用中断工作的程序,在她的最后都应当是一条中断返回指令。
中断可能会来自任何地方,对于现代的计算机来说,中断是无时不有的,在你一眨眼的工夫,差不多就发生了无数的中断,比如键盘上的某个键被按下,鼠标又动了一下,如此,等等。别的不说,光是你计算机内部的那个钟表,她每隔55毫秒左右就要在cpu的肩膀上重重的来那么一下子。据我所知,面对无休止的搅扰,处理器的脾气可能是最好的。
个人理解:
中断信号应该包括:(1)、该中断属于那个程序。(2)、运行该程序的哪个指令。操作系统会把该指令放到地址计数器中,cpu才能完成具体的功能任务。
1、各个程序在网卡上的端口,有新来的数据时,会产生中断(这是网络传输情况下产生的中断)
2、当用户打开本机一个软件时,当然也会产生中断,让cpu运行该软件。(操作系统作用之一就是程序管理,完成这个功能是职责之一)
如果没有中断,当你在手机上看小说的时候,将无法接听任何人打给你的电话——最大的可能是,她们根本就打不通。