全站数据
8 4 2 0 5 8 1

有谁知道键盘缓冲区的作用

草根金融家 | 简单学习,快乐成才!         
问题更新日期:2024-10-20 22:45:54

问题描述

有谁知道键盘缓冲区的作用,麻烦给回复
精选答案
最佳答案

首先从原理上解释一下键盘驱动工作原理,当我们GETCHAR的时候,实际上是用户态程序要求读键盘的内核态的缓冲区(在LINUX系统里其实是个队列),然而这时候该缓冲区内为空(那么该进程SLEEP,也就是您说的屏幕等待状态),这时如果你按下键盘,通过键盘中断驱动程序,把你输入的字符载入内核态的键盘缓冲区(入队列),同时唤醒因为读该缓冲区而SLEEP的进程.读取该字符后,因为是在内核态,而我们GETCHAR()函数就是把内核态内的数据,转移到用户态,内核台缓冲区因字符被读取而出队列(如果无其它情况,键盘的内核缓冲区队列为空),GETCHAR()函数是通过系统调用来实现的,该函数最终肯定是以RETURN来返回结果,而在我们调用GETCHAR()函数后,RETURN的结果以被放入寄存器中.

随机推荐