设备驱动程序是I/O系统的高层与设备控制器之间的通信程序,其主要任务:
接收上层软件发来的抽象I/O要求,如read、write等命令;
再把它转化为具体要求,发送给设备控制器,启动设备去执行。
反方向,它也将由设备控制器发来的信号,传送给上层软件。
1.驱动程序的功能
(1)接收由与设备无关的软件发来的命令和参数,并将命令中的抽象要求,转换为与设备相关的低层操作序列;
(2)检查用户I/O请求的合法性,了解I/O设备的工作状态,传递与I/O设备操作有关的参数,设置设备的工作方式;
(3)发出I/O命令,如果设备空闲,便立即启动I/O设备,完成指定的I/O操作;如果设备忙碌,则将请求者挂在设备队列上等待;
(4)及时响应由设备控制器发来的中断请求,并根据其中断类型,调用相应的中断处理程序进行处理。
2.设备驱动程序的特点
(1)驱动程序是与设备无关的软件和设备控制器之间通信和转换的程序。
(2)驱动程序,与设备控制器和I/O设备的硬件特性,紧密相关。
(3)驱动程序与I/O设备所采用的I/O控制方式紧密相关。
(4)由于驱动程序与硬件紧密相关,因而其中的一部分必须用汇编语言编写。
(5)驱动程序应允许可重入,一个正在运行的驱动程序常会在一次调用完成前被再次调用。
3.设备处理方式
具体分类
(1)为每一类设备设置一个进程,专门用于执行这类设备的I/O操作。这种方式比较适合于较大的系统;
(2)在整个系统中设置一个I/O进程,专门用于执行系统中所有各类设备的I/O操作。也可以设置一个输入进程和一个输出进程,分别处理系统中的输入或输出操作;
(3)不设置专门的设备处理进程,而只为各类设备设置相应的设备驱动程序,供用户或系统进程调用。这种方式目前用得较多。
4.驱动程序处理过程
I/O设备与控制器间的通信转换程序
了解抽象命令,了解控制器内部的寄存器结构
与硬件密切相关,每类设备配备一种驱动程序
功能:接受解释指令(有通道的系统,自动通道程序)、相关判断、发送设备命令、响应中断
特点,控制方式不同程序不同,部分固化进硬件,代码可重入。
5. I/O控制方式
程序I/O方式
1、中断驱动I/O方式
2、直接存储器访问DMA(字节—块)
3、I/O通道控制方式(组织传送的独立)
宗旨:减少主机对I/O控制的干预,将CPU从繁杂的I/O控制事物中解脱出来。