-->
当前位置:首页 > 题库 > 正文内容

主观题:h669.考虑一个存在于磁盘上的文件系统,其中的文件由大小为512B的逻辑块组成。假定每一个文件有一个文件目录项,该目录项包含该

Luz2年前 (2022-11-10)题库590
考虑一个存在于磁盘上的文件系统,其中的文件由大小为512B的逻辑块组成。假定每一个文件有一个文件目录项,该目录项包含该文件的文件名、文件长度以及第一块(或第一索引块)和最后一块的位置,而且该目录项位于内存。对于索引结构文件,该目录项指明第一索引块,该索引块又一次指向511个文件块(每个索引值占4B),且有一指向下一索引块的指针(指针占4B)。针对连续、链接、索引结构的每一种,如果当前位于逻辑块30(即之前最后一次访问的块是逻辑块30)且希望访问逻辑块20(假设逻辑块号从0开始编号),那么,必须分别从磁盘上读多少个物理块?







答案:解:
(1) 对于磁盘上的连续结构文件,由文件的逻辑块号、文件块大小、磁盘物理块大小以及文件的首块位置,可以计算该逻辑块所在的物理块号(地址)A:
A=A0+(N*L)/S=A0+20*512/2048= A0+5
其中A0为文件第0块位置,
N为逻辑块号(N=20),
L为逻辑块长度(L=512),
S为磁盘块长度(由已知条件得S=511*4+1*4=2048)。
因此,无论当前读写位置如何,要访问第20个逻辑块,只要直接读出文件的第6个物理块,即只需读1个磁盘块即可(因目录项已在内存)。(5分)
(2) 对于磁盘上的链接结构文件,当前读写了逻辑块30,要访问逻辑块20,需要从文件开头开始。由前面分析知,磁盘块大小2048B,故每个盘块可存放4个逻辑块。逻辑块20在文件的第6个物理块中,因此需依次读出第1、2、3、4、5等盘块,从第5个物理块获得第6个物理块的块号,在读出第6物理块,其开头的512B即是20号逻辑块的内容。所以,需读6个物理块。
(3) 对于磁盘上的索引结构文件,若要访问逻辑块20(假定此前在访问逻辑块30时已将索引块保存在内存),可在内存中的索引表中查到逻辑块20所在的第6个物理块号,再将该物理块读出来,其开头512B即是20号逻辑块的内容。因此需要读1个物理块。(5分)

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。