自然优先级顺序,由高到低:
INT0 T0 INT1 T1 S。
中断号:
0 1 2 3 4。
有5个中断源,两个外中断,两个定时器中断,一个串口中断,外中断标志是IF0,IF1;定时器中断标志是TF0,TF1串口中断标志是RI,TI外中断和定时器中断硬件置位,硬件清零,软件不用管,串口中断必须使用软件清零(向TI和RI写0)
扩展资料:
中断系统中,CPU一般根据各中断请求的轻重缓急分别处理,即给每个中断源确定一个中断优先级别,系统自动对它们进行排队判优,保证首先处理优先级别高的中断请求,待级别高的中断请求处理完毕后,再响应级别较低的中断请求。
对多个中断源进行识别和优先级排队的日的就是要确定出最高级别的中断源,并形成该中断源的中断服务程序入口地址,以便CPU将控制转移到该中断服务程序去。
参考资料来源:百度百科-中断优先级
硬件故障中断、试管访问中断、程序中断、外部中断、输入输出中断。 根据中断事件的重要性和紧急程度来确定中断的优先级。中断优先级在硬件设计中是固定的,不同的系统对优先级的划分是不同的。一般来说,优先级从高到低的顺序是:硬件故障中断、访问中断、程序中断、外部中断、输入输出中断。一般来说,中断设备以预定的顺序响应同时发生的中断事件。这种预先确定的顺序被称为中断的优先级。中断设备首先响应高优先级的中断事件,然后响应低优先级的中断事件。在实际系统中,经常会遇到多个中断源同时请求中断的情况。这时,CPU必须确定首先服务哪个中断源,以及服务的顺序。解决方法是中断优先级排队,即根据中断源请求的优先级,排列中断处理的优先级,也称为优先级,优先级最高的中断请求先得到响应。另外,CPU在处理一个中断时,应该能够响应另一个优先级更高的中断请求,屏蔽同级或下级的中断请求,形成中断嵌套。中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。
中断流程图如下:
中断过程
按照事件发生的顺序,中断过程包括:
①中断源发出中断请求
②判断当前处理机是否允许中断和该中断源是否被屏蔽
③优先权排队
④处理机执行完当前指令或当前指令无法执行完,则立即停止当前程序,保护断点地址和处理机当前状态,转入相应的中断服务程序
⑤执行中断服务程序
⑥恢复被保护的状态,执行“中断返回”指令回到被中断的程序或转入其他程序。
上述过程中前四项 *** 作是由硬件完成的,后两项是由软件完成的。
扩展资料
众所周知,处理器的速度跟外围硬件设备的速度往往不在一个数量级上,因此,如果内核采取让处理器向硬件发出一个请求,然后专门等待回应的办法,显然降低内核效率。
既然硬件的响应这么慢,那么内核就应该在此期间处理其他事务,等到硬件真正完成了请求的 *** 作之后,再回过头来对它进行处理。想要实现这种功能,轮询(polling)可能会是一种解决办法。可以让内核定期对设备的状态进行查询,然后做出相应的处理。
不过这种方法很可能会让那个内核做不少无用功,因为无论硬件设备是正在忙碌着完成任务还是已经大功告成,轮询总会周期性的重复执行。更好的办法是由我们来提供一种机制,让硬件在需要的时候再向内核发出信号(变内核主动为硬件主动),这就是中断机制。
中断使得硬件得以与处理器进行通信。举个例子,在你敲打键盘的时候,键盘控制器(控制键盘的硬件设备)会发送一个中断,通知 *** 作系统有键按下。中断本质是一种特殊的电信号,由硬件设备发向处理器。
处理器接受到中断后,会马上向 *** 作系统反映此信号的到来,然后就由os负责处理这些新到来的数据。硬件设备生成中断的时候并不考虑与处理器的时钟同步——换句话说就是中断随时可以产生。因此,内核随时可能因为新到来的中断而被打断。
不同的设备对应的中断不同,而每个中断都通过一个惟一的数字标识。因此,来自键盘的中断就有别于来自硬盘的中断,从而使得 *** 作系统能够对中断进行区分,并知道哪个硬件设备产生了哪个中断。这样, *** 作系统才能给不同的中断提供不同的中断处理程序。
在它执行程序的时候,如果有另外的事件发生(比如用户又打开了一个程序)那么这时候就需要由计算机系统的中断机制来处理了。
中断机制包括硬件的中断装置和 *** 作系统的中断处理服务程序。
让硬件在需要的时候再向内核发出信号。
参考资料来源:百度百科-中断机制
参考资料来源:百度百科-中断
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)