免费智能真题库 > 历年试卷 > 程序员 > 2017年下半年 程序员 上午试卷 综合知识
  第28题      
  知识点:   编程语言   设备驱动程序
  关键词:   编程语言   开发   设备驱动程序   语言        章/节:   软件基础知识       

 
适合开发设备驱动程序编程语言是( )。
 
 
  A.  C/C++
 
  B.  Visual Basic
 
  C.  Python
 
  D.  Java
 
 
 

 
  第66题    2010年下半年  
   28%
(66)属于Web客户端脚本语言。
  第34题    2009年上半年  
   50%
C语言具有的“(34) ” 特性使其适用于系统级应用开发。
  第28题    2017年上半年  
   29%
通用程序设计语言可用于编写多领域的程序,( )属于通用程序设计语言。
   知识点讲解    
   · 编程语言    · 设备驱动程序
 
       编程语言
        尽管高级语言能够完成大部分的嵌入式软件开发工作,但汇编语言仍然不可替代。汇编语言可以直接对硬件进行操作,代码效率高,所以经常应用在系统移植以及直接控制硬件的场合。此外,良好的汇编基础也有助于程序的调试。
        越是高级的语言,其编译和运行的系统开销就越大,应用程序也越大,运行越慢。因此一般来说,编程人员都会首选汇编语言和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的请求转换到相应的设备驱动程序。这样,驱动程序就能获得最原始的用户请求,并对设备进行操作。
   题号导航      2017年下半年 程序员 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第28题    在手机中做本题