北航操作系统课程-20200423课堂小测-设备管理之IO设备管理

2020-04-23-课堂小测-设备管理之IO设备管理


北京航空航天大学计算机学院-2020春操作系统课程
以下题目作者为北航计算机学院操作系统课程组,客观题答案由课程组给出,解析及主观题答案均为博主原创,水平有限,如有错误敬请批评指正。


1. 总线是接入I/O设备的主要方式:(判断)

答:正确

在这里插入图片描述

总线是接入IO设备的主要方式,如图所示,其可以满足接入形式各异的不同IO设备。


2. 按数据组织分类,I/O设备可以分为哪两类?(填空)

答:块设备和字符设备

块设备:以数据块为单位存储、传输信息。传输速率较高、可寻址(随机读写)

字符设备:以字符为单位存储、传输信息。传输速率低、不可寻址。


3. MIPS平台的I/O端口地址是:(单选)

A. 内存映像编址;

B. I/O独立编址(I/O专用指令)

答:A

I/O指令形式与I/O地址是相互关联的,主要有:内存映像编址(内存映像I/O模式)——控制器的内存/寄存器作为物理内存空间的一部分和I/O独立编址(I/O专用指令)——Intel 体系架构in/out指令。MIPS采用的是内存映像编址,将IO映射到kseg1。


4. 有将大量数据读入内存时应采用:(单选)

A. 程序控制I/O

B. 中断驱动方式

C. 直接存储访问方式

答:C

程序控制I/O,也称轮询或查询方式I/O,它由CPU代表进程向I/O模块发出指令,然后进入忙等状态,直到操作完成之后进程才能够继续执行。中断驱动,当I/O操作结束后由设备控制器 主动地来通知设备驱动程序说这次结束,而不是设备驱动程序不断地去轮询看看设备的状态。DMA,直接存储器访问方式, 是由一个专门的控制器来完成数据从内存到设备或者是从设备到内存的传输工作。程序控制和中断驱动都需要占用一定的CPU资源,而当大量数据写入时比较好的方式时DMA,将IO交由专门的控制器。


5. 设备独立性是实现了:(单选)

A. 应用程序与物理设备无关

B. 应用程序与物理设备相关

C. 物理设备之间独立

D. 物理设备之间相关

答:A

为了实现设备独立性而引入了逻辑设备和物理设备这两个概念,在应用程序中,使用逻辑设备名称来请求使用某类设备,而系统在实际执行时,还必须使用物理设备名称。系统需具有将逻辑设备名称转换为某物理设备名称的功能,这非常类似于存储器管理所 介绍的逻辑地址和物理地址的概念,在应用 程序中使用的是逻辑地址,系统在分配和使用内存时,必须使用物理地址。


6. 设备驱动程序是哪些部分组成:(多选)

A. 自动配置和初始化子程序

B. I/O操作子程序

C. 中断服务子程序

答:A、B、C

自动配置和初始化子程序:检测所要驱动的硬件设备是否存在、是否正常。如果该设备正常,则对该设备及其相关的设备驱动程序需要的软件状态进行初始化。在初始化时被调用一次。I/O操作子程序:调用该子程序是系统调用的结果。执行该部分程序时,系统仍认为是和调用进程属同一个进程,只是由用户态变成核心态。中断服务子程序:系统来接收硬件中断,再由系统调用中断服务子程序。因为设备驱动程序一般支持同一类型的若干设备,所以一般在系统调用中断服务子程序的时候,都带有一个或多个参数,以唯一标识请求服务的设备。


7. 采用双缓冲的条件是:(单选)

A. CPU和外设的速度相近

B. CPU速度大于外设速度

C. CPU速度小于外设速度

答:A

在这里插入图片描述

两个缓冲区,CPU和外设都可以连续处理而无需等待对方,这要求CPU和外设的速度相近,当外设读写一个缓冲区时CPU可以处理另一个缓冲区的数据,具体工作状态如图所示。


8. SPOOLing程序和外设进行数据交换是:(单选)

A. 虚拟I/O

B. 实际I/O

答:B

SPOOLing, Simultaneous Peripheral Operation On Line,也称为虚拟设备技术,可把独享设备转变成具有共享特征的虚拟设备,从而提高设备利用率。SPOOLing程序和外设进行数据交换使用的是实际I/O:SPOOLing程序预先从外设读取数据并加以缓冲,在以后需要的时候输入到应用程序;SPOOLing程序接受应用程序的输出数据并加以缓冲,在以后适当的时候输出到外设。


9. 下面哪些技术可以提高I/O性能:(多选)

A. DMA

B. 预先读

C. 延时写

D. 异步I/O

E. 缓冲

F. SPOOLing

答:A、B、C、D、E、F

DMA,直接存储器访问方式, 是由一个专门的控制器来完成数据从内存到设备或者是从设备到内存的传输工作,提高大批量读写IO时的性能。预先读和延迟写、异步IO以及缓冲技术均是为了减少CPU对外设IO的等待,可以提高IO性能。SPOOLing则把独享设备转变成具有共享特征的虚拟设备,从而提高设备利用率。


10. Linux中设备管理的代码占中代码量的:(单选)

A. 10%~20%

B. 20%~30%

C. 30%~40%

D. 50%以上

答:D

Linux中设备管理的代码占中代码量的50%以上。