当前位置: 首页 > news >正文

键盘输入a,到屏幕显示,操作系统做了什么

首先,假定操作系统有中断系统。

  1. 等待的键盘写入的时候,txt进程被read函数阻塞。
  2. 输入a之后,首先控制器,把扫描到的a放入到了控制器的寄存器中。
  3. 触发硬中断通知cpu—> 中断IO控制方式,由硬件触发的。键盘读入中断
  4. cpu触发软中断,调用键盘驱动程序,将a读入到读队列中。
  5. 然后txt进程从阻塞态,变成就绪态。
  6. txt进程调用receivefrom函数,将a读入到用户态内存中。
  7. 之后,调用write函数,发生内核态到用户态的转换,将a写入到写队列中。
  8. 写队列中有内容,触发硬中断通知cpu----> 缓冲满中断
  9. cpu触发软中断,调用屏幕的驱动程序。
  10. 写完之后,触发硬中断,通知cpu已经写完了,cpu读取到了硬件状态寄存器的状态,发现没有问题,就通知显示屏幕显示。----> 屏幕写完中断

总结一下参与者

  1. txt进程
  2. 键盘
  3. 显示器
    注意这里没有explore进程和所谓的定时读的进程。因为控制方式是中断方式,所以一旦队列中有内容之后,会触发中断,而不是定时轮询。另外由于键盘和显示屏幕都是字符设备。所以采用中断方式,而不是DMA方式进行IO,那么就是以字节为单位进行的输入输出。一旦有了一个字节到缓冲队列,就会直接触发中断。

最后

键盘输入到内存这一块没啥问题,但是对于屏幕显示,我看有的文章中说,是由某一进程,定时刷新做的。这里还是假定是txt进程进行了系统调用,将内容写到屏幕上。就像ctrl+s,将内容写入到磁盘上一样。

http://www.lryc.cn/news/11118.html

相关文章:

  • Python机器学习入门笔记(2)—— 分类算法
  • Docker镜像发布到阿里云和私有库
  • 初识CSS,美化HTML
  • 华为OD机试 - 二维矩阵的最大值(Python)
  • 华为OD机试 - 快递业务站(Python)
  • 百度沈抖:文心一言将通过百度智能云对外提供服务
  • cmd 窗口、记事本打开后一片空白且几秒钟后闪退的问题解决方案汇总
  • Linux 安装 SNMP服务
  • 华为OD机试 - 滑动窗口最大和(Python)
  • 用Nacos搭建微服务操作
  • ChatGPT模型采样算法详解
  • 【Unity3d】Unity与iOS通信
  • RDD的持久化【博学谷学习记录】
  • Python3 正则表达式
  • Qt-基础
  • ABB机器人将实时坐标发送给西门子PLC的具体方法示例
  • 反向传播与梯度下降详解
  • Skywalking ui页面功能介绍
  • 哪里可以找到免费的 PDF 阅读编辑器?7 个免费 PDF 阅读编辑器分享
  • 使用梯度下降的线性回归(Matlab代码实现)
  • 在Ubuntu上设置MySQL可以远程登录
  • 清风1.层次分析法
  • 「首席架构师推荐」免费数据可视化软件你喜欢哪一个?
  • 深度学习术语解释:backbone、head、neck,etc
  • 基础篇—CSS margin(外边距)解析
  • ChatGPT或将引发新一轮失业潮?是真的吗?
  • 【Selenium学习】Selenium 中特殊元素操作
  • Spark相关的依赖冲突,后期持续更新总结
  • 【每日一题Day122】LC1237找出给定方程的正整数解 | 双指针 二分查找
  • 笔记本加装固态和内存条教程(超详细)