全部科目 > 程序员 >
2017年下半年 上午试卷 综合知识
第 28 题
知识点 编程语言   设备驱动程序  
关键词 编程语言   开发   设备驱动程序   语言  
章/节 软件基础知识  
 
 
适合开发设备驱动程序编程语言是( )。
 
  A.  C/C++
 
  B.  Visual Basic
 
  C.  Python
 
  D.  Java
 
 




 
 
相关试题     程序语言类型和特点 

  第66题    2012年下半年  
HTML中的<p> </p>标记用来定义(66)。

  第34题    2009年上半年  
C语言具有的“(34) ” 特性使其适用于系统级应用开发。

  第35题    2009年上半年  
以下关于脚本程序语言的叙述中,错误的是(35)。

 
知识点讲解
· 编程语言
· 设备驱动程序
 
        编程语言
        尽管高级语言能够完成大部分的嵌入式软件开发工作,但汇编语言仍然不可替代。汇编语言可以直接对硬件进行操作,代码效率高,所以经常应用在系统移植以及直接控制硬件的场合。此外,良好的汇编基础也有助于程序的调试。
        越是高级的语言,其编译和运行的系统开销就越大,应用程序也越大,运行越慢。因此一般来说,编程人员都会首选汇编语言和C语言,然后才会考虑C++语言或Java语言。
 
        设备驱动程序
        设备驱动程序是直接同输入/输出设备交互,直接对它们进行控制的软件模块。设备驱动程序的基本任务就是接收来自于上层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
软考在线版权所有