设备驱动程序

    我们已经知道.用户或者应用程序是通过操作系统使用设备的,而操作系统并不直接操纵设备,操作系统通过管理设备的驭动程序来间接使用设备。
    设备驭动程序(Device Driver)是由生产设备厂家提供的,所有与设备相关的代码都放在设备驭动程序中。如果设备的类别差别很小.系统可以屏蔽其差别.使用同一个程序代码操纵这个设备。在计算机系统中,键盘、显示器、鼠标等都作为标准设备.操作系统使用标准的设备驱动程序,为用户提供这些设备的使用。
    如果一个性能和原理完全不同的设备,例如激光打印机和针式打印机就是两种不同类型的设备,系统需要分别为其建立驭动程序。实际上由于性能上的差异.为了使设备能够发挥最大效能.往往同一类不同型号的设备都采用专门的驭动程序。
    每个设备的电路中都有若干个接受命令的端口,而驱动程序就是向这些端口发出命令或者读取端口的状态,并把这些状态通知操作系统。例如我们需要打印翰出.操作系统负贵把打印的要求和打印的数据传翰给打印机的驱动程序,或者启动打印驱动程序到某个区城中去读取打印命令或数据,操作系统剩下的工作获是查看打印状态:是否在打印、是否出现打印错误、是否打印结束等。整个打印工作由骆动程序和打印机交互完成。当然操作系统在处理打印前需要为打印任务进行数据组织。
    驱动程序向设备端口发出命令之后.操作系统有两种处理方法。一是等待设备完成操作.驭动程序阻寒自己.等待操作完成后解除阻塞。这种阻塞的目的是防止设备还没有执行完前一个操作而接受新的命令导致操作发生混乱。另一种是不需要阻塞的情况,如鼠标操控屏幕的滚动,往往在很短时间内就被执行完毕(显示器控制处理速度很快,但实际显示需要时间是大为受到显示器本身的扫描速度限制).因此系统可以不需耍阻塞,直接再继续对其进行进一步的操作。
    操作系统需要检查设备驭动程序的工作状态以决定采取何种处理。如果一切正常,则可以进行新的进程.如打印多个任务时.完成了一个打印后启动排在打印队列中的下一个新的打印进程。如果发现有问题则需要判断问题的性质,并进行相应的处理,如告诉用户不能打印的原因是打印机缺纸,或者打印机塞纸导致打印机发生故障。
蜂王浆的副作用

原文地址:https://www.cnblogs.com/aukle/p/3235626.html