最专业网站建设公司,站长工具成品源码,wordpress 后台速度,板绘网课平台哪个好首先#xff0c;假定操作系统有中断系统。
等待的键盘写入的时候#xff0c;txt进程被read函数阻塞。输入a之后#xff0c;首先控制器#xff0c;把扫描到的a放入到了控制器的寄存器中。触发硬中断通知cpu— 中断IO控制方式#xff0c;由硬件触发的。键盘读入中断cpu…首先假定操作系统有中断系统。
等待的键盘写入的时候txt进程被read函数阻塞。输入a之后首先控制器把扫描到的a放入到了控制器的寄存器中。触发硬中断通知cpu— 中断IO控制方式由硬件触发的。键盘读入中断cpu触发软中断调用键盘驱动程序将a读入到读队列中。然后txt进程从阻塞态变成就绪态。txt进程调用receivefrom函数将a读入到用户态内存中。之后调用write函数发生内核态到用户态的转换将a写入到写队列中。写队列中有内容触发硬中断通知cpu---- 缓冲满中断cpu触发软中断调用屏幕的驱动程序。写完之后触发硬中断通知cpu已经写完了cpu读取到了硬件状态寄存器的状态发现没有问题就通知显示屏幕显示。---- 屏幕写完中断 总结一下参与者 txt进程键盘显示器 注意这里没有explore进程和所谓的定时读的进程。因为控制方式是中断方式所以一旦队列中有内容之后会触发中断而不是定时轮询。另外由于键盘和显示屏幕都是字符设备。所以采用中断方式而不是DMA方式进行IO那么就是以字节为单位进行的输入输出。一旦有了一个字节到缓冲队列就会直接触发中断。 最后 键盘输入到内存这一块没啥问题但是对于屏幕显示我看有的文章中说是由某一进程定时刷新做的。这里还是假定是txt进程进行了系统调用将内容写到屏幕上。就像ctrls将内容写入到磁盘上一样。