在实现文件系统时,为加快文件目录的检索速度,可利用文件控制块分解法。假设目录文件存放在磁盘上,每个盘块512B。文件控制块占64B,其中文件名占8B。通常将文件控制块分解成两部分,第一部分占10B(包括文件名和文件内部号),第二部分占56B(包括文件内部号和文件其他描述信息)。
问答题
假设某一目录文件共有254个文件控制块,试分别给出采用分解法前和分解法后,查找该目录文件的某一个文件控制块的平均访问磁盘次数(假设访问每个文件控制块的概率相等,结果保留到小数后两位)。
【正确答案】正确答案:因为原本整个文件控制块都是在目录中的,而文件控制块分解法将文件控制块的部分内容放在了目录外,所以检索完目录后别忘了还需要读取一个磁盘找齐所有的文件控制块的内容。 分解法前,每个盘块最多可容纳的文件控制块数目为512/64=8。现在有254个文件控制块,254=31×8+6,即需要32块物理块,且最后一块物理块存放了6个文件控制块,没有放满。所找的目录项在第i块物理块所需的磁盘访问次数为i,又由假设知道,访问每个文件控制块的概率相等,所以给出计算式子如下: (8×(1+2+3+…+31)+6×32)/254=16.38(次) 分解法后,每个盘块最多可容纳的文件控制块数目为512/10=51。现在有254个文件控制块,254=51×4+50,即需要5块物理块,且最后一块物理块存放了50个文件控制块,也没有放满。所找的目录项在第i块物理块所需的磁盘访问次数为i+1,所以给出计算式子如下: [51×(2+3+4+5)+40×6]/254=3.99(次)
【答案解析】
问答题
一般地,若目录文件分解前占用n个盘块,则分解后改用m个盘块存放文件名和文件内部号部分。若要使访问磁盘次数减少,m、n应满足什么条件(假设访问每个文件控制块的概率相等,且最后一个盘块刚好放满文件控制块)?
【正确答案】正确答案:分解法前平均访问磁盘次数: (1+2+3+…+n)/n=n×(n+1)/2/n=(n+1)/2(次) 分解法后平均访问磁盘次数: [2+3+4+…+(m+1)]/m=m×(m+3)/2/m=(m+3)/2(次) 为了使访问磁盘次数减少,显然需要: (nl+3)/2<(n+1)/2,即m<n-2
【答案解析】