王优秀|A 字母时,操作系统期间发生了什么...,键盘敲入( 四 )


我们先来看看CPU的硬件架构图:
王优秀|A 字母时,操作系统期间发生了什么...,键盘敲入
文章图片
CPU里面的内存接口 , 直接和系统总线通信 , 然后系统总线再接入一个I/O桥接器 , 这个I/O桥接器 , 另一边接入了内存总线 , 使得CPU和内存通信 。 再另一边 , 又接入了一个I/O总线 , 用来连接I/O设备 , 比如键盘、显示器等 。
那当用户输入了键盘字符 , 键盘控制器就会产生扫描码数据 , 并将其缓冲在键盘控制器的寄存器中 , 紧接着键盘控制器通过总线给CPU发送中断请求 。
CPU收到中断请求后 , 操作系统会保存被中断进程的CPU上下文 , 然后调用键盘的中断处理程序 。
键盘的中断处理程序是在键盘驱动程序初始化时注册的 , 那键盘中断处理函数的功能就是从键盘控制器的寄存器的缓冲区读取扫描码 , 再根据扫描码找到用户在键盘输入的字符 , 如果输入的字符是显示字符 , 那就会把扫描码翻译成对应显示字符的ASCII码 , 比如用户在键盘输入的是字母A , 是显示字符 , 于是就会把扫描码翻译成A字符的ASCII码 。
得到了显示字符的ASCII码后 , 就会把ASCII码放到「读缓冲区队列」 , 接下来就是要把显示字符显示屏幕了 , 显示设备的驱动程序会定时从「读缓冲区队列」读取数据放到「写缓冲区队列」 , 最后把「写缓冲区队列」的数据一个一个写入到显示设备的控制器的寄存器中的数据缓冲区 , 最后将这些数据显示在屏幕里 。
显示出结果后 , 恢复被中断进程的上下文 。
-EOF-
Python学习交流群
【王优秀|A 字母时,操作系统期间发生了什么...,键盘敲入】为了让大家更加即时地沟通学习 , 我们建了一个Python学习交流群 , 有想入群的同学 , 可以添加下面小助手微信 , 他会拉大家入群哈~