中断学习

Posted on 2010-05-07 22:00  雅飞士  阅读(346)  评论(0编辑  收藏  举报

     知道中断这个词是在微机原理的课程中,当时接触不多也不是很了解,按照我当时的想法,中断是这样子的: cpu正在做 1+1=? ,当它读到+的时候,突然来了个不速之客,说那边有个紧急情况,你赶紧过去,cpu说你先等会,我去保存下,于是呢,它就把  1+1=? 这个题的物理位置,读到的位置(即+ 的这个位置)等一些必要的信息装在自己的口袋中(即就是所谓的寄存器,我觉得跟人的口袋差不多,这个过程就是所谓的“保护现场”),然后说,走,好了。出发了,去处理那个紧急情况了。时间不长,处理完了。暂时没紧急情况了,继续我的题目吧,还没做完呢,从口袋中拿出刚才保存的东西(这就是传说中的恢复现场),继续读,读到=的时候,又来了人,说那边又叫了,你赶紧去吧,cpu很不愿意,真是的,连个1+1都不让人算完,但又有什么办法呢,谁叫你是cpu呢。好吧,把刚才的东西再装到口袋里走吧。这样,重复着上面的动作,总算是把这个1+1算完了。

     中断,即就是从中间断开,但又不是真正的断开,形象一点就是:在地上放一根绳,从中间提起一点,而提起的那点就是中断。

     再次认识中断是在操作系统课程和组成原理课程中。中断概念的出现以及中断机制的引入,使得操作系统才有了今天的发展。引进中断的最初目的是为了提高计算机系统的输入输出性能,但到现在,中断已经在多道程序,分时系统,实时处理,程序监视和跟踪等众多领域得到广泛应用。

 

     在单cpu时代,好多计算机都配有8259A可编程中断控制器。那么cpu如何知道此时有中断发生呢。在8259A中有引脚线与外部设备相连,外部设备就通过引脚线给cpu传送中断信号,那cpu又如何知道是哪个设备发生中断呢?   这里有两种方法进行识别:

    1。查询中断识别法: 中断识别程序逐个查询系统上的每个设备,检查设备的中断请求触发器的状态即可知道哪个设备发生的中断。这种方法对于有很多设备的系统来说,太浪费时间。

    2. 向量中断识别法,通过中断向量,即可知道中断服务程序的入口地址,这样cpu就可以直接过去进行处理,省了很多的时间。 但该方法又会增加硬件的开销,需要一个中断向量表。  因此将上述两种方法结合起来效果会更好。

 

  中断分为内部中断和外部中断。外部中断主要是外部设备的中断和不可屏蔽的中断。 内部中断主要包括内部硬件中断和软件中断。

 

  中断也有优先级,这样可以让一些特别紧急的事件及时得到处理,这样的话,就引入了中断嵌套的概念,它允许高优先级的中断打断低优先级的中断,即就是在处理中断时遇到中断。

 

 

 

    中断的内容很多,具体的可以阅读相关知识。

Copyright © 2024 雅飞士
Powered by .NET 9.0 on Kubernetes