2024年5月31日发(作者:)

精品文档

第十一章 I/O管理和磁盘调度

复习题

11.1列出并简单定义执行I/O的三种技术。

·可编程I/O:处理器代表进程给I/O模块发送给一个I/O命令,该

进程进入忙等待,等待操作的完成,然后才可以继续执行。

·中断驱动I/O:处理器代表进程向I/O模块发送一个I/O命令,然

后继续执行后续指令,当I/O模块完成工作后,处理器被该模块中断。如

果该进程不需要等待I/O完成,则后续指令可以仍是该进程中的指令,否

则,该进程在这个中断上被挂起,处理器执行其他工作。

·直接存储器访问(DMA):一个DMA模块控制主存和I/O模块之间的

数据交换。为传送一块数据,处理器给DMA模块发送请求,只有当整个数

据块传送完成后,处理器才被中断。

11.2逻辑I/O和设备I/O有什么区别?

·逻辑I/O:逻辑I/O模块把设备当作一个逻辑资源来处理,它并不

关心实际控制设备的细节。逻辑I/O模块代表用户进程管理的一般I/O功

能,允许它们根据设备标识符以及诸如打开、关闭、读、写之类的简单命

令与设备打交道。

·设备I/O:请求的操作和数据(缓冲的数据、记录等)被转换成适

当的I/O指令序列、通道命令和控制器命令。可以使用缓冲技术,以提高

使用率。

11.3面向块的设备和面向流的设备有什么区别?请举例说明。

面向块的设备将信息保存在块中,块的大小通常是固定的,传输过程中

一次传送一块。通常可以通过块号访问数据。磁盘和磁带都是面向块的设

备。

面向流的设备以字节流的方式输入输出数据,其末使用块结构。终端、

打印机通信端口、鼠标和其他指示设备以及大多数非辅存的其他设备,都

属于面向流的设备。

11.4为什么希望用双缓冲区而不是单缓冲区来提高I/O的性能?

双缓冲允许两个操作并行处理,而不是依次处理。典型的,在一个进

程往一个缓冲区中传送数据(从这个缓冲区中取数据)的同时,操作系统

正在清空(或者填充)另一个缓冲区。

11.5在磁盘读或写时有哪些延迟因素?

寻道时间,旋转延迟,传送时间

11.6简单定义图11.7中描述的磁盘调度策略。

FIFO:按照先来先服务的顺序处理队列中的项目。

SSTF:选择使磁头臂从当前位置开始移动最少的磁盘I/O请求。

SCAN:磁头臂仅仅沿一个方向移动,并在途中满足所有未完成的请求,直到

1

欢迎下载

精品文档

它到达这个方向上最后一个磁道,或者在这个方向上没有其他请求为止。

接着反转服务方向,沿相反方向扫描,同样按顺序完成所有请求。

C-SCAN:类似于SCAN,

11.7简单定义图7层RAID。

0:非冗余

1:被镜像;每个磁盘都有一个包含相同数据的镜像磁盘。

2:通过汉明码实现冗余;对每个数据磁盘中的相应都计算一个错误校正码,

并且这个码位保存在多个奇偶校验磁盘中相应的文件。

3:交错位奇偶校验;类似于第二层,不同之处在于RAID3为所有数据磁盘

中同一位置的位的集合计算一个简单的奇偶校验位,而不是错误校正码。

4:交错块分布奇偶校验;对每个数据磁盘中相应的条带计算一个逐位奇偶。

5:交错块分布奇偶校验;类似于第四层,但把奇偶校验条带分布在所有磁

盘中。

6:交错块双重分布奇偶校验;两种不同的奇偶校验计算保存在不同磁盘的

不同块中。

11.8典型的磁盘扇区大小是多少?

512比特

习题

11.1考虑一个程序访问一个I/O设备,并比较无缓冲的I/O和使用缓冲区的I/O。

说明使用缓冲区最多可以减少2倍的运行时间。

如果计算的时间正好等于它的I/O时间(它是最佳环境),操作者和外

围设备同时运行。如果单独运行,只要花费他们的一半时间,设C是整个程

序的计算时间,T为所要求总的I/O时间,因而寄存器最好的运行时间是

max(C,T),不需要寄存器的运行时间是C+T,

显然((C+T)/2)≤max(C,T)≤(C+T).

11.2把习题11.1的结论推广到访问n个设备的程序中。

最佳比是(n+1)﹕n

11.3使用与表11.2类似的方式,分析下列磁道请求:27,129,110,186,147,

41,10,64,120。假设磁头最初定位在磁道100处,并且沿着磁道号减

小的方向移动。假设磁头沿着磁道增大的方向移动,请给出同样的分析。

FIFO SSTF SCAN C-SCAN

2

欢迎下载