1、共(6)页,第(1)页河北科技大学硕士学位研究生20142015 学年第 1 学期操作系统与驱动开发课程期末考试试卷学院 信息学院 专业 电路与系统 姓名 程莉 学号 2201414007 题号 一 二 三 四 五 六 总分得分一单项选择题(每小题 1 分,共 10 分)1. 操作系统的 D 管理部分负责对进程进行调度。A.主存储器 B.控制器 C.运算器 D.处理机2. 分时操作系统通常采用 B 策略为用户服务。A.可靠性和灵活性 B.时间片轮转C.时间片加权分配 D.短作业优先3. 很好地解决了“零头”问题的存储管理方法是 A 。A 页式存储管理 B 段式存储管理 C 多重分区管理 D 可
2、变式分区管理4. 用 WAIT、SIGNAL 操作管理临界区时,信号量的初值应定义为 B 。A.-1 B.0 C.1 D.任意值5. 在进程管理中,当 C 时,进程从阻塞状态变为就绪状态 。A.进程被进程调度程序选中 B.等待某一事件C.等待的事件发生 D.时间片用完6. 某系统中有 3 个并发进程,都需要同类资源 4 个,试问该系统不会发生死锁的最少资源数 B 。A.9 B.10 C.11 D.127. 虚拟存储器管理系统的基础是程序的 B 理论。A.全局性 B.局部性 C. 动态性 D.虚拟性8. 从用户的角度看,引入文件系统的主要目的是 D A.实现虚拟存储 B.保存系统文档共(6)页,
3、第(2)页C.保存用户和系统文档 D.实现对文件的按名存取9. 操作系统中采用多道程序设计技术提高 CPU 和外部设备的 A A. 利用率 B.可靠性 C.稳定性 D.兼容性10. 缓冲技术中缓冲池在 C 中。A主存 B. 外存 C. ROM D. 时间片轮转二 填空(每空 0.5 分,共 15 分) 。11. 进程存在的唯一标志是 PCB 。12. 通常进程实体是由 程序块 、 进程控制块 和 数据块 三部分组成。13. 磁盘访问时间由 寻道时间 、 旋转延迟时间 和传输时间组成。14. 作业调度是从后备作业队列中选一些作业,为它们分配资源,并为它们创建 进程 。15. 文件的物理组织有顺序
4、、 链接 和索引。16. 若一个进程已经进入临界区,则其它欲要进入临界区的进程必须_等待_。17. 信号量的物理意义是,当信号量值大于零时其值表示 可分配资源的个数 ;当信号量值小于零时,其绝对值表示 等待使用该资源的进程的个数 。18. 静态重定位在 程序装入 时进行;而动态重定位在 程序运行 时进行。19. 分区管理中采用“最佳适应”分配算法时,宜把空闲区按 长度递增 次序登记在空闲区表中。20. 所谓系统调用,就是用户在程序中调用 操作系统 所提供的一些子功能。21. 把 逻辑 地址映射为 物理 地址的工作称为地址映射。22. 设备管理中采用的数据结构有 设备控制表 、 控制器控制表 、
5、 通道控制表 、 系统设备表 等四种。23. 从资源管理(分配)的角度,I/O 设备可分为 独占设备 、 共享设备 和 虚拟设备 三种。24. 设备与控制器之间的接口信号主要包括 数据 、 状态 和 控制 。25. DMA 控制器由三部分组成,分别为主机与 DMA 控制器的接口、 DMA 控制器与块设备的接口和 I/O 控制逻辑 。三名词解释(每小题 2.5 分,共 10 分) 。26. 虚拟存储器 答:虚拟存储器是指在具有层次结构存储器的计算机系统中,自动实现部分装入和部分替换功能,能从逻辑上为用户提供一个比物理贮存容量大得多,可寻址的“主存储器” 。共(6)页,第(3)页27. 死锁答:死
6、锁是指两个或两个以上的进程在执行过程中,因争夺资源而造成的一种互相等待的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。28. 进程答:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。29. 设备独立性答:为了提高操作系统的可适应性和可扩展性,在现代操作系统中都毫无例外地实现了设备独立性,也称为设备无关性。设备独立性是指操作系统把所有外部设备统一当作成文件来看待,只要安装它们的驱动程序,任何用户都可以象使用文件一
7、样,操纵、使用这些设备,而不必知道它们的具体存在形式。四简答题(每小题 4 分,共 20 分)。30. 简述死锁的产生原因和产生死锁的四个必要条件。答:产生死锁的原因主要是:(1) 因为系统资源不足。(2) 进程运行推进的顺序不合适。(3) 资源分配不当等。如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。产生死锁的四个必要条件:共(6)页,第(4)页(1) 互斥条件:一个资源每次只能被一个进程使用。(2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。(3) 不剥
8、夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。(4) 循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之一不满足,就不会发生死锁。31. 用图形描述进程的三种基本状态转换图,并解释状态转换原因答:三种基本状态是就绪、执行和阻塞状态,其转换图如下:进程三种状态的转换原因:1、处于就绪状态的进程当进程角度程序为之分配了处理机后该进程便由就绪状态变为执行状态;2、当前进程因发生某事件而无法执行如访问已被占用的临界资源就会使进程由执行状态转变为阻塞状态;3、当前进程因时间片用完而被暂停执行该进程便由执
9、行状态转变为就绪状态32. 简述分段和分页存储管理的主要区别。答:页和分段系统有许多相似之处,但在概念上两者完全不同,主要表现在:1、页是信息的物理单位,分页是为实现离散分配方式,以消减内存的外零头,提高内存的利用率;或者说,分页仅仅是由于系统管理的需要,而不是用户的需要。段是信息的逻辑单位,它含有一组其意义相对完整的信息。分段的目的是为了能更好的满足用户的需要。2、页的大小固定且由系统确定,把逻辑地址划分为页号和页内地址两部分,是由机器硬共(6)页,第(5)页件实现的,因而一个系统只能有一种大小的页面。段的长度却不固定,决定于用户所编写的程序,通常由编辑程序在对源程序进行编辑时,根据信息的性
10、质来划分。3、分页的作业地址空间是维一的,即单一的线性空间,程序员只须利用一个记忆符,即可表示一地址。分段的作业地址空间是二维的,程序员在标识一个地址时,既需给出段名,又需给出段内地址。33. 试说明什么是 SPOOLing 系统,并说明其组成。答:SPOOLing (即外部设备联机并行操作) ,即 Simultaneous Peripheral Operation On-Line 的缩写,它是关于慢速字符设备如何与计算机主机交换信息的一种技术,通常称为“假脱机技术” 。其组成:1、输入井输出井 2、输入缓冲区和输出缓冲区 3、输入 SPi 和输出 SPo34. 试说明设备驱动程序的作用。答:
11、设备驱动程序的功能有如下几点:1、接收由 I/O 进程发来的命令和参数,并将命令中的抽象要求转换为具体要求,例如,将磁盘块号转换为磁盘的盘面、磁道号及扇区号。2、检查用户 I/O 请求的合法性,了解 I/O 设备的状态,传递有关参数,设置设备的工作方式。3、发出 I/O 命令,如果设备空闲,便立即启动 I/O 设备去完成指定的 I/O 操作;如果设备处于忙碌状态,则将请求者的请求块挂在设备队列上等待。4、及时响应由控制器或通道发来的中断请求,并根据其中断类型调用相应的中断处理程序进行处理。5、对于设置有通道的计算机系统,驱动程序还应能够根据用户的 I/O 请求,自动地构成通道程序。共(6)页,
12、第(6)页五设计题(45 分)在 Windows XP 系统下,开发了一种采用虚拟仪器技术的基于 PCI 总线的 4数字电压表。其硬件框图如下图所示。其中 ICL7135 是一款经典的 4数字电压表芯片,其外围电路简单,使用方便。而 PCI9054 也是一款常用的 PCI 桥路转接芯片。在两者之间采用 FPGA 芯片完成局部端总线与 ICL7135 的接口逻辑。上位机通过 PCI 总线控制 ICL7135 的启动/ 保持,以及采样速率。ICL7135 的转换结果通过 PCI 总线送达上位机显示。PCI9054 FPGA ICL7135PCI 通过查阅资料解决如下问题:(1) Windows X
13、P 系统下,设备驱动的机制是什么?其设备驱动程序有什么特点?(10 分)(2) Windows XP 系统下,开发设备驱动程序的一般过程是什么?有哪些开发工具?(10分)(3) 以本应用为例,要求在工程中开发本虚拟仪器的驱动程序,给出详细的开发方案(包括开发工具与环境、开发过程、各功能的实现方法、提供的接口函数等)。(25 分,可加页)答:(1)机制:NT 内核框架设备驱动程序特点:1、支持即插即用和电源管理。即插即用是指外部设备可以在系统运行时添加或删除,操作系统可以在任何时候分配血药的硬件医院。因而可以动态配置设备。电源管理是指设备对系统电源的使用情况是动态变化的。2、支持类驱动、微驱动程
14、序分层结构。多个驱动层之间相互联系,既可以接收来自上共(6)页,第(7)页城驱动的服务,也可以向下层传递 IRP 请求。类驱动程序是针对一个特定类设备的驱动程序,处理这一类设备的 IRP 请求。3、 提供系统总线驱动程序。WIN 提供了系统总线驱动程序,通过系统总线驱动程序,设备驱动程序实现物理设备的底层控制和资源配置。4、 支持 WMI WMI 是一种向系统管理员报告管理信息的协议,这个协议能测量和管理消耗在本地或网络中客户机上的资源信息。(2)一般过程 :1、驱动开发环境的搭建1)DDK 驱动开发包,提供了很多有用的工具用于驱动程序的开发和调试2)驱动程序的编译,在 VC 环境下开发驱动程
15、序。2、驱动程序的结构1)驱动程序的头文件和入口点2)创建设备例程卸载驱动例程3)编写驱动程序开发工具:DDK(Device Development Kit) ,设备开发包的意思。一般指 windows 设备驱动程序开发包。WinDriver 是一个用于驱动开发的工具包。它具有跨平台特性。DriverStudio 是一套用来加速微软 Windows 设备驱动程序的开发和调试的核心工具。DriverStudio 能加速开发,调试,测试,调整和配置你的 VXD,WDM 和 Windows NT 驱动程序。NI-VISAVISA 是个通用的仪器驱动标准,国际上有专门的联盟,制定这个标准,很多大型的仪
16、器厂商的产品都遵循这个标准,无论是 USB、串口、GPIB 或是以太网。(3)开发方案:开发环境:WDM编程环境开发工具:WDM驱动程序开发工具 为了简化驱动程序的开发,缩短开发周期,常用的方法是使用Numage公司提供的开发工具Driver Studio,这是一个开发工具包(包含VtoolsD,Driver Works和SoftICE等开发工具)。其中的Driver Works是Compuware公司开发的工具,它提供了一系列类。这些类包含了许多更为底层的操作并且为一般驱动操作提供了服务函数。由于其驱动程序开发采用面向对象的框架结构,因而开发过程比较简单易行。 共(6)页,第(8)页PCI总
17、线(即外围部件互连总线)它的时钟频率为33MHz,有32位数据总线,可支持突发传输模式,数据传输峰值速率高达132 MBs。此外,PCI总线还可扩展为64位数据总线,扩展后的数据传输峰值速率高达264 MBs,并支持即插即用功能而且独立于处理器。PCI9054是PLX公司推出的PCI接口芯片。它支持本地总线2.2版规范,工作频率为033 MHz,可提供C、M、J三种本地工作模式,本地端到PCI总线的猝发传输速率高达132 MBs。该芯片具有可编程的Serial EEPROM接口,可用于配置PCI9054的部分内部配置寄存器。该器件内部有6种可编程的FIFO,可以进行数据的发送与接收,而其两种内
18、部配置寄存器PCI Configuration Register和Local Configuration Register,可在本地端支持主模式、从模式租DMA传输方式驱动程序完成的主要功能如下:(1)接收应用传送的符号率,配置符号率; (2)接收应用程序传送的控制字,配置AD9851用作外部FIFO数据传输的时钟; (3)设置数据传输为DMA方式,直到接收到应用程序发来的停止数据采集命令为止。驱动要保证数据传输顺利进行。 本设计使用Driver Works来开发WDM驱动程序。 基于Driver Works的WDM驱动程序框架 这里所要生成的是PCI设备的驱动程序。采用DMA方式传输时,生成
19、WDM驱动程序框架的主要步骤如下: (1)从VC+中启动Driver Works,设置驱动程序名称及存放的路径,设计时可取驱动名称为BPSKDRIVER;(2)选择工程类型为WDM DRIVER; (3)选择驱动类型为WDM Function Driver; (4)选择硬件总线类型为PCI,在这里要注意,PCI Vendor ID和PCI Device ID应根据硬件信息填写; (5)添加存储器空间和IO空间所需的类对象,添加DMA资源,使用设备接口打开设备;(6)用控制代码完成应用程序和驱动的交互,即在应用程序中使用Device IO Control来完成应用程序向驱动传输数据。驱动程序的创
20、建及安装文件的修改为了正确的创建WDM驱动程序,首先要建立WDM编程环境,并创建自己的库文件。参考文件中提供了一种WDM编程环境的建立方法:(1)首先安装DDK;共(6)页,第(9)页(2)在开始菜单中选择Compuware Driver StudioDevelop下的DDK Build Setting; (3)在打开的对话框中的DDK Root Directory中设置DDK的根目录(如E:WINDDK2600),然后点击Launch Program,并打开Compuware DriverStudio的Driver Works文件夹中Source里的VdwLibs.dsw文件。(4)选择Bu
21、ild菜单中的Set Active Project Configuration,并在弹出的对话框中选择合适的Project configurations。而对于现行的32位机,它不需要像Win32 AMD64 Free等这样的工程;(5)选好一个工程后,点击OK,然后点击Build with BUILD.EXE即可生成所需的库。然后再根据自己的需要重新选择新的Project configurations,以进行库的创建。库文件生成之后,即可打开创建好的驱动程序,并在VC+的菜单中打开DDK Build Setting,再在DDK Root Directory中设置DDK的路径为实际安装的路径,之后点击Build图标,就可以生成BPSKDRIVER.sys文件了。另外,驱动的类型可以自己设定,Windows系统定义了一系列的设备类名和GUID,找到驱动工程文件中后缀名为.inf的安装文件,将其内容修改成与硬件信息一致就可以了。