全部科目 > 数据库系统工程师 >
2019年上半年 上午试卷 综合知识
第 21 题
知识点 I/O软件   设备驱动程序  
关键词 模块   设备驱动程序  
章/节 计算机软件基础知识  
 
 
设备驱动程序是直接与( )打交道的软件模块。
 
  A.  应用程序
 
  B.  数据库
 
  C.  编译程序
 
  D.  硬件
 
 




 
 
相关试题     设备管理 

  第2题    2019年上半年  
DMA控制方式是在( )之间直接建立数据通路进行数据的交换处理。

  第4题    2021年上半年  
若磁盘的转速提高一倍,则( )。

  第18题    2021年上半年  
CPU的速度要远快于打印机的速度,为解决这个速度不匹配的问题,可以使用( )。

 
知识点讲解
· I/O软件
· 设备驱动程序
 
        I/O软件
        设备管理软件的设计水平决定了设备管理的效率。从事I/O设备管理软件的结构,通常采用分层构造,即把设备管理软件组织成为一系列的层次。其中,低层与硬件相关,它把硬件与较高层次的软件隔离开来,而最高层的软件则向应用提供一个友好的、清晰且统一的接口。
        设计I/O软件的主要目标是设备独立性和统一命名。I/O软件独立于设备,就可以提高设备管理软件的设计效率。当输入/输出设备更新时,没有必要重新编写全部设备驱动程序。用户在实际应用中也可以看到,在常用操作系统中,只要安装了相对应的设备驱动程序,就可以很方便地安装好新的输入/输出设备,甚至不必重新编译就能将设备管理程序移到他处执行。
        I/O设备管理软件一般分为4层:中断处理程序、设备驱动程序、与设备无关的系统软件和用户级软件。至于一些具体分层时细节上的处理,是依赖于系统的,没有严格的划分,只要有利于设备独立这一目标,就可以为了提高效率设计不同的层次结构。
        I/O软件的所有层次及每一层的主要功能如下图所示。
        
        I/O系统的层次结构与每层的主要功能
        图中的箭头给出了I/O部分的控制流。这里举一个读硬盘文件的例子,当用户程序试图读一个硬盘文件时,需要通过操作系统实现这一操作。与设备无关软件检查高速缓存中有无要读的数据块,若没有,则调用设备驱动程序,向I/O硬件发出一个请求。然后,用户进程阻塞并等待磁盘操作的完成。当磁盘操作完成时,硬件产生一个中断,转入中断处理程序。中断处理程序检查中断的原因,认识到这时磁盘读取操作已经完成,于是唤醒用户进程取回从磁盘读取的信息,从而结束此次I/O请求。用户进程在得到了所需的硬盘文件内容之后,继续运行。
 
        设备驱动程序
        设备驱动程序是直接同输入/输出设备交互,直接对它们进行控制的软件模块。设备驱动程序的基本任务就是接收来自于上层I/O软件的抽象请求,并且去执行这个请求。例如,抽象的读操作、写操作、设备的初始化操作等。上层的I/O软件通过这些抽象的函数接口与设备驱动程序打交道,这些接口是标准的、稳定不变的。而硬件设备的具体细节被封装在设备驱动程序里面。这样,即使硬件设备发生了变化,只要更新相应的设备驱动程序即可,不会影响到上层软件对它的使用。
        设备驱动程序与具体的设备类型密切相关。每一个I/O设备都需要相应的设备驱动程序,而每一个设备驱动程序一般也只能处理一种类型的设备。因为对于不同类型的设备,它们的控制方式是不同的。例如,对于一个鼠标驱动程序来说,它需要从设备控制器中读取各种各样的信息,包括鼠标移动的位置、哪一个键被按下了等等。而对于一个磁盘驱动程序来说,它为了进行磁盘的读写操作,就必须知道扇区、磁道、柱面、磁头等各种各样的参数,并使用这些参数来控制磁盘控制器。
        一般而言,在具体实现一个设备驱动程序的时候,可以采用一种通用的结构。
        (1)检查输入的参数是否有效,如果无效,就返回一个出错报告;如果有效,就把输入的抽象参数转换为控制设备所需要的具体参数。
        (2)检查设备当前是否空闲,如果设备正忙,那么这一次的I/O请求就暂时没法完成,因此把它加入等待队列,稍后再处理。如果设备空闲,再检查硬件的状态,看是否具备了运行的条件。
        (3)设备驱动程序向设备控制器发出一连串的命令,即把这些命令写入到控制器的各个寄存器当中。
        (4)在发出控制命令后,如果这个I/O操作需要一定的处理时间,不能马上完成,那么驱动程序就会把自己阻塞起来,直到I/O操作完成。这时会发生一个中断,在这个中断处理程序里面把驱动程序唤醒。
        (5)I/O操作完成后,驱动程序还要检查出错情况。若一切正常,就返回一些状态信息给调用者。如果这是一个输入操作,还要把输入的数据上传给上一层的系统软件。
        事实上,实时内核的I/O系统的作用就像一个转换表,把用户对I/O的请求转换到相应的设备驱动程序。这样,驱动程序就能获得最原始的用户请求,并对设备进行操作。



更多复习资料
请登录电脑版软考在线 www.rkpass.cn

京B2-20210865 | 京ICP备2020040059号-5
京公网安备 11010502032051号 | 营业执照
 Copyright ©2000-2023 All Rights Reserved
软考在线版权所有