index

  • interrupt
  • 如何通知到CPU?
  • 终端处理程序是啥?
  • CPU怎么找到ISR?
  • CPU怎么知道当前中断的interrupt number?

老问题了,在网上搜罗了一圈,没有啥靠谱的回答。其实这种问题,在大学里学习的计算机基础课程里都有很好的回答。可惜网上很少有人能够把这些基础只是串起来。
啥基础知识呢?对于计算机专业的学生来说(cs student),就是《计算机组成原理》以及《操作系统》两门课。
键盘输入,这种操作就是典型的计算硬件和软件(这里的软件就是OS)相互配合来完成的。咋配合呢?
中断机制

interrupt

通俗来说,计算机外设,比如键盘发生事件(比如按下一个键)会通知到CPU, 这时CPU忙完手头的指令,就会转而执行对应的中断程序。

这句话太通俗,太笼统。那么下面细说。

如何通知到CPU?

计算机设备比如键盘会在控制总线(control bus)上发送中断请求(IRQ),CPU每次执行完一个指令都会检查一下control bus上是否有IRQ,如果有,就进入中断处理程序。

终端处理程序是啥?

就是 interrupt handler, 也叫 interrupt service routine(ISR)。操作系统开机加载的时候,会把不同设备的驱动程序也就是ISR写入内存,构成所谓的 interrupt vector table。等待CPU查阅并临幸。

CPU怎么找到ISR?

CPU里有个interrupt register,这玩意也是操作系统开机加载的时候初始化的,内容和内存里的interrupt vector对应起来,CPU根据当前的中断号(interrupt number)去register里一查,然后找到对应内存 interrupt vector 的地址,即找到ISR。

CPU怎么知道当前中断的interrupt number?

设备发送中断请求(IRQ)后,CPU感知到后会回复一个INTA(interrupt acknowledge),设备收到INTA后回复CPU该设备的 interrupt number。

reference

按下键盘计算机具体发生了点儿啥?相关推荐

  1. 计算机应用基础0006 19春在线作业1,《计算机应用基础0006》19春在线作业1 为了实现自动控制处理 需要计算机具有的基础条件是...

    <计算机应用基础0006>19春在线作业1 为了实现自动控制处理 需要计算机具有的基础条件是 (12页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便 ...

  2. 使用API绘制轮船,并实现按下键盘上的W,A,S,D键进行上下左右移动,按下+,-键实现放大和缩小功能

    使用API绘制轮船,并实现按下键盘上的W,A,S,D键进行上下左右移动,按下+,-键实现放大和缩小功能 代码中的坐标为提前在草纸上设计好的,如果想要设计其它图形,可计算各点坐标,用图形拼凑自己想要的图 ...

  3. python按键盘上哪个键运行_python通过按下键盘特定按键,开始运行python文件

    一.目的 通过按下键盘特定按键,开始运行python文件 二.code from pykeyboard import PyKeyboardEvent from pykeyboard import * ...

  4. 事件冒泡及阻止事件冒泡 事件的触发 事件参数对象 获取用户按下键盘的键

    事件冒泡及阻止事件冒泡 <!DOCTYPE html> <html lang="en"> <head><meta charset=&quo ...

  5. 黑色背景下,计算照片白色的区域面积和周长

    黑色背景下,计算照片白色的区域面积和周长 import cv2 img = cv2.imread('E:\Python-workspace\OpenCV\OpenCV/beyond.png',1)#第 ...

  6. 什么情况下单独计算机械台班,投标or签证,机械台班价如何确认?

    原标题:投标or签证,机械台班价如何确认? 经过调研,我们发现大家通常在投标报价,工程变更.签证,班组结算.机械台班用量大定额与实际不符的情况下都会要亲自对机械台班进行询价,其中有82%的用户询价频率 ...

  7. Enter的使用计算机,Win7系统下键盘Enter回车键五大功能介绍

    win7系统电脑下好好利用键盘上的按键能够提高我们的工作操作效率,不同的键盘就组合都有奇妙的功能.相信大家对Enter回车键都很熟悉吧,其实在win7系统Enter回车键不仅只有简单的换行和确定功能, ...

  8. 学的计算机专业但是键盘打字非常慢怎么办,win10系统下键盘打字反应慢迟钝的解决方法...

    最近有win10系统用户到本站反映说碰到这样一个情况,就是在使用键盘打字的时候,发现出现反应慢和迟钝的现象,总是会慢半拍,这是怎么回事呢,针对这个问题,随小编一起来看看win10系统下键盘打字反应慢迟 ...

  9. linux系统下键盘按键的重新映射——xmodmap工具和xev工具

    虽然linux下小键盘还是不能用,但是找到一篇好文章 linux系统下键盘按键的重新映射--xmodmap工具和xev工具 文章目录 1. xev工具: 2. xmodmap工具 大家会不会有时候,感 ...

最新文章

  1. c# lock (obj) 与 lock (this) 区别
  2. go实现重新给metric打标签上传到prometheus_案例分析|云原生监控Prometheus对样本rate计算,出现标签重复?...
  3. 校园计算机故障解决方论文法,计算机故障与处理-计算机专业毕业论文.pdf
  4. MyBatis Plus自定义SQL使用条件构造器QueryWrapper
  5. 简单七步让你轻松安全迁移网站
  6. 程序员买房与程序员转型
  7. [转载]如何做到 jQuery-free?
  8. PageHelper分页时超过最大数量的页数仍然返回数据,PageHelper分页失效
  9. html的语义化面试题,html面试题
  10. log4j 日志级别_log4j-Mybatis(5)
  11. 李宏毅机器学习 1.Machine Learning_introduction
  12. 授权MySQL账户访问指定数据库
  13. Serial Interface之I2C:关于DS1624 2线通信SDA保持时间的说明
  14. 更改VS2010,VS2008,VS2012等指定默认浏览器操作方式
  15. 图像分割学习笔记_1(opencv自带meanshift分割例子)
  16. vue.js 父子组件间 props 数据同步处理
  17. 电脑C盘软件搬家,一键解决C盘不够用问题!
  18. HTML期末作业我的家乡静态网页设计
  19. python pyodbc使用方法
  20. 云服务器1M带宽表示什么意思,购买服务器时如何选择服务器带宽?

热门文章

  1. 收藏,光纤光缆60条必备知识!
  2. Bootstrap - 前端框架
  3. 可以赚钱的副业项目,简单易上手兼职副业推荐
  4. 为什么单片机定时器的TH和TL都要设置?
  5. 利用huffman编码对文本文件进行压缩与解压(java实现)
  6. 大厂技术实现 | 爱奇艺文娱知识图谱的构建与应用实践 @自然语言处理系列
  7. 嵌入式学习笔记7——串口通信
  8. 计算机视觉知识表征,计算机视觉基础 - 边缘和轮廓检测
  9. 分享一个matplotlib柱状图
  10. 实验1 蓝桥ROS1机器人入门 适用kinetic/melodic/noetic