\documentclass[全部作业]{subfiles} \input{mysubpreamble} \begin{document} \setcounter{chapter}{3} \chapter{文件系统} \begin{enumerate} \questionandanswer[]{ 一个文件系统的盘块大小为1KB,每块地址用4B表示,当分别采用连 续、链接、二级索引和UNIX S V 分配方案时,试确定各方案能管理的最大文件, 管理一个10MB的大文件和一个10KB的小文件时所需的管理专用块数,以及要 访问大文件的第9M+3.5KB单元时需要的磁盘I/O操作次数。 A$\sim $D:(1)不受限制 (2)1KB (3)256KB (4)64MB (5)16GB (6)1KB+256KB+64MB+16GB (7)10KB+256KB+64MB+16GB }{ 二级索引管理的最大文件: $$ 256\times 256\times 1 \mathrm{KB} = 2^{8}\times 2^{8}\times 1 \mathrm{KB} = 2^{16}\mathrm{KB} = 2^{6} \mathrm{MB} = 64 \mathrm{MB} $$ 二级索引专用块数: $$ 10\text{KB}/1\text{KB} =10 \text{个存储块} $$ $$ \left\lceil 10/256 \right\rceil = 1 \text{个二级索引块}, \quad \left\lceil 1/256 \right\rceil =1 \text{个一级索引块} $$ $$ 10\text{MB}/1\text{KB}=10\times 2^{10}\text{个存储块} $$ $$ 10\times 2^{10}/256 = 10\times 2^{2} = 40 \text{个二级索引块}, \quad \left\lceil 1/256 \right\rceil =1 \text{个一级索引块} $$ UNIX专用块数: $$ 10\text{MB}-10\text{KB}-256\text{KB} = (10\times 2^{20} - 10\times 2^{10} - 256\times 2^{10}) = 10213376\text{B} = 9974\text{KB} $$ $$ \left\lceil 9974/256 \right\rceil = 39 \text{个二级索引块}, \quad \left\lceil 39/256 \right\rceil =1 \text{个一级索引块} $$ $$ 1+39+1=41 \text{个管理专用块} $$ 大文件的某处信息需要的IO次数: $$ \left\lceil 9\times 2^{10} +3.5 \right\rceil + 1 = 9221 $$ \begin{center} \begin{tabular}{cccccc} \toprule & & 连续分配 & 链接分配 & 二级索引 & UNIX \\ \midrule \multicolumn{2}{c}{管理的最大文件} & A(1) & B(1) & C(4) & D(7) \\ \hline \multirow{2}{*}{管理用的专用块数} & 10KB 文件 & 0 & 0 & 2 & 0 \\ & 10MB 文件 & 0 & 0 & 41 & 41 \\ \hline 大文件的某处信息 & 9M+3.5KB & 1 & 9221 & 3 & 3 \\ \bottomrule \end{tabular} \end{center} } \questionandanswer[]{ 在 Unix 文件系统中,文件的物理组织为 Unix 直接间接混合寻址方式,假设一个进程要在第 4200 字节、第 210000 字节和第800000 字节三个偏移处读文件,请问分别要访问多少次磁盘?并以必要的图示说明访问之过程。假设该文件的 FCB(即文件说明或文件控制块)已读入内存,每个磁盘块大小为1K,块号用 32 位的指针表示。 }{ 32位即4B,所以一个索引块能存储 $1\text{KB}/4\text{B}=256\text{个块指针}$。 \includexopp[1.1]{4.2.1} 图中用不同颜色写出了不同偏移处的计算步骤以及访问过程。访问磁盘次数即不同颜色的箭头数量,在第 4200 字节、第 210000 字节和第800000 字节三个偏移处读文件,分别要访问1、2、3次磁盘。 } \questionandanswer[]{ 假设文件系统的盘块大小为 4KB, 某文件的物理结构采用连续文件方式,假设该文件的首个盘块的盘块号为 85,那么该文件的第8292 字节单元在第几个盘块上?其盘块号为多少?该字节单元是盘块内的第几字节? }{ $$ 8292\text{B}/4\text{KB} = 8292 \div (4\times 2^{10}) = 2 \cdots\cdots 100 $$ \includexopp[1]{4.3.1} 所以该文件的第8292字节单元在第3个盘块上,其盘块号为87,该字节单元是盘块内的第101字节。 } \end{enumerate} \end{document}