问题
问答题
在磁盘上有一个文件系统,磁盘每块512字。假定每个文件在目录中占有一个目录项,该目录项给出了文件名、第一个索引块的地址、文件长度(块数)。在索引块中(包括第一个索引块)前面511个字指向文件块,即第i个索引项(i=0,1,…,510)指向文件的第i块,索引块中最后一个字指向下一个索引块,最后一个索引块中最后一个字为nil。假定目录在存储器中,每个文件的逻辑块号均从0开始编号,逻辑块长与物理块长相同,对这样的索引物理结构,该系统应如何将逻辑块号变换成物理块号
答案
参考答案:该题的己知条件较烦琐,首先应将条件转化成磁盘存储结构图,如图4-3所示,为成组链接方式。其中目录表为查找文件的起始点,另外,目录表中文件按顺序排放,即实际物理块编号越低的文件越排在前面。首先根据逻辑文件的文件名找到目录表中该项,再计算排在该项前面的文件总长度n,若n<511,则令n加上目录表中首地址d1,即得n+d1(此即当前要查找文件的起始地址),再根据逻辑块号k,得n+d1+k,此即物理块号。若n≥511,则令d1+511,得第二个索引块地址d2,令n=n-511,若n≥511,则令d<sub>2+511,得第三个索引块地址,依次类推至n<511,di+n+k则为物理块号。