zoukankan      html  css  js  c++  java
  • 中断的内部实际执行情况

    访问设备还有一点和访问内存不同。内存只是保存数据而不会产生新的数据,如果CPU不去读
    它,它也不需要主动提供数据给CPU,所以内存总是被动地等待被读或被写。而设备往往会自
    己产生数据,并且需要主动通知CPU来读这些数据,例如敲键盘产生一个输入字符,用户希望
    计算机马上响应自己的输入,这就要求键盘设备主动通知CPU来读这个字符并做相应处理,给
    用户响应。这是由中断(Interrupt)机制实现的,每个设备都有一条中断线,通过中断控制器连
    接到CPU,当设备需要主动通知CPU时就引发一个中断信号,CPU正在执行的指令将被打断,
    程序计数器会设置成某个固定的地址(这个地址由体系结构定义),于是CPU从这个地址开始
    取指令(或者说跳转到这个地址),执行中断服务程序(ISR,Interrupt Service Routine),完
    成中断处理之后再返回先前被打断的地方执行后续指令。比如某种体系结构规定发生中断时跳
    转到地址0x0000 0010执行,那么就要事先把一段ISR程序加载到这个地址,ISR程序是由内核
    代码提供的,中断处理的步骤通常是先判断哪个设备引发了中断,然后调用该设备驱动程序提
    供的中断处理函数(Interrupt Handler)做进一步处理。

  • 相关阅读:
    哈希表
    java读写xml文件
    Java学习之Hessian通信基础
    DevExpress 中 gridView编辑单元格,失去焦点后,内容继而消失
    DevExpress控件的GridControl控件小结
    Spring 架构图
    WebLogic和Tomcat的区别
    EJB到底是什么,真的那么神秘吗??
    C# 枚举类型
    关于C#的Main(String[] args)参数输入问题
  • 原文地址:https://www.cnblogs.com/notepi/p/2874112.html
Copyright © 2011-2022 走看看