83 lines
3.9 KiB
TeX
83 lines
3.9 KiB
TeX
\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} |