操作系统精髓与设计原理第11章IO管理和磁盘调度第12章文件管理.docx

上传人:b****7 文档编号:10906703 上传时间:2023-02-23 格式:DOCX 页数:15 大小:30.81KB
下载 相关 举报
操作系统精髓与设计原理第11章IO管理和磁盘调度第12章文件管理.docx_第1页
第1页 / 共15页
操作系统精髓与设计原理第11章IO管理和磁盘调度第12章文件管理.docx_第2页
第2页 / 共15页
操作系统精髓与设计原理第11章IO管理和磁盘调度第12章文件管理.docx_第3页
第3页 / 共15页
操作系统精髓与设计原理第11章IO管理和磁盘调度第12章文件管理.docx_第4页
第4页 / 共15页
操作系统精髓与设计原理第11章IO管理和磁盘调度第12章文件管理.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

操作系统精髓与设计原理第11章IO管理和磁盘调度第12章文件管理.docx

《操作系统精髓与设计原理第11章IO管理和磁盘调度第12章文件管理.docx》由会员分享,可在线阅读,更多相关《操作系统精髓与设计原理第11章IO管理和磁盘调度第12章文件管理.docx(15页珍藏版)》请在冰豆网上搜索。

操作系统精髓与设计原理第11章IO管理和磁盘调度第12章文件管理.docx

操作系统精髓与设计原理第11章IO管理和磁盘调度第12章文件管理

第十一章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:

磁头臂仅仅沿一个方向移动,并在途中满足所有未完成的请求,直到它到达这个方向上最后一个磁道,或者在这个方向上没有其他请求为止。

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

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

下一个被访问的磁道

27

129

110

186

147

41

10

64

120

平均寻道长度

横跨的磁道数

73

102

19

76

39

106

31

54

56

61.8

下一个被访问的磁道

110

120

129

147

186

64

41

27

10

平均寻道长度

横跨的磁道数

10

10

9

18

39

122

23

14

17

29.1

下一个被访问的磁道

64

41

27

10

110

120

129

147

186

平均寻道长度

横跨的磁道数

36

23

14

17

100

10

9

18

39

29.6

下一个被访问的磁道

64

41

27

10

186

147

129

120

110

平均寻道长度

横跨的磁道数

36

23

14

17

176

39

18

9

10

38

如果磁头沿着增大的方向,只有SCAN和C-SCAN的结果有变化

 

SCAN

C-SCAN

下一个被访问的磁道

110

120

129

147

186

64

41

27

10

平均寻道长度

横跨的磁道数

10

10

9

18

39

122

23

14

17

29.1

下一个被访问的磁道

110

120

129

147

186

10

27

41

64

平均寻道长度

横跨的磁道数

10

10

9

18

39

176

17

14

23

35.1

11.4考虑一个磁盘,有N个磁道,磁道号从0到(N-1),并且假设请求的扇区随机地均匀分布在磁盘上。

现在要计算一次寻道平均跨越的磁道数。

a.首先,计算当磁头当前位于磁道t时,寻道长度为j的可能性。

提示:

这是一个关于确定所有组合数目的问题,所有磁道位置作为寻道目标的可能性是相等的。

b.接下来计算寻道长度为K的可能性。

提示:

这包括所有移动了K个磁道的可能性之和。

c.使用下面计算期望值得公式,计算一次寻道平均跨越的磁道数目:

N-1

E[X]=∑i∑Pr[x=i]

i=0

d.说明档N比较大时,一次寻道平均跨越的磁道数接近N/3.

(a)设P[j/t]表示位于磁道t,寻道长度为j的概率,知随机访问一个任何一个磁道的可能性为相等为1/N,因此我们有P[j/t]=1/N,t<=j-1或者t>=N-j;P[j/t]=2/N,j-1

因此只有一个相距j长度的磁道,故为2/N。

(b)令P[k]=∑P[k/t]*P[t]=1/N∑P[k/t],由(a)可知,取值1/N的有2k个磁道,取值为2/N有(N-k)个,

所以有

P[k]=(2k/N+2(N-k)/N)/N=2(N-k)/N*N

(c)E[k]=∑k*P[k]=∑2k(N-k)/N*N

=(N*N-1)/3N

(d)当N比较大时,从上文可以看出一次寻道平均跨越磁道数接近N/3

11.5下面的公式适用于高速缓冲存储器和磁盘高速缓存:

Ts=Tc+M×Td

请把这个公式推广到N级存储器结构,而不是仅仅2级。

定义:

Ai=从i级存储器找到信息的时间;

Hi=消息在第i级存储器并且没有在更高级存储器的概率;

Bi=从第(i+1)级向第i级传送一块数据的时间。

假设缓存在1级存储上,主存在2级存储上,如此下去,形成一个N级存储结构,因此有

Ts=∑AiHi

若消息在M1层,可以立即被读,如果在M2中,不在M1中,那么这块数据从M2传到M1中再读。

因此A2=B1+A1

进而有A3=B2+A2=B1+B2+A1

即有Ai=A1+∑Bj

所以Ts=T1∑Hi+∑∑BjHi

因为∑Hi=1

最后可得Ts=T1+∑∑BjHi

11.6对基于频率的替换算法(见图11.12),定义Fnew,Fmiddle和Fold分别为包含新区,中间区和的高速缓存片段,显然Fnew+Fmiddle+Fold=1.如果有

a.Fold=1—Fnew

b.Fold=1/(高速缓存大小)

请分别描述该策略。

a.图11.11的中间区是空的,因此这种策略退化为图11.11a的策略。

b.老区由一块组成,并且我们有LRU替换策略。

11.7对于一个有9个磁道的磁带,磁带速度为120英寸每秒,磁带密度为1600线位/英寸,请问它的传送率为多少?

密度可表示为1600线位每英寸,因此传送速率为1600×1200=192000线位每秒。

11.8假设有一个2400英寸的磁带盘,记录间的间隙为0.6英寸,这个间隙是磁带在读操作之间的停止;在间隙期间磁带速度成线性增加或减小,磁带的其他与习题11.7相同。

磁带上的数据按物理记录组织,每个物理记录包含固定数目的由用户定义的单元,称为逻辑记录。

a.在磁带上读取分装在10个物理记录中的120个逻辑记录需要多少时间?

b.同样。

如果是分装在30个物理记录中,则需要多少时间?

c.对于上述每种分块方案,整个磁带分别可以保存多少个逻辑记录?

d.对于上述每种分块方案,有效的总传速率分别是多少?

e.磁带的容量是多少?

假设每个记录由30块组成。

b.我们先定义从一个物理块加间隙到了另一块的读取时间

物理块的大小=(30个逻辑记录每物理记录)×(120比特每逻辑记录)

=3600字节

物理块的长度=3600字节/(1600比特/英寸)=2.35英寸

间隙的长度=0.6英寸

传输一个块加间隙的传输时间=2.25/120+0.6/60=0.02875秒

磁带上块的数目=(2400×12)/(2.25+0.6)=10105物理块

因此,读取时间为10105×0.02875=291秒

c.如果分装在30个物理记录中,磁带包含10105个物理记录和

30×10105=303150个逻辑记录。

d.分装在30个物理记录中的有效传输数率:

R=(303150×120)/291=125010字节/秒

e.容量=303150×120=36378000字节

11.9如果磁盘中扇区大小固定为每扇区为512字节,并且每磁道96个磁区,每面110个磁道,一共有8个可用的面,对于习题11.8(b),计算存储这些逻辑记录需要多少磁盘空间(扇区、磁道和面)。

忽略文件头记录和磁道索引,并假设记录不能跨越两个扇区。

每个扇区能容纳4个记录,所需扇区数=303150/4=75788

所需磁道数=75788/96=790

所需面数=790/110=8

11.10考虑习题11.9所描述的磁盘系统,假设该磁盘的旋转速度为360r/m。

一个处理器使用中断驱动I/O从磁盘中读取一个扇区,每个字节一个中断。

如果处理每个中断需要2.5us,处理器花费在处理I/O上的时间占多少百分比(忽略寻道时间)?

每扇区512字节,每字节一个中断,所以每扇区512个中断。

中断总时间=2.5×512=1280us。

每个扇区读取时间=60s/m×360r/m×96扇区/磁道=1736us

处理器花费在处理I/O上的时间百分比=100×1280/1736=74%

11.11如果使用DMA策略并假设每个扇区一个中断,重做习题11.10。

使用DMA策略,中断总时间=2.5us

处理器花费在处理I/O上的时间百分比=100×2.5/1736=0.14%

11.12一个32位计算机有两个选择通道和一个多路通道,每个选择通道支持两个磁盘和两个磁带部件。

多路通道有两个行式打印机、两个卡片阅读机,并连接着10个VDT终端。

假设有以下的传送率:

磁盘驱动器800KB/s

磁带驱动器200KB/s

行式打印机6.6KB/s

卡片阅读机1.2KB/s

VDT1KB/s

系统中的最大合计传送率为多少?

每次只有一个驱动设备能在选择通道上得到服务,

因此,最大速率=800+800+2×6.6+2×1.2+10×1=1625.6KB/s

11.13当条带大小比I/O大小小时,磁盘条带化显然可以提高数据传送率。

同样,相对于单个的大磁盘,由于RAID0可以并行处理多个I/O请求,显然它可以提高性能。

但是,相对于后一种情况,磁盘条带化还有必要存在吗?

也就是说,相对于没有条带化的磁盘阵列,磁盘条带化可以提高I/O请求速度的性能吗?

这取决于I/O请求类型。

对于一种极端情况,如每次只有一个进程有一个大I/O请求时,磁盘条带化可以提高性能。

但如果有许多进程有许多小的I/O请求时,相对于RADI0没有条带化的磁盘阵列可以提高性能。

第12章文件管理

复习题:

12.1、域和记录有什么不同?

答:

域(field)是基本数据单位。

一个域包含一个值。

记录(record)是一组相关的域的集合,它可以看做是应用程序的一个单元。

12.2、文件和数据库有什么不同?

答:

文件(file)是一组相似记录的集合,它被用户和应用程序看做是一个实体,并可以通过名字访问。

数据库(database)是一组相关的数据集合,它的本质特征是数据元素间存在着明确的关系,并且可供不同的应用程序使用。

12.3、什么是文件管理系统?

答:

文件管理系统是一组系统软件,为使用文件的用户和应用程序提供服务。

12.4、选择文件组织时的重要原则是什么?

答:

访问快速,易于修改,节约存储空间,维护简单,可靠性。

12.5、列出并简单定义五种文件组织。

答:

堆是最简单的文件组织形式。

数据按它们到达的顺序被采集,每个记录由一串数据组成。

顺序文件是最常用的文件组织形式。

在这类文件中,每个记录都使用一种固定的格式。

所有记录都具有相同的长度,并且由相同数目、长度固定的域按特定的顺序组成。

由于每个域的长度和位置已知,因此只需要保存各个域的值,每个域的域名和长度是该文件结构的属性。

索引顺序文件保留了顺序文件的关键特征:

记录按照关键域的顺序组织起来。

但它还增加了两个特征:

用于支持随机访问的文件索引和溢出文件。

索引提供了快速接近目标记录的查找能力。

溢出文件类似于顺序文件中使用的日志文件,但是溢出文件中的记录可以根据它前面记录的指针进行定位。

索引文件:

只能通过索引来访问记录。

其结果是对记录的放置位置不再有限制,只要至少有一个索引的指针指向这条记录即可。

此外,还可以使用长度可变的记录。

直接文件或散列文件:

直接文件使用基于关键字的散列。

12.6、为什么在索引顺序文件中查找一个记录的平均搜索时间小于在顺序文件中的平均搜索时间?

答:

在顺序文件中,查找一个记录是按顺序检测每一个记录直到有一个包含符合条件的关键域值的记录被找到。

索引顺序文件提供一个执行最小穷举搜索的索引结构。

12.7、对目录执行的典型操作有哪些?

答:

搜索,创建文件,删除文件,显示目录,修改目录。

12.8、路径名和工作目录有什么关系?

答:

路径名是由一系列从根目录或主目录向下到各个分支,最后直到该文件的路径中的目录名和最后到达的文件名组成。

工作目录是一个这样的目录,它是含有用户正在使用的当前目录的树形结构。

12.9、可以授予或拒绝的某个特定用户对某个特定文件的访问权限通常有哪些?

答:

无(none),知道(knowledge),执行(execution),读(reading),追加(appending),更新(updating),改变保护(changingprotection),删除(deletion)。

12.10、列出并简单定义三种组块方式。

答:

固定组块(fixedblocking):

使用固定长度的记录,并且若干条完整的记录被保存在一个块中。

在每个块的末尾可能会有一些未使用的空间,称为内部碎片。

可变长度跨越式组块(variable-lengthspannedblocking):

使用长度可变的记录,并且紧缩到块中,使得块中没有未使用空间。

因此,某些记录可能会跨越两个块,通过一个指向后继块的指针连接。

可变长度非跨越式组块(variable-lengthunspannedblocking):

使用可变长度的记录,但并不采用跨越的方式。

如果下一条记录比块中剩余的未使用空间大,则无法使用这一部分,因此在大多数块中都会有未使用的空间。

12.11、列出并简单定义三种文件分配方法。

答:

连续分配是指在创建文件时,给文件分配一组连续的块。

链式分配基于单个的块,链中的每一块都包含指向下一块的指针。

索引分配:

每个文件在文件分配表中有一个一级索引,分配给该文件的每个分区在索引中都有一个表项。

 

习题:

12.1、定义:

B=块大小R=记录大小P=块指针大小F=组块因子,即一个块中期望的记录数。

对图12.6中描述的三种组块方法分别给出关于F的公式。

答案:

固定组块:

最大整数

当一个可变长度记录被保存到组块中的时候,组块中会增加一个标记着记录边界的数据,用来标识记录。

当跨越式记录桥联块边界的时候,需要用到一些关联着后继组块的结构。

一种可能情况是在每个记录前加一个长度标识。

另一种可能情况是在两个记录之间加一个特殊的区分标识。

因此,我们假设每一个记录需要一个标识,并且标识大小约等于块指针大小。

对于跨越式组块,指向它下一个组块的大小为P的块指针被包含在每一个组块中,所以跨越式记录可以很容易地被重定位。

由此可知:

可变组块跨越式:

由于不采用跨越的方式,可变长度非跨越式组块会导致平均R/2的空间浪费,但不需要指向后继组块的指针:

 

12.2、一种避免预分配中的浪费和缺乏邻近性问题的方案是,分配区的大小随着文件的增长而增加。

例如,开始时,分区的大小为一块,在以后每次分配时,分区的大小翻倍。

考虑一个有n条记录的文件,组块因子为F,假设一个简单的一级索引用做一个文件分配表。

a.给出文件分配表中入口数的上限(用关于F和n的函数表示)。

b.在任何时候,已分配的文件空间中,未被使用的空间的最大量是多少?

答案:

a.

 

b.未被使用的空间总是小于已分配文件空间。

12.3、当数据

   a.很少修改并且以随机顺序频繁地访问时,

   b.频繁地修改并且相对频繁地访问文件整体时,

   c.频繁地修改并以随机顺序频繁地访问时,

从访问速度、存储空间的使用和易于更新(添加/删除/修改)这几方面考虑,为了达到最大效率,你将选择哪种文件组织?

答案:

a.索引文件

b.索引顺序文件

c.索引文件或散列文件

12.4、目录可以当做一种只能通过受限方式访问的“特殊文件”实现,也可以当做普通文件实现。

这两种方式分别有哪些优点和缺点?

答案:

很明显地,如果操作系统把目录当做一种通过受限方式访问的“特殊文件”实现,安全性更容易被加强。

把目录当做一种通过受限方式访问的普通文件实现使得操作系统更统一地管理对象,更容易地创建和管理用户目录。

12.5、一些操作系统具有一个树结构的文件系统,但是把树的深度限制到某个比较小的级数上。

这种限制对用户有什么影响?

它是如何简化文件系统的设计的(如果能简化)?

答案:

这是一个少见的专题。

如果操作系统构造一个文件系统以便子目录被允许包含在一个主目录底下,那么就很少或没有额外的逻辑被要求允许包含任意深度的子目录。

限制子目录树的深度造成对用户组织文件空间不必要地限制。

12.6、考虑一个层次文件系统,空闲的磁盘空间保留在一个空闲空间表中。

a.假设指向空闲空间的指针丢失了。

该系统可以重构空闲空间表吗?

b.给出一种方案,确保即使出现了一次存储失败,指针也不会丢失。

答案:

a.可以重构。

使用的方法与许多LISP的垃圾收集系统用的方法非常相似。

首先,我们将建立一种数据结构,代表磁盘的每一块,并且这个磁盘支持一种文件系统。

在这里某种映射是比较合适的。

然后,我们从这个文件系统的根目录开始,通过文件系统的递归下降寻找,我们标记每一块已被文件使用的磁盘块。

当完成的时候,我们将为没有被使用的磁盘块建立一个空闲列表。

这实质上就是UNIX命令fsck的功能。

b.在磁盘上一个或多个地方备份空闲空间列表指针。

无论何时列表的开端发生变化,备份指针也同样更新。

这样将会保证即使发生了存储器或者磁盘块错误,你也总是能找到一个有效的指针值。

12.7、考虑由一个索引节点所表示的UNIX文件的组织(见图12.13).假设有12个直接块指针,在每个索引节点中有一个一级、二级和三级间接指针。

此外,假设系统块大小和磁盘扇面大小都是8K。

如果磁盘块指针是32位,其中8位用于标识物理磁盘,24位用于标识物理块,那么

a.该系统支持的最大文件大小是多少?

b.该系统支持的最大文件系统分区是多少?

c.假设主存中除了文件索引节点外没有其他息,访问在位置12,423,956中的字节需要多少次磁盘访问?

答案:

a.找出每一个块中根据指针大小来划分块大小的磁盘块指针的数目:

8K/4=2Kpointersperblock

I-Node所支持的最大文件大小是:

12+2K+(2K×2K)+(2K×2K×2K)

直接寻址一级间接寻址二级间接寻址三级间接寻址

12+2K+4M+8Gblocks

将以上数据乘以块大小(8K),得到:

96KB+16MB+32GB+64TB

这就是该系统支持的最大文件大小。

b.每一个分区中都有24位用于识别物理块,由此可知:

224×8K=16M×8K=128GB

c.由问题(a)中所得的信息可知,直接块只覆盖了第一个96KB区域,而一级间接块覆盖了接下来的16MB区域。

被请求文件的位置是13MB而其偏移很明显地随机落在了一级间接块中。

因此会有2次磁盘存储访问。

一次是为了一级间接块,一次是为了包含被请求数据的块。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1