SchoolWork-LaTeX/操作系统/作业/第四章作业.tex

83 lines
3.9 KiB
TeX
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

\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不受限制 21KB 3256KB 464MB
516GB 61KB+256KB+64MB+16GB
710KB+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}