操作系统习题集 - 5 - 输入输出.doc_第1页
操作系统习题集 - 5 - 输入输出.doc_第2页
操作系统习题集 - 5 - 输入输出.doc_第3页
操作系统习题集 - 5 - 输入输出.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

习题集 - 5 - 输入输出1. 为了便于上层软件的编制,设备通常需要提供是_A. 控制寄存器、状态寄存器和控制命令B. I/O地址寄存器、工作方式状态寄存器和控制命令C. 中断寄存器、控制寄存器和控制命令D. 控制寄存器、编程空间和控制逻辑寄存器解:A。中断寄存器位于计算机主机;不存在I/O地址寄存器;编程空间一般是由体系结构和操作系统决定的。2. 程序直接控制I/O方式具有的特点是_A. 比DMA方式的效率低B. 具有较好的自然性和易于理解性C. 控制软件易于编写D. 便于实现异步的通信解:B。3. DMA I/O控制方式的特点是_A. 设备与主机的并行执行B. I/O批量数据的交换会大量浪费CPU时间C. 控制软件易于编写D. 简化了设备的设计解:A。4. Memory-Mapped I/O方式相对于I/O端口方式存在哪些优点?解:(1) 不需要特殊的指令支持。Memory-Mapped I/O通过一般的访存指令访问设备控制寄存器,而I/O端口方式则需要类似于IN/OUT形式的访问指令,这些指令一般在C和C+等高级语言中无法实现;(2) 无需特殊的保护机制隔离用户进程和I/O;(3) 所有访问存储器的指令均可以访问控制寄存器,便于系统性能优化。注:(1) I/O端口方式中,计算机系统使用了一个专门的I/O空间,对设备控制寄存器进行编址,而对I/O空间的访问需要使用特殊的机器指令。例如:IN R0,4指令是指将I/O空间的控制寄存器4的内容读入CPU寄存器R0。(2) 在Memory-Mapped I/O方式中,计算机系统专门使用一段特殊的地址来编址设备控制寄存器,对这些特殊地址的访问就是对设备控制寄存器的访问。(3) Memory-Mapped I/O方式的缺点:现代计算机CPU都会对存储进行缓存,按时缓存设备控制寄存器内容是灾难性的。5. 什么是设备无关性(device independence)?解:设备无关性一般是指程序可以通过一组统一的操作过程来操作设备,这种操作接口与具体的设备无关。解析:按照操作系统的设计目标,任何子系统追求的目标应该是“性能”和“方便”。在I/O管理中“方便”一词可以特指为“设备无关性”。I/O管理的设备无关性是一种透明性问题,任何系统想达到完全的透明性是非常困难的。比如在现代操作系统中为设备操作都提供了“打开”、“关闭”、“读”、“写”等接口,程序员可以使用与文件相同的模式操作设备。这就体现了一种“设备无关性”。设备无关性的另一种形式是“统一的命名”,在UNIX系统中为所有的设备均在/dev目录下创建了一个设备文件,用户可以向打开一个普通文件一样打开设备。即使是这样,UNIX的设备无关性也不是完全的。为了支持对特殊设备的特殊控制,UNIX提供了ioctl接口方便程序对设备的控制。比如可以使用ioctl设置串口的波特率、校验位等。另外在程序设计领域、图形接口设计和文件设计方面也会出现“设备无关”的术语。文件的设备无关性是指无论文件出现在哪个平台上,这个平台上的软硬件均可以解释和操作它,比如HTML文件和XML文件等等。6. 请分别说明阻塞(blocking)和非阻塞(non-blocking)I/O应该使用的基本情形。为什么不可以只是实现非阻塞I/O,而且使用非阻塞I/O来实现阻塞I/O?解:一般说来,阻塞I/O 比较适合于只是等待某个特殊事件的过程。例如磁盘、磁带和键盘的读操作,没有从这些设备中获得足够的信息就无法进行下一个步骤。倘若I/O来自多个设备源,而且I/O到达的次序是不确定的时候,非阻塞I/O就非常有效。例如,网络服务器需要读取来自网络的多个请求;窗口管理器既可以读取键盘又可以获得鼠标输入,等等。如果只实现非阻塞I/O,那么在需要阻塞I/O时,应用程序则需“忙”等待。7. UNIX利用内核共享的数据结构来协调内核中的I/O部件,而Windows NT在I/O部件之间使用面向对象消息传递。请比较它们之间的优劣。解:UNIX系统相对于Windows NT的优势:(1) 效率高,数据传递开销小,数据移动的数量小。(2) 快速实现,不需要与其他内核部件之间的协调。(3) 简单,数据不易丢失。但是也存在着缺点:(1) 数据缺乏保护,部件的变化可能会引起副作用,难以调试;(2) 难以实现新的I/O方法,一种新的I/O方法往往需要新的数据结构,数据结构的维护是比较困难的;(3) I/O子系统的设计复杂,充满了数据结构、访问例程和锁机制,难以理解,难以维护。8. 考虑在一个单用户PC上的下述I/O情形:(1) 使用鼠标作为图形用户接口。(2) 在一个多任务操作系统上的磁带驱动器。(3) 包含用户文件的磁盘驱动器。(4) 通过直接总线连接的图形卡,可以通过内存映射I/O进行访问。对于上述I/O,操作系统的设计应该怎样使用缓冲、高速缓存和spooling等技术呢?会使用程序控制I/O或者中断I/O吗?为什么?解:(1) 鼠标设备:缓冲是需要的,可以在高优先级操作发生时记录鼠标的移动。但是Spooling和高速缓存是不合适的。最合适的I/O方式是中断驱动I/O。(2) 磁带驱动器:缓冲可以管理磁带驱动器与I/O源(或目标)之间的吞吐能力差别。缓存可以用于维持磁带驱动器的数据,减少I/O次数。Spooling可以在多用户并发访问(磁带驱动器可能为多个PC或者其他主机服务)时管理并发I/O。中断驱动I/O可能能够获得最佳性能。(3) 磁盘驱动器:缓冲可以维持用户空间与磁盘间传输的数据以减少I/O次数。高速缓存可以用于维持磁盘数据以减少机械运动和磁记录读/写,也可以提高I/O性能。因为磁盘是共享访问的设备,因此没有必要使用Spooling进行虚拟化。因为磁盘带宽相对较低,因此中断驱动I/O比较适宜。(4) 图形卡:需要使用缓冲来控制多重访问(在显示当前图像时,使用双缓冲,准备下一幅图像),以提高显示性能。因为图形卡设备的数据率较高,因此Spooling和高速缓存是没有必要的。程序控制或者中断I/O只是用于输入和I/O完成状态的检测,在内存映射I/O阶段没有必要。注:(1) 缓冲(buffering)和高速缓存(caching)虽然都可以使用主存来实现,但是在I/O管理中存在一些细小的差异。缓存专指操作系统或者设备驱动程序为了减少I/O次数而在贮存空间开辟的一片区域。而缓存是指硬件系统为了提高性能使用的特殊快速存储器,例如CPU的一级和二级缓存可以减少访存次数,磁盘控制器缓存可以减少磁记录读写次数。(2) 程序直接控制的I/O方式在现代操作系统中通常称为轮询(polling)I/O方式,专指CPU能够通过查询设备状态来决定I/O指令的一种方式。简单的程序直接控制I/O实际上是很高效的,只是重复的I/O会因为慢等待

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论