首先要问,什么是设备驱动程序?
又名设备处理程序,是I/O系统的高层与设备控制器之间的通信程序(起一个翻译的作用)。
这个东西能干什么?
- 接收由与设备无关的软件发来的命令和参数,并将命令中的抽象要求转换为与设备相关的底层操作序列
- 检查用户I/O请求的合法性
- 发出I/O命令,如果设备空闲,便立即启动I/O设备,完成指定的I/O操作
- 及时响应由设备控制器发来的中断请求,并根据中断类型调用相应的中断处理程序进行处理
简要来说就是启动指定设备,完成上层指定的I/O工作
设备驱动程序的特点
略,书上193页有
设备处理方式
为每一类设备设置一个进程,专门用于执行这类设备的I/O操作(一对一)
在整个系统中,设置一个I/O进程,专门用于执行系统中所有各类设备的I/O操作(一对多)
不设置专门的设备处理进程,而只为各类设备设置相应的设备驱动程序,供用户或系统进程调用。
设备驱动程序的处理过程:
- 将抽象要求转化为具体要求
- 对服务请求进行校验
- 检查设备的状态
- 传输必要的参数
- 启动I/O设备
由上图可以看出,CPU变得越来越闲了,干其他事情干得更多。
与中断驱动I/O方式相比,程序I/O方式把时间都浪费在等待I/O设备完成数据I/O的循环测试中。