首页 > 其他分享 >键盘敲入 A 字母时,操作系统期间发生了什么?

键盘敲入 A 字母时,操作系统期间发生了什么?

时间:2023-08-28 16:34:53浏览次数:38  
标签:窗口 操作系统 程序 键盘 敲入 缓冲区

键盘敲入 A 字母时,操作系统期间发生了什么?

关于8.1 键盘敲入 A 字母时,操作系统期间发生了什么?的总结,前面都介绍了,但是在最后总结操作系统发生了什么的时候,我觉得有点不详细,于是写一写自己的补充和理解,不一定正确。

  1. 键盘敲击之后,键盘控制器根据敲击的键生成扫描码,写入寄存器同时通过中断控制器向CPU发出中断请求。CPU接到中断请求后即停止正在执行的程序,保存现场,转入键盘中断服务程序。
  2. 中断服务程序从寄存器中读出键盘扫描码转换成Ascii码与扫描码一起存入键盘缓冲区。然后即返回原程序运行。

而显示是另外程序的事。有些程序选择只读不显示,比如游戏控制。有的程序不要求输入比如计算一百万位圆周率,键盘输入会一直存缓冲区,缓冲区(一般16个字符)满了就丢弃。有的程序需要即时操作,在读缓冲区之前会先清除缓冲区等你新鲜按键。比如赛车游戏,在开始加载时你瞎按了一些键。如果不清除,等赛车就位就可能先瞎转一气当一个程序需要键盘输入时,即查询键盘缓冲区,如果有按键即读入,如果没有就等待一直到键盘缓冲区中有新的输入。键盘中断与程序读键盘类似生产者与消费者。瓜农(操作系统)听到西瓜熟了的声音(中断)就去把瓜拣了放入仓库。用户(程序)想吃瓜就去仓库,如果有就抱走,如果没有就死等。如果西瓜成熟没有声音,瓜农就只好整天在瓜地转悠(轮询),这样效率很低。

这时候你可能会想,输入缓冲区只有一个,操作系统如何对应知道当前的输入对应哪一个程序?

焦点和活动窗口: 操作系统会跟踪当前的活动窗口,即用户正在与之交互的窗口。这个窗口可能是用户最后点击的窗口,或者是用户通过任务切换等方式设定的。操作系统知道哪个窗口是活动窗口,并因此决定将键盘输入发送到这个窗口。
活动窗口或应用程序会拥有一个事件队列。当键盘输入发生时,操作系统会创建一个键盘事件,并将其放入活动窗口的事件队列中。
应用程序通常在事件循环中不断地检查事件队列。当应用程序发现有新的键盘事件时,它会从事件队列中取出事件并执行相应的处理。这可能包括更新用户界面、执行特定操作或进行其他适当的响应。



标签:窗口,操作系统,程序,键盘,敲入,缓冲区
From: https://www.cnblogs.com/chenchen4396/p/17662687.html

相关文章

  • 操作系统总结
    1、硬件结构2、系统结构3、进程管理4、内存管理......
  • VMware虚拟机ubuntu和主操作系统硬盘之间的文件共享的实现
    安装vmware-tools就能实现文件共享 1.在虚拟机种加载linux.iso文件。Settings-Hardware-CD/DVD(IDE)-Useisoimagefile中加入linux.iso文件。PS:这个文件可以在VMware的安装目录下找到:\ProgramFiles\VMware\VMwareWorkstation\linux.iso 2.启动虚拟机进入/mnt/cdrom目录cd/......
  • 深入理解操作系统中进程与线程的区别及切换机制(上)
    进程所谓进程,大家可以理解为我们打开的应用程序,如微信、QQ、游戏等,但也有系统应用是我们看不见的,可以打开任务管理器一探究竟,我们写的代码程序在服务器上在不运行的情况下,它就是一个二进制文件,并不是进程!一个进程可以包含一个或者多个线程,但对于CPU来说他就是一个任务而已;在......
  • shell命令概述 Shell作用:命令解释器 介于操作系统内核与用户之间,负责解释命令行 获得
    shell命令概述Shell作用:命令解释器介于操作系统内核与用户之间,负责解释命令行获得命令帮助内部命令help命令的“--help”选项使用man命令阅读手册页命令行编辑的几个辅助操作Tab键:自动补齐反斜杠“\”:强制换行快捷键Ctrl+U:清空至行首快捷键Ctrl+K:清空至行尾快捷键Ctr......
  • 操作系统学习笔记(三)——内存管理
    一、虚拟内存将进程所用的地址隔离开,让操作系统为每个进程分配独立的一套虚拟地址。虚拟内存可以使进程的运行内存超过物理内存的大小。进程持有的虚拟地址会通过CPU芯片中的内存管理单元(MMU)的映射关系,来转换变成物理地址,然后再通过物理地址访问内存,如下图所示:有两种映射方......
  • 【操作系统】第一章 操作系统发展历程
    1.手工操作阶段所有运算工作需人工干预缺点:1.一个用户占用全机,导致资源利用率低2.CPU由于需要等待手工操作,利用不充分2.批处理阶段主要为了解决人工操作的问题,批处理系统的主要优点在于全自动处理,效率高。1.单道批处理系统主要有:自动性、顺序性和单道性的特征。缺点在于......
  • 操作系统学习笔记(二)——操作系统结构
    一、内核作为应用和硬件设备之间的桥梁,负责应用程序只与内核交互,不用关心硬件的细节。4个基本能力:管理进程、线程,决定哪个进程、线程使用CPU,也就是进程调度的能力;管理内存,决定内存的分配和回收,也就是内存管理的能力;管理硬件设备,为进程与硬件设备之间提供通信能力,也就是硬......
  • 操作系统学习笔记(一)——硬件
    一、冯诺依曼模型定义计算机基本结构为5个部分:存储器、运算器、控制器、输入设备、输出设备。运算器和控制器在中央处理器(CPU)里,存储器就是常见的内存,输入输出设备就是计算机外接的设备,比如键盘是输入设备,显示器是输出设备。1、内存 程序和数据存储在内存里,存储数据的基本单......
  • MFC视频教学第一课,做一个简单的界面,理解应用程序和操作系统之间的消息传递机制
     #include<windows.h>#include<stdio.h>LRESULTCALLBACKWinSunProc(HWNDhwnd,UINTuMsg,WPARAMwParam,LPARAMlParam);//WinMain是操作系统调用的,是系统的入口函数intWINAPIWinMain(HINSTANCEhInstance,//当前应运程序......
  • CentOS操作系统忘记密码处理方法
    开机后在改画面按e键找到‘linux16’开头的行,修改‘ro’为‘rwinit=/sysroot/bin/sh’,进入单用户模式,按ctrl+x进入以后......