显示器 输出设备
1、程序调用库函数printf();
2、开始调用系统函数write(),同时确定是需要访问的终端tty。
3、在字符设备接口的函数数组crw_table[]中找到对应的输出函数。
4、根据上面终端tty,确定是进入终端输出函数tty_write()。
5、将字符流写到缓存队列中(弥补IO设备与CPU速度不匹配)。
6、显示器调用con_write()把缓存队列中的字符流显示出来。
图一:输出过程
键盘 输入设备
按下键盘开始中断
1、扫描按下的键 查询扫描码 并且翻译成对应的ASCII码。
2、把ASCII码放到read_q缓冲队列的头部,进行相应后再放到secondary队列中,等待系统的使用。
3、在此同时部分的信息还需要回显,比如打了字需要在屏幕上面显示,所以被处理过后的信息还需要放入write_q队列中,然后执行显示器写,最后显示到显示器上。
图二:输入过程