代码之家  ›  专栏  ›  技术社区  ›  Protostome

从我们按下键盘上的某个键开始,直到它出现在word文档[关闭]中,会发生什么

  •  11
  • Protostome  · 技术社区  · 16 年前

    这个问题是在我的工作面试中提出的。。我只是想看看我是否提供了所有的细节。。。

    3 回复  |  直到 16 年前
        1
  •  41
  •   Pavel Radzivilovsky    16 年前
    • 机械开关短路将R1电阻端拉到地上
    • 一个特殊的多路复用器将它转换成一条消息,以减少电线的数量
    • 由嵌入键盘中的CPU解释的信息
    • 消息转换为USB协议消息,并作为一系列0到5伏之间的交流电压脉冲进行调制
    • USB接收集线器定期测量采样线电压
    • 主机集线器控制器将消息转换为数据
    • 数据通过USB总线控制器进入PC,连接到PCIE总线,通过IRQ通知和DMA传输的组合,由总线驱动程序发出
    • 总线驱动程序解释消息并将其沿着驱动程序堆栈转发,最终转发给HID驱动程序
    • DefWindowProc()将WM\u KEYDOWN转换为WM\u CHAR。当键处于关闭状态时,可能会创建多个WM\u字符。
    • Word应用程序捕获WM\u CHAR,将另一个字符添加到文档模型中,并发出UI的重新呈现
    • UI呈现引擎通过加载相应的字体将unicode代码点转换为图形图像
    • 图形引擎计算整个区域的新图像以避免闪烁,并将其逐像素地放到屏幕上
        2
  •  11
  •   zed_0xff    16 年前
    1. 听到咔嗒声;)[但在这一步上没有必要,也许在第10或第20步]
    2. 键盘信号到kb控制器
    3. 控制器向CPU发出中断
    4. 操作系统内核看到中断
    5. 驱动程序告诉CPU从kb控制器读取字符码
    6. 内核调度事件

        3
  •  1
  •   Barrie Reader    16 年前

    如果你有一台旧的二进制计算机: http://en.wikipedia.org/wiki/Punched_card

    推荐文章