什么是中断?中断前后cpu在做那些操作?
2014-07-27 23:17
531 查看
所谓中断是指系统发生某一事件后,CPU暂停正在执行的程序转去执行处理该事件的程序过程,处理中断事件的程序称为中断处理程序,产生中断信号的那个部件称为中断源。硬件的中断机构与处理这些中断的程序统称为中断系统。
当中断发生时,硬件机构自动地进入响应中断过程,由操作系统的中断处理程序对中断事件进行处理,具体过程如下:
①.保存现场
系统开辟现场区,并将现场区组织成“栈”结构,当中断响应时,(1)硬件结构自动将PS和PC寄存器的内容压入栈中作为现场信息保存起来。(2)根据发生的中断,硬件从指定的中断向量单元中取出PS和PC内容,分别装入PS和PC寄存器,同时正确填入寄存器的“当前状态”和“先前状态”字段。
②.分析原因,转中断处理程序
不同原因产生的中断事件要进行不同的处理,根据中断的路寄存器内容得出发生该种中断的具体原因。转入相对应的中断处理程序运行。
③.恢复现场
在多级中断系统中,考虑退回当前中断时,必须依据原先被中断的程序,完成不同的工作,中断处理结束后,软件必须退出中断。如果此次是高级中断,并且被中断的程序是一个低级中断处理程序,则此次中断应返回到该低级中断处理程序。如果原来被中断的是用户程序,则退出中断前应先考虑进行一次调度选择,以挑选出更适合在当前情况下运行的新程序。
当中断发生时,硬件机构自动地进入响应中断过程,由操作系统的中断处理程序对中断事件进行处理,具体过程如下:
①.保存现场
系统开辟现场区,并将现场区组织成“栈”结构,当中断响应时,(1)硬件结构自动将PS和PC寄存器的内容压入栈中作为现场信息保存起来。(2)根据发生的中断,硬件从指定的中断向量单元中取出PS和PC内容,分别装入PS和PC寄存器,同时正确填入寄存器的“当前状态”和“先前状态”字段。
②.分析原因,转中断处理程序
不同原因产生的中断事件要进行不同的处理,根据中断的路寄存器内容得出发生该种中断的具体原因。转入相对应的中断处理程序运行。
③.恢复现场
在多级中断系统中,考虑退回当前中断时,必须依据原先被中断的程序,完成不同的工作,中断处理结束后,软件必须退出中断。如果此次是高级中断,并且被中断的程序是一个低级中断处理程序,则此次中断应返回到该低级中断处理程序。如果原来被中断的是用户程序,则退出中断前应先考虑进行一次调度选择,以挑选出更适合在当前情况下运行的新程序。
CPU工作方法分为中断模式和查询模式. 查询模式就是说CPU轮翻的对外设顺序访问,比方说它先看看键盘有没被按下有的话处理,没的话继续往下看鼠标有没有移动再看看打印机印的怎么样了,再看...等等..显然查询方式的效率低.但稳定可靠. 中断模式时就是说CPU不主动访问这些设备,,只管处理自己的任务,没任务就闲着.也就是说在那等着.如果有设备要与CPU联系,或要CPU处理一些事情,他会给CPU发一个中断请求信号.一种情况是这时CPU就会放下正在进行的工作而去处理这个外设的要求.这叫做响应中断.处理完中断后,CPU返回去继续执行中断以前的工作.还有一种情况如果CPU这时正在做更重要的事情他就会让这个设备先在那等着.有空时响应他.如果同时有好几个设备都要CPU来处理,CPU就会从按重要程度来逐个处理.这就是中断和中断的优先级
相关文章推荐
- 什么是中断?中断发生时cpu做什么工作?
- [Hb-II] push pop指令 中断时CPU的工作(中断的入栈操作)
- 什么是中断,为什么要用中断?
- 在PPC上面用.NET CF开发应用需要注意些什么——(一)CPU、OS以及CLR差别简述
- x86 CPU的操作模式
- 服务器CPU是什么?
- Global.asax中各事件应注意那些操作以及有关的常见问题看法
- LDAP是什么?Php如何操作LDAP
- 那些商人败类们在想什么
- 什么操作可以解锁
- 服务器CPU是什么
- 长期操作电脑 应该知道什么
- AD操作异常,该服务器不可操作,是什么原因?
- Win9x用Visual C++实现CPU特权指令操作
- 最近有些朋友问我我们在写的室外自然场景引擎用了些什么技术具体在那些
- [收藏]恢复在为数据库添加多一个ndf文件时,中断操作所置疑的数据库.
- 以后不要考虑那些生活中的细节问题,什么事做到问心无愧即可!
- 中断为什么能够被cpu立即响应?
- 什么是X86 CPU?
- svchost.exe(system)进程使CPU100%运做是什么问题!