操作系统概念第七版1012章课后题答案中文版.docx
《操作系统概念第七版1012章课后题答案中文版.docx》由会员分享,可在线阅读,更多相关《操作系统概念第七版1012章课后题答案中文版.docx(16页珍藏版)》请在冰豆网上搜索。
操作系统概念第七版1012章课后题答案中文版
10.1假设有一个文件系统,它里面的文件被删除后,当连接到该文件的链接依然存在时,文件的磁盘空间会再度被利用。
如果一个新的文件被创建在同一个存储区域或具有同样的绝对路径名,这会产生什么问题?
如何才能避免这些问题?
Answer:
令旧的文件为F1,新文件为F2。
用户希望通过存在的链接进入F1,实际上将进入F2。
注意,使用的是文件F1的访问保护,而不是F2的。
这个问题可以通过确保所有被删除文件的链接也被删除来避免。
可以从几个方面来完成:
a.保存一份文件所有链接的列表,删除文件时,删除每一个链接
b.保留链接,当试图访问一个已删除文件时删除他们
c.保存一个文件引用清单(或计数器),只有在文件所有链接或引用被删除后,删除该文件
10.2打开文件表被用以保持当前打开文件的信息,操作系统应该为每个用户保持一个单独的表吗?
或者只是保持一个包含当前所有用户访问文件的引用的表?
如果两个不同程序或用户访问同样的文件,在打开文件表中应包含单独的条目吗?
Answer:
保持一个中央的打开文件表,操作系统可以执行下列操作,否则不可执行:
假设一个当前有一个或一个以上进程访问的文件。
如果该文件被删除,那么应该直到所有正在访问文件的进程关闭它时,它才能从磁盘上删除。
只要有正在访问文件的进程数目的集中核算,该检查就可以执行。
另一方面,如果两个进程正在访问该文件,则需要保持两个单独的状态来跟踪当前位置,其中部分文件正被两个进程访问。
这就要求操作系统为两个进程保持单独的条目。
10.3一个提供强制锁,而非使用由用户决定的咨询锁的进程有何优点和缺点?
Answer:
在许多情况下,单独的程序可能愿意容忍同时访问一个文件,而不需要获得锁,从而确保文件的相互排斥。
其他程序结构也可以确保相互排斥,如内存锁;或其他同步的形式。
在这种情况下,强制锁将限制访问文件的灵活性,也可能增加与访问文件相关的开销。
10.4在文件的属性中记录下创建程序的名字,其优点和缺点是什么?
(在Macintosh操作系统中就是这样做的)
Answer:
记录下创建程序的名字,操作系统能够实现基于此信息的功能(如文件被访问时的程序自动调用)。
但它会增加操作系统的开销,需要文件描述符的空间。
10.5有些系统当文件第一次被引用时会自动打开文件,当作业结束时关闭文件。
论述这种方案与传统的由用户显式地打开和关闭文件的方案相比有什么有点和缺点?
Answer:
文件的自动打开和关闭免除了用户对这些功能的调用,从而使它更方便用户;但它比显式打开和关闭需要更多的开销
10.6如果操作系统知道某一应用将以顺序方式访问文件数据,将如何利用此信息来提高性能?
Answer:
当访问一个块时,文件系统可以预取随后的块,预计未来对于这些块的要求,这种预取优化将减少未来进程将经历的等待时间。
这个预取的优化将会为未来的要求减少等候所经历的时间。
(10.6最后一句翻译)
10.7举一个应用程序的例子,它能够受益于操作系统支持的随机存取,以建立索引的档案。
答:
一个应用程序,它维持的一个数据库的条目可以受益于这种一种支持:
举个列子,如果某程序是维护一个学生数据库,则访问的数据库不能被任何预先确定的访问模式模拟,这种获得记录是随机的,而且该记录的定位,如果作业系统是提供某种形式的树为基础的指数,将会更有效。
10.8讨论支持联系档案,两岸装入点的优点和缺点(即链接文件指的是文件在不同体积存储)。
答:
其优点是,有更大的透明度,也就是说,用户并不需要知道装入点和建立联系的所有情景。
但缺点是文件系统包含的链接可能会展开而安装的文件系统包含目标文件可能不会,因此,在这种情况下不能提供透明的访问该文件,错误的条件会使该用户的联系是一条走不通的链接,而且链接确实跨越了文件系统的界限。
10.9有些系统文件提供文件共享时候只保留文件的一个拷贝,而另外的一个系统则是保留多个拷贝,对共享文件的每一个用户提供一个拷贝,论述这种方法的相对优点。
答:
在一个单一的复制,同时更新了一个文件可能会导致用户获得不正确的信息,文件被留在了不正确的状态.随着多份拷贝,它会浪费存储而且各种副本可能不一致。
10.10讨论交往远程文件系统(存储在文件服务器)从一套不同的失败语义相关的本地文件系统的优点和缺点。
答:
其优点是,如果在获得的文件存储在一个远程文件系统认识到它发生了一个错误,应用程序可以在处理故障状况时候提供一个更加智能化的方式,,而举例来说,一个文件打开文件可能简单的就失败了,而不是简单地挂在访问远程文件的一个失败的服务器和应用程序可以尽可能以最好的方式处理失败;如果运行只是外挂起,那么整个应用程序应该外挂起,这是不可取的。
然而,由于在失败语义缺乏统一以致由此导致应用程序代码更复杂。
10.11什么是影响一致支持共享访问这些存储在远程文件系统的文件的UNIX语义的含义?
答:
UNIX的一致性语义需要更新文件立即提供给其他进程。
支持这种语义的共享文件远程文件系统可能会导致以下的低效率:
所有更新的客户,必须立即上报文件服务器,而不是批处理(如果更新到一个临时文件将会被忽略,),而且更新的都必须送交到文件服务器向客户的数据进行高速缓存,使得立即构造成更多的联系。
11.1试想一个文件系统,采用改进的连续分配计划的支持程度.其档案收集的每个程度相当于毗连的区块。
一个关键的问题是在这样的系统存在一定的变异的大小程度。
如下计划有哪些优点和缺点?
a.所有程度都是同样的尺寸,大小是预先确定的。
b.程度上可以任意大小和动态分配。
c.程度上可以几个固定的尺寸,这些尺寸是预先确定的。
答:
如果所有的程度上是相同的尺寸,大小是预先确定的,那么它简化了块分配计划。
一个简单的位图或空闲状态的名单程度就足够了。
如果程度上可以任意大小和动态分配,则更复杂的分配计划是必需的。
这可能很难找到一个程度的适当规模而且它可能会存在外部碎裂.。
人们可以使用好友系统分配器讨论了前几章设计一个适当的分配器。
当程度上可以几个固定的尺寸,而这些尺寸可以预定,人们必须保持一个单独的位图或为每个名单给以可能大小..这项计划是中级复杂性和中级灵活性的比较。
11.2使用FAT链合作区块的档案来进行变化相联系的分配有哪些优势?
答:
它的优势是,在访问块是储存在中间的文件时候,在FAT里跟踪指针可以决定它的位置,而不是访问所有个别区块中的档案顺序的方式找到指针的目标块。
通常情况下,大多数的FAT可缓存在存储器里,因此,指针可以通过记忆体确定,而不用通过磁盘块。
11.3假设有一个系统,它的空闲空间保存在空闲空间链表中:
a.假设指向空闲空间链表的指针丢失了,系统能不能重建空闲空间链表,为什么?
b.试想一个文件系统类似UNIX的使用与分配索引,有多少磁盘I/O操作可能需要阅读的内容,一个小地方的档案在a/b/c?
假设此时没有任何的磁盘块,目前正在缓存。
c.设计一个方案以确定发生内存错误时候总不会丢失链表指针
答:
a.为了重建自由名单,因此有必要进行“垃圾收集”。
这就需要搜索整个目录结构,以确定哪些网页已经分配给了工作。
这些剩余的未分配的网页可重新作为自由空间名单。
b.在自由空间列表里指针可存储在磁盘上,但也许在好几个地方。
c.指针可以存储在磁盘上的数据结构里或者在非挥发性RAM(NVRAM.)
11.4有些档案系统允许磁盘存储将分配在不同级别的粒度。
举例来说,一个文件系统可以分配4KB的磁盘空间作为单一的一个4字节的块或8个512字节的块。
我们如何能利用这种灵活性来提高性能?
对自由空间管理做出哪些修改以支持这一功能?
答:
此项计划将减少内部分裂。
如果文件是5字节,然后可以分配4KB的区块和两个毗连的512字节的块。
除了维持一个位图的自由块,一个目前正在使用的区块内也将保持额外的状态。
当所有的分块成为空闲时候,该分配器将不得不审查这笔额外分配状态分块和凝聚的分块,以获取更大的块。
11.5讨论一旦难以维持的一致性的系统导致计算机崩溃,如何性能优化的文件系统。
答:
由于延迟更新数据和元数据可能出现最主要的困难。
在希望同样的数据可能被更新时候更新可能会推迟,或更新的数据可能是临时性的,而且在不久后可能会被删除。
但是,如果系统崩溃,则不必致力于延迟更新,文件系统的一致都将被破坏。
11.6设想一个在磁盘上的文件系统的逻辑块和物理块的大小都为512B。
假设每个文件的信息已经在内存中,对3种分配方法(连续分配,链接分配和索引分配),分别回答下面的问题:
A,逻辑地址到物理地址的映射在系统中怎么样进行的?
(对于索引分配,假设文件总是小于512块长)
B,假设现在处在逻辑块10(最后访问的块是块10),限制想访问块4,那么必须从磁盘上读多少个物理块)
答:
设想Z是开始文件的地址(块数),
a.毗连。
分裂逻辑地址由512的X和Y所产生的份额和其余的分别。
1:
将X加入到Z获得物理块号码。
Y是进入该区块的位移。
2.:
1
b.联系。
分裂逻辑地址由511的X和Y所产生的份额和其余的分别。
1.:
找出联系名单(将X+1块)。
Y+1是到最后物理块的位移
2.:
4
c.收录。
分裂的逻辑地址由512的X和Y所产生的份额和其余的分别。
1.:
获得该指数块到内存中。
物理块地址载于该指数在所在地块10,Y是到理想的物理块的位移。
2.:
2
11.7一个存储设备上的存储碎片可以通过信息再压缩来消除,典型的磁盘设备没有重新定位或基址寄存器(像内存被压缩时用的一样),怎样才能重定位文件呢?
给出为什么文件再压缩和重定位常常被避免使用的3个原因。
答:
移动文件二级存储涉及大量开销—数据块都必须读入内存,并写回了他们的新地点.此外,移动登记册只适用于连续的文件,和许多磁盘文件不是一种顺序。
相同的,许多新的档案不需要连续的磁盘空间;如果是以逻辑顺序区块保持的磁盘系统,甚至连续档案可用于非相邻块之间的联系。
11.8在何种情况下会使用内存作为RAM磁盘更加有用而不是用它作为一个磁盘高速缓存?
答:
在用户(或系统)确切地知道什么样的数据情况下将是必要的。
缓存的算法为基础的,而RAM磁盘是用户导向。
11.9试想增加下列远程文件访问协议。
每个客户端保持一个名称缓存,缓存翻译的文件名,以对应相应的文件句柄。
哪些问题我们在执行名称缓存应该考虑到?
答:
其中的一个问题是保持一致的名称缓存。
如果缓存条目变得不一致,则应该更新或应检测不一致的地方。
如果发现不一致后,然后应该有一个兜底机制,以确定新的翻译名称。
此外,另一个相关的问题是是否有名称查找执行的一个组成部分的时间为每个子目录的路径,或是否是在一个单一的射击服务器。
如果是运行的一个组成部分的时间,则在用户端可能会获得更多的资料翻译所有的中间目录。
另一方面,它增加了网络流量作为一个单一的名称查找原因序列部分名称查找。
11.10解释为什么记录元数据更新能确保文件系统从崩溃中恢复过来?
答:
对于档案系统崩溃后的重恢复,它必须是一致的或必须能够取得一致。
因此,我们必须证明,测井数据在不断更新的档案系统中是一致的或有能力达成一致的状态。
对于一个不一致的文件系统,元数据必须不完全是书面的或在文件系统的数据结构是错误的。
测井数据的写入的是一个连续的记录。
完整的交易是在它被转移到文件系统结构之前被写入的,如果在文件系统数据更新时系统崩溃,根据记录器里的信息,这些更新仍能完成。
因此可以说,记录器确保了文件系统的变化的完成(不论是在系统崩溃前还是之后)。
因为信息是连续写入到记录器中的,因此变化的命令保证是正确的。
如果改变未完全写入记录其中,它便未改变文件系统结构,便会被丢弃。
因此,通过数据记录重播,结构是相容的或接近相容的。
11.11设想下面的备份方法:
第一天:
将所有的文件从磁盘拷贝到备份介质。
第二天:
将从第一天开始变化的文件拷贝到另一介质。
第三天:
将从第一天开始变化的文件拷贝到另一介质。
与11.7.2小节中的方法不同。
并非将所有从第一次备份后改变的文件都拷贝。
与小节中的方法相比有什么优点?
有什么缺点?
恢复操作是更简单还是更复杂了?
为什么?
【答】还原比较容易,因为你可以去备份磁带上,而不是充分磁带。
没有中间磁带需要读取。
更多的磁带被用作多个文件变化。
12.1除了FCFS,没有其他的磁盘调度算法是真正公平的(可能会出现饥饿)。
a:
说明为什么这个断言是真。
b:
描述一个方法,修改像SCAN这样的算法以确保公平性。
C:
说明为什么在分时系统中公平性是一个重要的目标。
D:
给出三个以上的例子,在这些情况下操作系统在服务I/O请求时做到“不公平”很重要。
【答】a.人们提出了关于磁头目前具备理论上可以尽快达到这些要求的磁道新要求
b.所有那些预定的年龄更老的要求可能是“被迫”处于队列的顶端,一个有关为每个位可定表明,没有任何新的要求可提前这些请求。
对于SSTF,其余的队列将不得不根据最后的这些“旧”的要求重新组织。
c.为了防止超长的响应时间。
d.寻呼和交换应优先于用户的要求。
为了其他内核启动的I/O,如文件系统元数据的写入,优先于用户I/O可能是可取的。
如果内核支持实时进程的优先次序,这些进程的I/O请求该是有利的。
12.2假设一个错哦盘驱动器有5000个柱面,从0到4999,驱动器正在为柱面143的一个请求提供服务,且前面的一个服务请求是在柱面125.按FIFO顺序,即将到来的请求队列是
86,1470,913,1774,948,1509,1022,1750,130
从现在磁头位置开始,按照下面的磁盘调度算法,要满足队列中即将到来的请求要求磁头总的移动距离(按柱面数计)是多少?
a.FCFS
b.SSTF
c.SCAN
d.LOOK
e.C-SCAN
【答】a.FCFS的调度是143,86,1470,913,1774,948,1509,1022,1750,130。
总寻求距离是7081。
b.SSTF的调度是143,130,86,913,948,1022,1470,1509,1750,1774。
总寻求距离是1745。
c.SCAN的调度是143,913,948,1022,1470,1509,1750,1774,4999,130,86。
总寻求距离是9769。
d.LOOK的调度是143,913,948,1022,1470,1509,1750,1774,130,86。
总寻求距离是3319。
e.C-SCAN的调度是143,913,948,1022,1470,1509,1750,1774,4999,86,130。
总寻求距离是9813。
f.C-LOOK的调度是143,913,948,1022,1470,1509,1750,1774,86,130。
总寻求距离是3363。
12.3。
。
。
。
。
【答】d.(65.20-31.52)/65.20=0.52。
百分比加速超过营运基金FCFS是52%,对争取时间。
如果我们的开销包括转动延迟和数据传输,这一比例将加速减少。
12.4假设题12.3中的磁盘以200RPM速度转动。
A:
磁盘驱动器的平均旋转延迟时间是多少?
B:
在a中算出的时间里,可以寻道多少距离?
【答】A7200转120轮换提供每秒。
因此,充分考虑轮换8.33毫秒,平均旋转延迟(一个半轮换)需要4.167毫秒。
B求解:
吨=0.7561+0.2439√L
t=4.167
使L为195.58,
因此,在一个平均旋转延迟的期间我们可以寻找超过195个轨道(约4%的磁盘)。
12.6假设对于同样均衡分发的请求,比较C-SCAN和SCAN调度的性能。
考虑平均响应时间(从请求到达时刻到请求的服务完成之间的距离),响应时间的变化程度和有效带宽,问性能对于相关的寻道时间和旋转延迟的依赖如何?
【答】略
12.7请求往往不是均衡分发的。
例如,包含文件系统FAT或索引结点的柱面比仅包含文件内容的柱面的访问频率要高。
假设你知道50%的请求都是对一小部分固定数目柱面的。
A:
对这种情况,本章讨论的调度算法中有没有那些性能特别好?
为什么?
B:
设计一个磁盘调度算法,利用此磁盘上的“热点”,提供更好的性能。
C:
文件系统一般是通过一个间接表找到数据块的,像DOS中的FAT或UNIX中的索引节点。
描述一个或更多的利用此类间接表来提高磁盘性能的方法。
【答】a.SSTF将采取情况的最大的优势。
如果提到的“高需求”扇区被散置到遥远的扇区,FCFS可能会引起不必要的磁头运动。
b.以下是一些想法。
将热数据放置于磁盘的中间附近。
修改SSTF,以防止饥饿。
如果磁盘成为闲置大概50毫秒以上,则增加新的政策,这样操作系统就会对热点地区产生防患未然的寻求,因为接下来的要求更有可能在那里。
c.主要记忆体缓存数据,并找到一个与磁盘上物理文件密切接近的数据和元数据。
(UNIX完成后者的目标分配数据和元数据的区域称为扇区组。
)
12.8一个RAID1组织读取请求是否可以比RAID0组织实现更好的性能(非冗余数据带)?
如果是的话,如何操作?
【答】是的,一个RAID1级组织在阅读要求方面可以取得更好的性能。
当执行一个读操作,一个RAID1级系统可以决定应访问哪两个副本,以满足要求。
这种选择可能是基于磁盘头的当前位置,因此选择一个接近目标数据的磁盘头可以使性能得到优化。
12.9试想一个RAID5级的组织,包括五盘,以
平等套4次盖帽4个磁盘存储的第五盘。
该会有多少区块被访问以履行下列?
a.一个区块数据的写入
b.多个毗连区块数据的写入?
【答】a)写一个块的数据需要满足以下条件:
奇偶块的读取,存储在目标块中旧的数据的读取,基于目标区块上新旧内容的不同的新的奇偶的计算,对奇偶块和目标块的写入。
b)假设7毗连区块在4块体边界开始。
一个7个毗连区块的数据的写入可以以7个毗连区块的写入形式进行,写奇偶块的首个4块,读取8块,为下一组4块计算奇偶以及在磁盘上写入相应的奇偶区块。
12.10对比达到一个RAID5级的组织与所取得的一个RAID1级安排的吞吐量如下:
a:
在单一块上读取操作
b:
在多个毗连区块读取操作
【答】
a)吞吐量的数额取决于在RAID系统里磁盘的数量。
一个RAID5由为每套的奇偶块的四张块延长的5个磁盘所组成,它可能同时支持四到五次操作。
一个RAID1级,包括两个磁盘可以支持两个同步行动。
当然,考虑到磁盘头的位置,RAID级别1有更大的灵活性的副本块可查阅,并可以提供性能优势。
b)RAID5为访问多个毗连区块提供更大的带宽,因为邻近的区块可以同时访问。
这种带宽的改善在RAID级别1中是不可能的。
12.11对比用一个RAID级别写入作业与用一个RAID级别1写入作业取得的业绩。
【答】RAID级别1组织仅根据当前数据镜像便可完成写入,另一方面,RAID5需要在阅读之前读取基于目标快新内容更新的奇偶块的旧内容。
这会导致RAID级别5系统上更多间接的写操作。
12.12假设您有一个混合组成的作为RAID级别1和RAID级别5的磁盘配置。
假设该系统在决定该组织的磁盘用于存储特别是文件方面具有灵活性。
哪个文件应存放在1级的RAID磁盘并在5级的RAID磁盘中用以优化性能?
【答】经常更新的数据需要存储在磁盘阵列1级的磁盘,而更经常被读取或写入的数据,应存放在RAID5级的磁盘。
12.14有没有一种方法可以实现真正的稳定存储?
答:
真正的稳定存储永远不会丢失数据。
最基本的稳定存储技术就是保存多个数据的副本,当一个副本失效时,可以用其它的副本。
但是,对于任何一种策略,我们都可以想象一个足够大的灾难可能摧毁所有的副本。
12.15硬盘驱动器的可靠性常常用平均无故障时间(MTBF)来描述。
虽然称之为时间,但经常用设备小时来计算无故障时间。
a.如果一个大容量磁盘有1000个驱动器,每个的MTBF是750000小时,一下哪个描述能最好地体现该大容量磁盘出错的概率?
每千年一次,每百年一次,每十年一次,每年一次,每月一次,每周一次,每天一次,每小时一次,每分钟一次,还是每秒一次?
b.根据死亡统计资料,平均来说,20至21岁的美国人死亡的概率是千分之一。
推断出MTBF是20年。
把这个数据从小时换成年。
用MTBF来解释这个20年的寿命,可以得到什么?
c.如果一个厂商宣称某种型号的设备有100万小时的MTBF。
这对设备预期的寿命有什么影响?
答:
a.750000的平均无故障时间除以1000,得到故障间隔为750,所以是每月一次。
b.根据小时来计算,人的平均无故障时间是8760(一年中的小时数)除以0.001,得到8760000的MTBF值。
8760000小时约等于1000年。
所以,对于一个与、预期寿命是20年的人来说,这并不能说明说明。
c.MTBF与设备的寿命无关。
硬盘的一般设计寿命是5年。
即使一个硬盘真的有100万年的MTBF,设备本身的寿命也达不到那么长时间。
12.16讨论sparing扇区和slipping扇区的优点和缺点。
答:
sparing扇区会增加额外的换道时间和旋转延迟,可能使响应时间增加8ms。
sparing扇区对将来的读盘有较小的影响,但在重映射的时候,需要读写所有道上的数据来跳过坏块。
12.17描述为什么操作系统要知道块存储到磁盘的详细信息。
操作系统这样通过这些来提高文件系统的性能?
答:
当为文件分配物理块的时候,如果几何相邻的块有更多关于块物理方位的信息,就把这些块分配给文件。
并且,可以在同一柱面的不同光盘面连续分配两个块,这使下一次的访问时间减到了最小。
12.18操作系统常把移动磁盘当作共享文件系统,而一个磁盘上一次只能有一个应用。
说出磁盘和磁带处理方式不同的3点原因。
操作系统通过共享文件系统访问磁带,还需要什么特殊的支持。
应用共享磁带,需要什么特殊的属性,能否把文件当作磁盘上的文件来使用?
答:
a.磁盘有更快的随机访问时间,所以对交叉存储的文件有更好的性能。
而磁带需要更多的定位时间。
所以,当两个用户访问一个磁带时,驱动器的大部分时间都用作转换磁带和定位,只有少量的时间用于数据传输。
这种情况类似于虚拟内存没有足够的物理内存而发生thrashing。
b.磁带的带盘是可以移动的。
有时,可能需要把当前带盘的数据存放在拷贝中(远离电脑的地方),来防止电脑所在处发生火灾。
c.磁带常常用于在生产者和消费者之间传送大量的数据,这些磁带不能作为不同的共享存储设备。
为了支持共享文件系统方式访问磁带,操作系统需要提供一般文件系统的功能,包括:
管理所有磁带上的文件系统命名空间;空间回收;I/O调度。
访问磁带文件系统的应用需要能承受长时间的延迟。
为了提高性能,这些应用要大量减少I/O操作来换取磁带调度算法较高的效率。
12.19如果磁带设备每英尺存储的比特数与磁盘相同,对性能和价格会产生什么影响?
答:
为了达到与磁盘相同的单位存储量,磁带的单位存储量会以2的指数级增长。
这会使磁带比磁盘便宜。
磁带的容量可能会大于1GB,所以一个磁带就可以代替现在的一个磁带机,因而减少了花费。
单位存储量不会对数据传输造成压力,但是大容量会减慢磁盘的转换。
12.20通过简单的计算,比较由磁盘和引入第三方存储设备的1兆节的操作系统在花费和性能上的不同。
假设磁盘的容量是10GB,花费100