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

  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,将内容写入到磁盘上一样。

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

  1. C语言练习题,编写程序实现以下功能。从键盘输入一个整数,若输入数字0,则屏幕显示:“Sunday“;若输入数字1,则屏幕显示:“Monday“;若输入数字2,则屏幕显示:“Tuesday“;若输入数字

    编写程序实现以下功能.从键盘输入一个整数,若输入数字0,则屏幕显示:"Sunday":若输入数字1,则屏幕显示:"Monday":若输入数字2,则屏幕显示:&q ...

  2. (java)从键盘输入一行英文字符串,只统计字符串中出现的每个英文字母的个数。大小写字母算相同的字符,不做区分,例如a和A,算相同字符。

    问题描述] 从键盘输入一行英文字符串,只统计字符串中出现的每个英文字母的个数.大小写字母算相同的字符,不做区分,例如a和A,算相同字符. [输入形式] 输入一行英文字符串. [输出形式] 以合适的形式 ...

  3. java如何从屏幕输入数字_关于java的从键盘输入,从显示屏上输出?怎么做?为什么?...

    看了一本java的入门书,但是其中居然没有讲到java的泛型编程,其实现在我学习java陷入的困境,很迷惑.java中有无数的类,尤其是关于流的那块,类数之不尽,但是关于从键盘输入和从显... 看了一 ...

  4. 使用BIOS进行键盘输入和磁盘读写---汇编学习笔记

    汇编笔记 使用BIOS进行键盘输入和磁盘读写 17.1 int 9中断例程对键盘输入的处理 17.2 使用int 16h中断例程读取键盘缓冲区 17.3 字符串的输入 17.4 应用int 13h中断 ...

  5. Cocos2Dx之处理键盘输入

    键盘输入在Cocos2Dx分为两个部分.第一部分是一些功能键的处理:后退键和菜单键.第二部分是处理字符输入.功能键相关的代码位于cocos2dx\keypad_dispatcher.字符输入的代码位于 ...

  6. 【问题描述】3.1.5 用整数1~7依次表示星期一至星期日。由键盘输入一个整数,输出对应的英文表示,如果输入的整数在1~7之外,输出“Error”信息。【样例输入1】1【样例输出1】Monda

    [问题描述]3.1.5 用整数1~7依次表示星期一至星期日.由键盘输入一个整数,输出对应的英文表示,如果输入的整数在1~7之外,输出"Error"信息. [样例输入1]1 [样例输 ...

  7. C语言:从键盘输入两个字符串,输出第一个字符串在第二个字符串中的位置

    从键盘输入两个字符串,输出第一个字符串的首字母在第二个字符串中的位置. 如"abc"在"bbbacccabcddaw3"的位置为7. 悬赏分:50 | 解决时间 ...

  8. Cocos2Dx之处理键盘输入-欧阳左至

    键盘输入在Cocos2Dx分为两个部分.第一部分是一些功能键的处理:后退键和菜单键.第二部分是处理字符输入.功能键相关的代码位于cocos2dx\keypad_dispatcher.字符输入的代码位于 ...

  9. 【ubuntu】ubuntu端向日葵键盘输入卡顿

    文章目录 1.问题现象 2.解决思路 3.操作过程 附录:ubuntu输入法框架 1.问题现象 最近,利用向日葵远程操控ubuntu电脑时,出现键盘输入延迟的情况.具体表现为:鼠标操作正常.网页打开正 ...

最新文章

  1. android ViewPager 不带滑动效果切换item
  2. 文本打开方式和二进制打开方式的区别是什么?
  3. SpringMVC+Mybatis学习
  4. Data URI scheme 在 html 中嵌入小图片
  5. 聚类方法(Clustering)
  6. mvn 使用中的错误
  7. python基础for循环和while循环(十)
  8. 北京语言大学计算机科学与技术研究生好考吗,北京语言大学计算机科学与技术专业研究生培养方案...
  9. 解决Eclipse中文乱码的问题
  10. 猫眼电影的android源代码!,微信小程序入门demo之猫眼电影
  11. 洛必达法则-求导的方法求解出极限
  12. java排座位程序_java随机排座位
  13. 个人实用软件清单(佛系更新中……)
  14. react指定ref的三种方式
  15. 40、卤代烷灭火系统模拟喷气试验
  16. Vue+EleMentUI实现el-table-colum表格select下拉框可编辑
  17. git删除未监视的文件(untracked files)命令用法
  18. CSUSTOJ 我爱吃烧烤 (状压dp)
  19. JSP cookie详解
  20. SlickEdit 之windows 版本安装

热门文章

  1. RabbitMQ处理MES调度任务
  2. 功率因数-视在功率-无功功率
  3. 机器学习建模-糖尿病肾病预测模型
  4. 【邮政运作管理】中国邮政的SWOT分析
  5. 基于asp.net 校园快递管理系统的设计与实现
  6. javacv利用ffmpeg实现录屏和录音,输出为mp4文件
  7. AD15元器件向导封装
  8. 【UI】前端常用特效
  9. 百战RHCE(第十四战:Linux进阶命令十一-nmcli 配置网络极简管理)
  10. 从Android启动过程中kernel日志确认Flash(分区)大小