问答题 有一个文件系统,根目录常驻内存,如图所示。文件目录采用链接结构,每个目录下最多存放80个文件或目录(称为下级文件)。每个磁盘块最多可存放10个文件目录项:如果下级文件是目录文件,则上级目录项指向该目录文件的第一块地址。假设目录结构中文件或子文件按自左向右的次序排列,“…”表示尚有其他的文件或子目录。
问答题 普通文件采用UINX三级索引结构,即文件控制块中给出13个磁盘地址,前10个磁盘地址指出文件前10个块的物理地址,第11个磁盘地址指向一级索引表,一级索引表给出256个磁盘地址。即指出该文件第11块至第266块的物理地址;第12个磁盘地址指向256个一级索引表的地址;第13个磁盘地址指向三级索引表,三级索引表指出256个二级索引表的地址,主索引表存放在目录项中,若要读入IA/DIG/I/K的第7456块,至少启动硬盘多少次,最多几次?
【正确答案】一个文件的所有块可以通过以下方式找到:直接提供FCB找到前10块,通过一级索引找到256块,通过二级索引找到256×256块,通过三级索引找到256×256×256块,所以一个文件最大可以有10+256+2562+2563=16843018块。
如果要找/A/D/G/I/K中的某一块,首先要找到其FCB,最好的情况是:每次读取目录描述信息的时候都在第一块找到下级目录或文件,所以要找到该文件至少要读取A、D、G、I四个目录项的第一块,读取K的FCB,总共5次启动磁盘;最坏情况是:每次读取目录描述信息的时候都在最后一块找到下级的目录或文件,所以要找到该文件至少要读取A的第一块,D、G、I三个目录项的所有4个块,因此读取K的FCB,总共需要1+4×3+1=14次启动磁盘。找到FCB后再读取某一块,如果这一块在前10块之列,那么再启动一次硬盘就可以找到这一块;如果这一块在最后一块,则可能需要通过三级索引找到这一块,这总共需要读取三级索引和最后一块共3+1=4次取硬盘。综上,最好情况下,只需要启动5+1=6次硬盘。最坏情况需要启动14+3+1=18次硬盘。
【答案解析】
问答题 若普通文件采用链接结构,要读取/A/D/G/I/K的第175块,最少启动硬盘多少次,最多几次?
【正确答案】为读取FCB所启动的硬盘次数和第一小题一样,最少为5次,最多为14次,而读取数据需启动175次,因此读取第175块最少需要启动5+175=180次硬盘,最多需要启动14+175=189次硬盘。
【答案解析】
问答题 若将I设置为当前目录,可以减少几次启动硬盘的次数?
【正确答案】若将I设置为当前目录,就可以直接读取到K的FCB,根据第一小题中的分析,最多可以少启动磁盘14次,最少可以少启动磁盘5次。
【答案解析】