第九课 磁盘 存储器管理
教学目的,
磁盘存储器既用于存储文件,也是实现虚拟存储器
所必需的硬件,磁盘存储器管理的主要任务
?为文件分配必要的存储空间;
?合理地组织文件存取方式,以提高对文件的访问速
度;
?提高磁盘存储空间的利用率;
?提高对磁盘的 I/ O速度,以改善文件系统性能;
?采取必要冗余措施来确保文件系统的可靠性。
教学要求:
? 了解 磁盘组织,磁盘存储器类型和磁盘的访问时间
等 磁盘性能,熟悉 磁盘调度算法。
? 掌握文件的物理结构及连续 分配,链接 分配,索引
分配 和 UNIX直接间接混合寻址方式等 外 存 分配方法 。
? 掌握 空闲表,位示图法、空闲块链接法和 UNIX OS采
用的成组链接法等空闲存储空间的 管理 方法。
(一) 磁盘 I/O(Disk I/O)
( 1) 磁盘性能概述
1。 磁盘组织:
?磁盘物理组织
每个磁盘都是由盘片,磁道和扇区组成。磁道是盘片
每个表面上的环形区域,柱面是有多个盘片的磁盘上处
于同一磁头位置的一组磁道组成。盘片的每一个面有一
个磁头,磁头一般都连在一个公用的磁头移动机构磁臂
上,这样所有的磁头都一起移动,每盘片的每个面上的
磁头都永远定位在同一逻辑道上。每个磁道被分为扇区
的部分,一个扇区是磁盘上最小的物理存储单元,扇区
的数据大小永远都是 2的幂,并且几乎永远是 512B。 MS-
DOS,Windows98/NT都以簇为单位来开辟存储区,而簇
是一个或多个连续的扇区。
柱面
扇区
磁臂
磁头
磁盘性能概述 -1
磁盘的容量 =每扇区的字节数( 512字节) × (扇区
数 /道) × (柱面数) × (磁头数)
由于 DOS最多只能检测到前 1024个柱面,为了解决上述困难,
引入逻辑磁头概念,即通过增加磁头数来减少柱面数,达到
用 DOS管理大空间的硬盘,但由于记录磁头数( 8位)、柱面
数( 10位)、扇区数( 6位)数据结构限制,用 DOS管理硬盘
最大容量 =每个扇区的容量 × 每个磁道扇区数量 × 每个磁头
柱面数(磁道数) × 磁头数= 0.5K× 63× 1024× 256≒7.8GB 。
机器 CMOS配置中为 4.3GB硬盘设置以下三种工作模式供选
择:
Mode Sector Head Cgls 容量
NORMAL 63 9 14848 283MB
LARGE 63 144 928 4.01G
LBA 63 255 524 4.01G
Disks parameters
Disk parameters for the original IBM PC floppy disk
and a Western Digital WD 18300 hard disk
磁盘性能概述 -2
?磁盘的逻辑组织
一个物理磁盘在逻辑上可分为几个区域,分区信息存
放在主引导块分区表中。分区表中保存磁盘各种分区起
始和终止的磁头、柱面、扇区、总的扇区数等信息。在
主引导块中有三种类型分区:主分区、扩展区和逻辑分
区。主分区是常用的,加载一个操作系统所需文件安装
其上,操作系统必须从主分区上引导,一个硬盘上只能
有四个主分区。为了突破四个分区的限制,就要在四个
分区中创建立一个扩展分区。扩展分区其实是一个逻辑
盘,它不能格式化,也不能分配盘符。但可在扩展分区
中创建一个或多个逻辑分区,(或称逻辑驱动器),每
个逻辑分区分配一个盘符,可以格式化成一个特定的文
件系统,MS-DOS,Windows98和 WindowsNT可用 fdisk命
令将硬盘分区。
磁盘性能概述 -3
2。 磁盘存储器类型
磁盘存储器由磁盘驱动器, 磁盘控制器和磁盘 ( 片 ) 三个
部分组成 。 在硬盘存储器中, 将若干个盘片组合在一起, 形
成一个盘片组 。 当驱动器旋转时, 所有盘片都沿轴平面转动,
目前硬盘转速已达每分钟 5400转 ( 高的可达 7200RPM) 。 紧
靠着盘片的是传动臂, 臂的末端是读写头 。
按磁头的工作方式, 可以分为活动头磁盘和固定头磁盘 。
?活动头磁盘
活动头磁盘一个盘面上仅配有一个磁头, 所有磁头都安装
在一个传动臂上, 在访问盘面上的磁道时, 传动臂在步进电
机的控制下, 可在整个盘面上从外向内, 或从内向外移动,
这称为寻道 。 活动头磁盘只能进行串行读 /写, 导致 I/O速度
较馒, 但是由于结构简单, 仍广泛用于中, 小型磁盘设备中 。
微机上配置的温盘和软盘, 都采用活动磁头结构 。
磁盘性能概述 -4
?固定头磁盘
固定头磁盘在每条磁道上都有一个读 /写磁头,所有
的磁头都被装在一刚性磁臂中,通过这些磁头可访问所
有的磁道,可以进行并行读 /写操作,有效地提高了磁
盘的 I/O速度。这种结构的磁盘主要用于大容量磁盘上。
3。磁盘的访问时间
由于磁盘上的一个扇区要用三个参数(柱面号、磁头
号和扇区号)来定位,所以对磁盘的访问时间,包括以
下三部分的时间:
?寻道时间( Seek time ) TS
这是把磁头从当前位置移动到指定磁道上所经历的时间。
该时间是启动磁盘的时间 s与磁头移动 n条磁道所花费的
时间之和。
磁盘性能概述 -5
即 TS = m× n十 s
式中, m是一个常数, 它与磁盘驱动器的速度有关 。
对一般磁盘而言, m=0.3;对高速磁盘而言, m≤ 0.1,
磁盘启动时间约为 3ms。 这样, 对一般的硬盘, 其寻
道时间将随寻道距离的增大而增大, 大约为 10~
40ms( 目前硬盘的平均寻道时间达 9.5ms) 。
?旋转延迟时间( Rotational delay or rotational
latency ) Tr
Tr 是指定扇区移动到磁头下所经历的时间。对于硬
盘来说,典型的转速为 3600RPM(目前硬盘的转速为
5400RPM,甚至达到 7200RPM),每转需时 16.7ms,
平均旋转延迟时间为 8.3ms。对于软盘,其旋转速度
为 300或 600RPM,平均 Tr为 50~ 100ms。
磁盘性能概述 -6
?传输时间 Tt
Tt 是指把数据从磁盘读出,或向磁盘写人数据所经历
的时间,它的大小与每次所读/写的字节数 b及旋转速
度 r(/秒 )有关:
Tt =b/(r*N) 式中 N为一条磁道上字节数。当一次读/
写的字节数相当于半条磁道上的字节数时,Tt与 Tr相同。
在这三部分时间里,其中寻道时间 TS占的比例最大,
而传输时间所占了相当小的比例。即在访问时间中,寻
道时间和旋转延迟时间占据了访问时间的大头,基本上
都与所读/写数据的多少无关。
(2) 磁盘调度算法
磁盘是可被多个进程共享的设备 。 当有多个进程都
请求访问磁盘时, 应采用一种适当的调度算法, 以
减小各进程对磁盘的平均访问 ( 主要是寻道 ) 时间 。
目前常用的磁盘调度算法有:先来先服务, 最短寻
道时间优先, 扫描算法和循环扫描算法等 。
1.先来先服务 FCFS算法
这是一种最简单的磁盘调度算法 。 它根据进程请求
访问磁盘的先后次序进行调度 。 此算法的优点是公
平, 简单, 且每个进程的请求都能依次得到处理,
不会出现某一进程的请求长期得不到满足的情况 。
但此算法由于未对寻道进行优化, 致使平均寻道时
间可能较长 。
FCFS Scheduling先来先服务调度
Illustration shows total head movement of 640
cylinders.如下图所示,磁头总共移动了 640个柱面的距离。
磁盘调度算法 -1
2,最短寻道时间优先 SSTF算法
该算法总是为那些与当前磁头所在的磁道距离最近
请求服务,也就是执行寻道时间最短的那个 I/O请求。
这种调度算法有较好的平均寻道时间。 SSTF较之 FCFS
有较好的寻道性能,故曾被广泛采用。
SSTF
磁头总共移动了 236个柱面的距离
磁盘调度算法 -1
3,扫描 ( SCAN) 算法
SSTF算法虽然获得较好的寻道性能,但它可能导致某
些进程长时间的得不到服务(称之为 饥饿 现象)。因为
只要不断有新进程到达,且其所要访问的磁道与磁头当
前所在磁道的距离较近,这种新进程的 I/O请求必被优
先满足 。对 SSTF算法略加修改后所形成了 SCAN算法。
该算法不仅考虑到欲访问的磁道与当前磁道的距离,更优
先考虑的是磁头的当前移动方向。即当磁头正在自里向
外运动时,SCAN算法要选择的下一个访问对象是其欲访
问的磁道在当前磁道之外,又是距离最近的。直至再无
更外的磁道需要访问时,才将磁臂换向,自外向里运动。
从而避免了饥饿现象的出现。由于这种算法中磁头移动
的规律象电梯的运行,所以又称为电梯调度算法。
SCAN
磁头总共移动了 236/208个柱面的距离
磁盘调度算法 -2
4.循环扫描 CSCAN算法
这是 SCAN算法的一种变种算法,是为了提供更均匀的等
待时间而设计的。 CSCAN算法规定磁头只能单向运动
(自里向外),当磁头运动到最外面的被访问磁道时,
磁头立即返回到最里面的欲访的磁道,即将最小磁道号
紧接着最大磁道号构成循环,进行扫描。
C-SCAN
磁头总共移动了 个柱面的距离
C-SCAN-1
磁头总共移动了 个柱面的距离
磁盘调度算法 -3
5,N-Step-SCAN算法
在 SSTF,SCAN及 CSCAN这几种算法中, 都可能出现磁臂
停留在某处不动的情况 。 例如, 有一个或几个进程对
某一磁道有着较高的访问频率, 反复请求对某一磁道
进行 I/O,从而垄断了整个磁盘设备, 把这一现象称为
,磁臂粘着, 。 N步 SCAN算法是将磁盘请求队列分成若
干个长度为 N的子队列, 磁盘调度将按 FCFS算法依次处
理这些子队列, 又按 SCAN算法处理队列中的每一个请
求, 这样就可避免出现粘着现象 。 当 N值取得很大时,
会使其性能接近于 SCAN算法;当 N=1时, 该算法退化
为 FCFS算法 。
磁盘调度算法 -4
6,FSCAN算法
FSCAN算法实质上是 N-Step-SCAN算法的简化 。 它
只将磁盘请求访问队列分成两个子队列 。 一个是当
前所有请求磁盘 I/O的进程队列, 由磁盘调度按 SCAN
算法进行处理 。 另一个队列则是在扫描期间, 新出
现的所有请求磁盘 I/O的进程队列, 这样所有的新请
求都将被推迟到下一次扫描时处理 。
(练习 4,5)
算法 原理 吞吐

响应时间
先来先服

FIFS
按请求的时间先后排序并
按此给予服务
吞吐量
较低
平均响应时间长
各进程响应时间变化幅度较小, 公平,
进程响应时间可预测
最短查找
时间优先
SSTF
选择请求队列中柱面为最
接近磁头当前柱面的访问
要求作为下一个服务对象
吞吐量
最高
平均响应时间最短
对中间磁道访问服务比内, 外两侧磁道
服务好, 造成响应时间变化幅度大,
在服务请求多时, 内外边缘请求被无限
期延迟, 不可预期
基本扫描
SCAN
磁盘在来回扫描过程中为
各请求提供服务
吞吐量
较高
平均响应时间较短
克服 SSTF服务集中中间磁道和响应时
间变化较大缺点
两侧磁道的访问的频率低于中间磁道
循环扫描
C-SCAN
C-LOOK
磁声在单向向内 ( 或向外 )
移动中对各请求提供服务
吞吐量
较高
平均响应时间较短
基本扫描优点
对两侧磁道和中间磁道访问的频率均匀
N步扫描
FSCAN
扫描队列分成苦干个 N步
的子队列
磁臂在向内/外移动中是
服务于在磁臂改变方向前
达到的访问要求
吞吐量
较高
平均响应时间较短,基本扫描优点
对内侧磁道访问和中间磁道访问频率均
匀,各进程响应时间在一定时间内可
预测,防止磁臂粘着 ( 反复请求对某一
磁道服务造成垄断 )
(二)外 存 分配方法
文件在存储介质上的组织方式称为文件的存储结构或称物
理结构、物理文件。 外 存 分配方法有 连续 分配,链接 分配、
索引 分配,相应 物理文件有:顺序文件、链接文件、索引文
件。
( 1)连续 分配 (Contiguous allocation)—— 顺序文件
把逻辑文件中连续的信息存储到磁盘连续的物理盘块中所
形成的文件称为顺序文件。这种文件保证了逻辑文件中逻辑
记录(流式文件为逻辑块、页)顺序和存储器中文件占用盘
块顺序的一致性。为使系统能查找文件中任一记录,在文件
控制块 FCB(或在目录)中存放文件第一个记录所存放的盘块
号 ADRR和文件总的盘块数 N,如下图所示。如假设逻辑块和盘
块大小相等,则要读取文件第 Ⅰ 页(页从 0开始计数)所在盘
区块号 J可通过下式计算得到,J= ADRR+ I。
逻辑地址 LA对应逻辑块号为 I=LA/块大小
块内位移为 d=LA mod 块大小
连续 分配 —— 顺序文件 -1
文件首块号
ADRR = 120
文件总块数
N = 9
FCB 文 件
0 页 1 页 2 页 3 页 4 页 5 页 6 页 7 页 8 页
盘块号 120 121 122 123 124 125 126 127 128
顺序文件的优点是管理简单,顺序存取速度快。它的缺点是增删记录
相当困难,磁盘存储空间的利用率不高,有外零头。所以顺序文件只
适用于长度不变的只读文件。
Contiguous Allocation of Disk Space
( 2)链接 分配 (Chained allocation)
—— 链接文件
逻辑块号
FCB 0 1 2 3 4
文件头块块号 3
文件尾块块号 20
8
16
10
20

物理块号 3 8 16 10 20
在将逻辑文件存储到外存上时,不要求为整个文件分配连续的空间,而
是可以装入到离散的多个盘块中,只在每个盘块最后一个单元设置链
接指针,然后用链接指针将这些离散的盘块链接成一个队列,这样形
成的物理文件称为链接文件。管理链接文件只需在文件控制块 FCB 中
设二项,一是存储文件头块信息的盘块号,另一是存储文件尾块信息
的盘块号。链接文件结构如下图所示。
Linked Allocation of disk space
链接 分配 —— 链接文件 -1
? 链接文件的优点是盘存储空间利用率高,文件增删
改记录方便,它的缺点是在随机存取某一个记录前
需要化多次盘I /O操作读该记录前的文件信息以取
得该记录的盘块号,才能存取该记录。如要读取逻
辑块号第 3块的信息,就要先进行 3次盘 I/O操作以读
取存放第 3块逻辑块信息的盘块号,所以链接文件只
适用于顺序存取文件。 (练习 1)
( 3) 索引 分配 (Indexed allocation)
—— 索引文件
索引文件是实现非连续存储的另一种方法,系统为加快记
录的检索过程,为每个文件建立了一张索引表,每个逻辑块
在索引表中占有一个表项,登记存放该逻辑块的盘块号。在
FCB中放置了索引表指针,它指向索引表始址。索引表存放在
盘块中,当索引表很大时,需要用多个盘块。管理有多个盘
块的索引表有二种方法:一种方法是将存放索引表的盘块用
链接指针链接起来称为链接索引。链接索引可以顺序地读取
索引表各索引表项,但读取后面的索引表项类同链接文件需
要化费多次盘 I/O操作。另一种方法是采用多级索引,即为索
引表本身建立索引表,从而形成了两级索引,如所形成的两
级索引表还不能存放在一个盘块中,则需要为二级索引表建
索引表,而形成三级索引。下图所示为两级索引。
系统采用多级索引的级别由系统管理的最大文件所决定。
Example of Indexed Allocation
索引 分配 —— 索引文件 -1
如果每个盘块的大小为 4KB,每个盘块号占 4B,则一个盘块可
有 1K个索引表项。一级索引可以管理的最大文件为 1K× 4KB=
4MB,二级索引可以管理的最大文件为 1K× 1K× 4KB=4GB,而
三级索引可以管理的最大文件为 4TB。
? 采用链接索引读取大文件的最前和最后索引表项时需要盘 I/O
操作次数相差很大,如文件大小为 450MB,则索引表需要 113
块盘块存放,读取第一逻辑块只需一次盘 I/O操作即取得所在
盘块号,而读取最后逻辑块需要 113次才能取得所在盘块号。
而对于多级索引,不论对大文件还是小文件,不论是大文件
开始或结尾处,读取文件某个逻辑块的盘 I/O操作次数是固定
的,例如对二级索引要读取文件第 8500号逻辑块信息,必须
根据逻辑块号分别进行三次盘 I/O操作,第一次先读取主索引
表第 8项索引表项( 8500/ 1000= 8取整)取得二级索引表项
所在盘块号。第二次读二级索引的盘块,读得第 8500号逻辑
块所在盘块号,第三次才能进行存取第 8500号逻辑块。
链接索引 分配
80
50
10
12
:
:
25
80
#0 10
#1 12
:
:
#1022 25120
:
:
176
.
:
::
#1023 120
:
:
:
:
索引表块号 50
总的盘块数 N
PCB
多级索引 分配
0
1
2
物理块号8
101
120
索引表块号 10
8
20
.
.
.
.
.
.
.
.
.
.
.
逻辑块
号 0
逻辑块
号 1
第二级索引
主索引表
物理块号 101
文件控制表 FCB
物理块号 120
物理块号 20物理块号 10
索引 分配 —— 索引文件 -2
索引文件由于它既适合顺序存取记录又适合按任意次
序随意存取记录,也便于增删文件的记录,所以索
引结构文件应用范围较广。索引文件的缺点是当文
件很大时索引表很庞大,占用了许多盘空间,而在
文件很小时,多级索引级别又不变,带来索引块的
另头和存取速度减慢。 (练习 2)
(4) UNIX直接间接混合寻址方式
由于 80%以上文件是小文件,为了解决能高速存取小文件
和管理大文件的矛盾,UNIX将直接寻址、一级索引、二级索
引和三级索引结合起来,形成了混合寻址方式,如下图所示。
在 UNIX S V的索引结点中设有 13个地址项 di_addr[13]
( Linux的 ext2设有 15个地址项)它们把所存的地址项分成
两类,其中最后三个地址项分别是一级索引、二级索引和三
级索引的指针,而前面 10个( ext2为 12个)为直接寻址的地
址项,即存放文件逻辑块第 0- 9块的盘块号。如每个盘块大
小为 4KB时,当文件不大于 40KB时,便可直接从索引结点中
读出该文件全部盘块号,这样读小文件时速度快;如文件大
于 40KB时,系统再逐步增加一级索引、二级索引和三级索
引,这样最大管理的文件为 40KB+ 4MB+ 4GB+ 4TB,达到管
理大文件的目标。
(练习 6)
UNIX直接间接混合寻址方式 -1
二次间接块
一次间接块
三次间接块
.
.
.
.
。。
.
.
.
.
.
.
.
.
di_addr[0]
di_addr[1]
di_addr[2]
.
.
.
di_addr[9]
di_addr[10]
一次间接
di_addr[11]
二次间接
di_addr[12]
三次间接
1034#
数据 块
0#
1#
2#
9#
10#
文件存储单位:簇( cluster)
? 簇的大小
– 两个极端,大到能容纳整个文件,小到一个
外存存储块;
– 簇较大,提高 I/O访问性能,减小 管理开销 ;
但 簇内碎片浪费 问题较严重;
– 簇较小,簇内的碎片浪费较小,特别是 大量
小文件 时有利;但存在 簇编号空间不够 的问
题(如 FAT12,16,32);
文件的存储空间通常由多个分立的 簇 组成,而每个簇
包含若干个 (为二的幂次 )连续的扇区 (sector)。
? 簇的分配方法:两种
– 簇大小可变,其上限较大,I/O访问性能较好,文件存储
空间的管理困难(类似于动态分区存储管理)
– 簇大小固定,较小:文件存储空间使用灵活,但 I/O访问
性能下降,文件管理所需空间开销较大
? 文件巻容量与簇大小的关系
– 文件卷容量越大,若簇的总数保持不变即簇编号所需位数
保持不变,则簇越大。缺点:簇内碎片浪费越多
– 文件卷容量越大,若簇大小不变,则簇总数越多,相应簇
编号所需位数越多。如簇编号长度为 12,16,32二进制位,
即构成 FAT12,FAT16,FAT32。
簇( cluster) -1
(5) MS-DOS / Windows98 FAT表结构
MS-DOS文件系统的文件物理结构采用 FAT表结构。该结构为了
克服链接文件随机读取任一逻辑块需要化费多次盘 I/O操作的
不足,将各盘块中的链接指针集中存放在盘的开始部分,构
成一张表,称为 FAT表。 FAT表每一项存放链接指针(下一个
簇号),每个 FAT表项占 12位或 16位,称为 FAT12或 FAT16。对
于软盘因为容量小,簇数也少,采用 12位 FAT表,对于硬盘则
采用 16位 FAT表。 FAT表文件系统原为小硬盘的目录结构而设
计,由于簇的数目最多只能用 16位表示,即最多只能有 64K个
簇,要用 FAT表管理大的磁盘分区,只能采取增大每簇所包含
的扇区数,一般根据磁盘的类型和容量大小来决定簇的大小,
如下表所示。当然每簇包含扇区数增加,带来内另头的浪费,
这对小文件特别严重。 Windows98为了减少内另头的浪费,可
采取每簇的数目用 32位表示,减少每簇包含扇区数,这称为
FAT32。 FAT16, FAT32文件系统簇和扇区关系也见下表所示。
MS DOS的文件系统
返回
磁盘文件卷结构
F A T 1 F A T 2 Roo t
Di r ec t or y
Dat a
( F i l e & Di r ec t or y )
Boo t
Rec or d
V ol um e S t ru ct ur e i n M S DO S
Se ct or # 0 N1 2N
MS-DOS / Windows98 FAT表结构 -1
FAT16 FAT32
分区大小 每簇的扇区数 簇大小 每簇的扇区数 簇大小
0 - 31MB 1 512B 不支持 不支持
32MB - 63MB 2 1KB 不支持 不支持
64MB - 127MB 4 2KB 不支持 不支持
128MB - 255MB 8 4KB 不支持 不支持
256MB - 511MB 16 8KB 不支持 不支持
512MB - 1023MB 32 16KB 8 4KB
1024MB - 2047MB 64 32KB 8 4KB
2GB - 8 GB 不支持 不支持 8 4KB
8 GB - 16GB 不支持 不支持 16 8KB
16GB - 32GB 不支持 不支持 32 16KB
32GB - 64GB 不支持 不支持 64 32KB
MS-DOS / Windows98 FAT表结构 -2
由于开销太大,对于 512MB 以上的卷不推荐使用 FAT 表文件系统,在大
于 4GB 的卷上不能使用 FAT 文件系统,不管簇的大小是多少。 FAT 表中每项的
数字含义如表所示。
FAT12 FAT16 含 义
000H 0000H 本簇未占用
003 H-FEFH 0003H-FFEFH 本簇已占用,此数为下簇的簇号
FF8H-FFFH FFF8H-FFFFH 本簇已占用,且是文件最后一簇
FF7H FFF7H 磁盘上本簇的位置已损坏,不可用
FF0H-FF6H FFF0H-FFF6H 保留
对于 12 位 FAT 表,每个表项用 3 位 16 进制数表示。相邻的二个表项合
用 3 个字节,第 1, 3 字节分别属于前后二个表项,中间的字节分成 2 位 16
进制数,低位是前一表项的最高位,高位则是后一表项的最低位。例如用
debug 列出装 MS-DOS 操作系统文件的软盘 FAT 表第一行数据如下:
FO FF FF 03 40 00 05 6 0 00 07 80 00 09 A0 00 0B
FAT 表前二项用来标记盘的类型,3.5 吋软盘为 FFO FFF,查根目录可知软盘
中第一个文件为 I O,SYS,它的起始簇为 002 。它的后继簇分别为 003, 004,
005, 006, 007, 008, 009, 00A,??。
( 6 )范例
一个文件系统中有一个 20MB大文件和一个 20KB小文件,
当分别采用连续, 链接, 链接索引, 二级索引和 UNIX
Sytem V 分配方案时 (每块大小为 4096B,每块地址用 4B
表示 ),问,
1.各文件系统管理的最大的文件是多少?
2.每种方案对大, 小二文件各需要多少专用块来记录文件
的物理地址 (说明各块的用途 )?
3.如需要读 大文件前面第 5.5KB和后面( 16M+ 5.5KB)信
息,则每个方案各需要多少次盘 I/O操作?
这个范例是帮助读者深入比较文件物理组织的各种方案:
顺序文件的连续分配、链接文件的链接分配、二级索引
分配、链接索引分配和 UNIX的直接间接混合分配,明确
各种分配方案的优缺点和 UNIX分配方案的设计特点。
范例 -1
1。各种分配方案的文件系统可管理的最大文件
? 连续分配:不受限制,可大到整个磁盘文件区。
? 链接分配:同上。
? 链接索引:同上。
? 二级索引:由于盘块大小为 4KB,每个地址用 4B表示,一个
盘块可存 1K个索引表目,二级索引可管理的最大文件容量为
4KB× 1K× 1K= 4GB,如要管理更大的文件需采用三索引,它
可管理 4TB大小文件。
? UNIX混合分配:可管理的最大文件为 40KB+ 4MB+4GB+ 4TB。
2。每种分配方案对 20MB大文件和 20KB小文件各需要多 少 专用
块来记录文件的物理地址?
? 连续分配:对大小二个文件都只需在文件控制块 FCB中设二
项,一是首块物理块块号,另一是文件总块数,不需 专用块
来记录文件的物理地址。
范例 -2
? 链接分配:对大小二个文件都只需在文件控制块 FCB中设二
项,一是首块物理块块号,另一是文件总块数;同时在每块
存文件的物理块中设置存贮下一块块号的指针。
? 链接索引:对 20KB小文件只有 5个物理块大小,所以只需一
块专用物理块来作索引块,用来保存文件的各块物理块块号。
对于 20MB大文件有 5K个物理块大小,由于链接索引的每个索
引块只能保存( 1K- 1)个物理块块号(还有一个表目作索引
块链接指针),所以它需要 6块专用物理块来作链接索引块,
用于保存文件各块的物理地址。
? 二级索引:对大小文件都固定要用二级索引,对 20KB小文件,
用一块作第一级索引,用另一块作二级索引,共用二块专用
物理块作索引块,对于 20MB大文件,用一块作第一级索引,
用 5块作第二级索引,共用六块专用物理块作索引块。
范例 -3
? UNIX的混合分配:对 20KB小文件只需在文件控制块 FCB的
i_addr[13]中使用前 5个表目存放文件的物理块号,不需专
用物理块。对 20MB大文件,FCB的 i_addr[13]中使用前 10个
表目存放大文件前 10块物理块块号,用一级索引块一块保存
大文件接着的 1K块块号,还要用二级索引存大文件以后的块
号,二级索引使用第一级索引 1块,第二级索引 4块。总共也
需要 6块专用物理块来存放文件物理地址。
3.为读大文件前面第 5.5KB和后面( 16M+ 5.5KB)信息需要多
少次盘 I/O操作?
? 连续分配:为读大文件前面和后面信息都需先计算信息在文
件中相对块数,前面信息相对逻辑块号为 5.5K/ 4K=1,后面
信息相对逻辑块号为( 16M+ 5.5K) /4K=4097。再计算物理
块号=文件首块号+相对逻辑块号,最后化一次盘 I/O操作
读出该块信息。
范例 -4
? 链接分配:为读大文件前面 5.5.KB的信息,只需先读一
次文件头块得到信息所在块的块号,再读一次第 1号逻
辑块得到所需信息。而读大文件后面 16MB+ 5.5KB的信
息,要先把该信息所在块前面块顺序读出,共化费 4097
次盘 I/ O操作,才能得到信息所在块的块号,最后化一
次 I/O操作读出该块信息。所以总共需要 4098次盘 I/ O
才能读取( 16MB+5.5KB)字节信息。
? 链接索引:为读大文件前面 5.5KB的信息,只需先读一
次第一块索引块得到信息所在块的块号,再读一次第 1
号逻辑块得到所需信息,共化费 2次盘 I/ O操作。为读
大文件后面( 16MB+5.5KB)的信息,需要先化 5次盘 I/
O操作依次读出各索引块,才能得到信息所在块的块号,
再化一次盘 I/O操作读出该块信息。共化费 6次盘 I/ O操
作。
范例 -5
? 二级索引:为读大文件前面和后面信息的操作相同,
首先进行一次盘 I/ O读第一级索引块,然后根据它
的相对逻辑块号计算应该读第二级索引的那块,第
一级索引块表目号 =相对逻辑块号/ 1K,对文件前
面信息 1/ 1K= 0,对文件后面信息 4097/ 1K= 4,
第二次根据第一级索引块的相应表目内容又化一次
盘 I/ O读第二级索引块,得到信息所在块块号,再
化一次盘 I/ O读出信息所在盘块,这样读取大文件
前面或后面信息都只需要 3次盘 I/ O操作。
范例 -6
? UNIX混合分配:为读大文件前面 5.5KB信息,先根据
它的相对逻辑块号,在内存文件控制块 FCB的
i_addr[13]第二个表目中读取信息所在块块号,而
只化费一次盘 I/ O操作即可读出该块信息。为读大
文件后在( 16MB+ 5。 5KB)信息,先根据它的相对
逻辑块号判断它是在 UNIX二级索引管理范围,先根
据 i_addr[11]内容化一次盘 I/ O操作读出第一级索
引块,再计算信息所在块的索引块号在第一级索引
块的表目号为( 4097-9-1024)/ 1024= 3,根据第
一级索引块第 3个表目内容再化费一次盘 I/ O操作,
读出第二级索引块,就可以得到信息所在块块号,
最后化一次盘 I/ O读出信息所在盘块,这样总共需
要 3次盘 I/ O操作才能读出文件后面的信息。
(练习 )
范例 -7
连续分配 链接分配 链接索引 二级索引 UNIX
管理最大文件 不受限制 不受限制 不受限制 4GB 40K+4M+4G+4TB
20KB 文件 0 0 1 2 0管理用的
专用块数 20MB 文件 0 0 6 6 6
5, 5KB 1 1+ 1 1+1 2+1 1读 20MB
文件某处
信息
16MB + 5,5K
B
1 4097+1 5+1 2+1 2+1
为清楚起见将结果列表。从上分析可知 UNNX 混合分配方案既可管理很大的文件,又能化费较
小的代价管理并快速存取小文件。
(三) 空闲 存储空间的 管理
( 1)空闲表法
空闲表法属于连读分配方法,它为外存上所有空闲区建立
一张空闲表,每个空闲区对应一个空闲表项,其中包括序号、
该空闲区的第一盘块号,该区的空闲盘块数等信息,再将所
有空闲区按起始盘块号递增的次序排列。 UNIX S V操作系统
盘对换区空间管理采用空闲表法,它与内存系统页表管理采
用同样的数据结构和分配回收算法。空闲表法的缺点是需要
专用盘区来存放空闲表,在文件系统中较少采用连续分配。
( 2)位示图法
位示图是利用二进制的一位来表示磁盘中一个块的作用情
况,当其值为 0 时表示对应盘块空闲;值为 1时盘块已分配。
磁盘上所有盘块都有一个二进制位与之对应,这样,由所有
盘块所对应的位形成了一个集合称为位示图,位示图用磁盘
块存放,称为位图块。例如,SCO UNIX 操作系统盘块大小
为 1KB,每个位图块有 8192位,即每个位图块能管理 8MB磁盘
空间,要管理大的磁盘空间就需要多个位图块,这就需增设
位图索引块,每个位图块块号用 4B记录,这样一个位图索引
块可管理 256个位图块,总共管理 2GB大小磁盘空间。位图块
在管理的 8192块盘块的最前面,位图块中第 i个字节
( i=0,1,…… 1023)的第 j位 (j=0,1…… 7)管理的块在该图
块后块数为 N= i*8+ j。 WindowsNT,Linux等操作系统的盘
块管理都采用位示图法。
SCO UNIX文件系统磁盘的结构
SCO UNIX 4,1 版中磁盘文件系统格式如下,
0 1 m m + 1 ?? 8K 块??
引导块 未用 i 索引节点块 位图 位图块 1 文件、数据区
和超级块 索引块
??
位图块 2 文件数据区 盘交换区
ext2文件系统的体系结构
组 0 组 1 …………,组 N
超级块 文件系统描
述符
块位图 Inode 位

Inode表 Data 数
据块
Layout of the Linux Ex2 file system.
( 3) 空闲块链接法
空闲块链接法是将磁盘上所有空闲盘区链接在一个队列中,
称为空闲块链。请求分配时从链头依次摘下适当数目的空闲
盘块来分配,回收时将回收空闲盘块链入空闲块链尾部。空
闲块链接法的优点是不需专用块存放管理信息,它的缺点是
连续分配回收多块空闲块时需增加盘 I/O操作。
( 4) 成组链接法
UNIX S V操作系统采用成组链接法管理磁盘空闲块,该方
法是空闲表法和空闲块链接法的结合,具备分配回收方便,
不需专用块来存放分配表等优点。
? 成组链接法将磁盘空闲块分成若干组,如将每 100个盘块作
为一组,该组空闲块总数和各空闲块块号存入下一组的第一
个空闲块中。最后不满 100块的那组空闲块总数和各空闲块
块号记入磁盘区专用管理块的空闲块管理的数据结构:
s_nfree和 s_free[100]中,如下图所示。
成组链接法 -1
盘专用管理块
s_nfree
0
1
s_free[100] 449块
38
50块 150块 350块
99
49块 149块
12块 51块 251块 351块
39
50
49
.
12
100
150
149
.
.
.
51
100
.
.
.
.
.
.
.
.
100
0
499
.
.
.
351
成组链接法 -2
磁盘专用管理块中 s_free[100]作为空闲块栈,而
s_nfree作为空闲块栈指针,用于空闲块的分配和回收。在
要分配一个空闲块时,只要先将空闲块栈指针 s_nfree存数
减 1,再按 s_nfree到空闲块栈中取表目为 s_free[s_nfree]
的盘块号分配,即弹出栈。当要回收一块空闲块时,则先
将回收的空闲块号存入空闲块栈 s_free[s_nfree]表目中,
再将栈指针 s_nfree存数加 1,即压入栈。当空闲块栈分配
完或回收满时分配和回收操作复杂点,在此不作详细介绍。
由于文件系统要安装时,磁盘专用块拷入内存系统缓冲区,
所以成组链接法分配和回收操作大部分情况只与内存进行
读写,所以速度较快。
(练习 7)
(5) MS-DOS/Windows98文件系统磁盘的结构
MS-DOS 软盘和硬盘各区文件系统的盘区分配如下:
BOOT 区 FAT1 FAT2 根目录区 文件区
512B
BOOT 区为分区引导区,512B,分区引导区由三部分组成:
,字节 0 - 0 × 0A 是跳转指令和 OEM 名字。
,字节 0 × 0B - 0 × 3D 是 BIOS 参数块和扩展 BIOS 参数块,参数块主要参数意
义如下表。
,其余部分是自举代码和扇区未尾标志 55 AA 。
下面是一计算机分区引导区的 O × OB - O × 3D BIOS 参数块:
00 02 40 01 00,<.MSWIN4.1..@,.
2171:0110 02 00 02 00 00 F8 00 01 - 3F 00 FF 00 3F 00 00 00,.......?,..?...
2171:0120 86 FA 3F 00 80 00 29 57-8A A1 26 20 20 20 20 20,.?..,)W..&
2171:0130 20 20 20 20 20 20 46 41-54 31 36 20 20 20 FAT16 3.
MS-DOS/Windows98文件系统磁盘的结构 -1
字节偏移 数值 意 义
0 × 0B-0 × 0C × 0200 硬件每扇区字节数,这值为 512B
0 × 0D × 40 一个簇的扇区数目,这为 64 个扇区
0 × 0 E -0 × 0F × 000 1 保留扇区,分区引导扇区头到第一个文件分配表
头的扇区数
0 × 10 × 02 文件分配表个数,典型值为 2
0 × 11-0 × 12 × 0200 根条目数,根目录中最大文件数典型值是 512,如
使用长文件,这数目会小些
0 × 16-0 × 17 × 0100 每个文件分配表所用扇区数,这为 256 个
0 × 18-0 × 19 × 003F 磁盘低级格式化后每磁道扇区数,这为 63 个
0 × 1A-0 × 1B × 00FF 磁盘低级格式化后逻辑磁头数,这为 255 个
0 × 24 0 × 80 物理磁盘号,0 × 00 对应 A 盘,硬盘为 0 × 80
0 × 36-0 × 3D FAT16 系统 ID,根据磁盘格式此域为 FAT12 或 FAT16
MS-DOS/Windows98文件系统磁盘的结构 -2
FAT1和 FAT2都为文件分配表,二表相同,FAT2作备份用。对
软盘 FAT表每表项为 12位,表示簇号。对硬盘各区,FAT表项
可为 12位,16位和 32位。根目录区是存放根目录,它有固定
长度,由引导区 BIOS参数块 0× 11H-0× 12H字节决定。
? 从表中典型数据可以看出装 FAT16的 C盘引导区为 1个扇区,
每个 FAT表扇区数为 256个,FAT表 2个,共存 256× 2= 512个
扇区。由于每条根目录为 32B,则可知根目录区大小为
32× 512= 16KB;文件区的起始簇号为 0002,起始扇区为 545
( 221H)。对于 FAT16硬盘 C盘的 BOOT区是 1头 0柱 1扇区,
512B大小。
Windows98可采用 FAT32格式,FAT32其引导区记录被扩展
为包括重要数据结构的备份,根目录成为一个普通的簇链,
可以放在文件区任何地方。 FAT32引导区中的 BIOS参数块扩
充为 0× 0B-0× 59字节。 FAT32中 BIOS参数块中 0× 0B-0× 23
参数同 FAT16 格式表,其余 0× 24- 0× 59主要参数如下表所
示:
MS-DOS/Windows98文件系统磁盘的结构 -3
字节偏移 数值 意义
0 × 24 - 0 × 27 0 F9D 每份 FAT 有几个扇区
0 × 2 C - 0 × 2 F 00000002 根目录簇号
0 × 32 - 0 × 33 0006 引导扇区数目
0 × 40 80 磁盘编号,第一个硬盘为 80 h
0 × 42 29 扩展引导扇区特征码
0 × 52 - 0 × 59 …… 文件系统类型( FAT16, FAT32 )
安装 FAT32 的计算机引导区的 BIOS 参数块如下显示,
0 0 0 2 0 8 2 0 0 0, X, M S W I N 4, 1,,,,
2171:0110 02 00 00 00 00 F8 00 00 - 3F 00 FF 00 3F 00 00 00,.......?...?..,
2171:0120 00 82 3E 00 9D 0F 00 00 - 00 00 00 00 0 2 0 0 0 0 0 0,, >,,,,,,,,,,,,,
2171:0130 01 00 06 00 0 0 00 00 00 - 00 00 00 00 00 00 00 00,..............,
2171:0140 80 00 29 DA 1A 11 29 57 - 49 4E 44 4F 57 53 20 20,.)...)WINDOWS
2171:0150 20 20 46 41 54 33 32 20 - 20 20 -- -- -- -- -- -- F A T 3 2, 3,,,,
MS-DOS/Windows98文件系统磁盘的结构 -4
从显示可以看出参数块 OE地址存放保留扇区数现为 0020,
即为 32个扇区,而 FA16时为 1个扇区,说明 FAT32引导区记
录被扩展为包括重要数据结构的备份。从表中典型数据可
以看出装 FAT32的 C盘引导区为 32个扇区,FAT表 2个,共存
3997× 2= 7994个扇区,根目录的起始簇号为 0002,起始扇
区为 8026( 1F7AH)。
整个硬盘还有一个主引导区,它是 0头 0柱 1扇区,它也是
512B大小。
(6)WidowsNT文件系统 NTFS磁盘的结构
? NTFS文件系统象 FAT文件系统一样使用簇作为
磁盘空间分配的基本单位,系统缺省的簇大小
依赖于卷的大小,见表所示。
分 区 大 小 每簇扇区数 簇大小
≤ 512 MB 1 512B
513MB- 1024MB(1GB) 2 1K
1025MB- 2048MB(2GB) 4 2K
2049MB- 4096MB(4GB) 8 4K
4097MB- 8192MB(8GB) 16 8K
8193MB-16384MB(16GB) 32 16K
16385MB-32768MB(32GB) 64 32K
>32768MB 128 64K
NTFS-1
? 在磁盘管理器中,可以指定最大到 4K簇大小,如采用命
令行程序 format来格式化 NTFS卷,则可以指定表 5-7中
的任何簇大小。
? 将一个卷格式化为 NTFS文件系统的结果是系统创建了一
些系统文件和一个主文件表( MFT),主文件表包含
NTFS卷上所有文件和目录的信息。格式化 NTFS卷布局如
下,
? 因为 NTFS元数据文件是规则的 NTFS文件,如果在
目录命令 dir中使用开关项 /a:h(隐藏 ),并键入
文件名,就可以看到它们。
引导扇区 主文件表 ( MFT ) 系统文件 文件区
主文件表( MFT)
系统文件 文件名 文 件 用 途 MFT 记录
主文件表 $ Mft NTFS 所有内容的列表 0
主文件表 2 $ MftMirr MFT 前三个记录的镜象,用于在单个
扇区故障时保证对 MFT 的访问
1
日志文件 $ LogFile 对事务步骤的记录,用于 NTFS 的恢复 2
卷 $Volume 卷的名字,NTFS 版本 3
属性定义表 $ AttrDef 属性名、个数和描述的表 4
根文件名索引 $, 根目录 5
簇映象 $Bitmap 卷的一种表示,显示哪些簇被使用 6
分区引导扇区 $Boot 如果是可引导卷,包括卷的自举部分 7
坏簇文件 $ BadClus 卷中所有坏簇记录于此 8
配额表 $Quota 卷中每个用户磁盘配额,未使用 9
大写表 $ Upcase 用于将小写字符转换为 U nicode 的大
写字母
10
The NTFS master file table
NTFS 文件属性
? NTFS文件系统把每个文件(或目录)都视为一组文件属
性。诸如文件名、安全信息甚至文件数据等元素都是文
件属性。每个属性由一个属性类型或一个可选的属性名
来标识。文件的属性类型有标准信息(含时间记号、连
接计数等)、属性列表、文件名、安全描述符、数据、
索引根、索引分配、卷信息、映象和扩展属性等,
? 如果 MFT文件记录能存储得下一个文件的属性,这些属
性称为驻留属性。例如文件名和时间标记等信息永远都
存储在文件记录中。如果一个文件的所有信息太大无法
存储在 MFT文件中,它的一些属性就成为非驻留的,系
统为非驻留的属性在卷上其它地方开辟一个或多个簇。
NTFS 文件属性 -1
NTFS还创建一个称为属性列表的属性来描述所有属性记
录的位置。大目录的条目无法完全包含在 MFT结构中,
只能存在 MFT之外的簇中,它的信息被组织成 B树,其中
记录含有指向实际存储的簇的指针。 B树结构使寻找一
个文件所需访问磁盘的次数最少,因此访问一个文件比
在 FAT文件系统中访问同样的文件要快。
? 每个文件的属性在文件中以单独的字节流存储。严格地
讲,NTFS不读取也不写入文件,它只是读取和写入属性
流。由于文件有一组属性,所以 NTFS文件或目录可以包
含多个数据流,NTFS文件有一个默认的数据流,它没有
名称。 NTFS提供属性操作有:创建、删除、读取(字节
范围)以及写入(字节范围)。读取和写入服务一般是
对文件的未命名属性操作。
File System Structure (2)
The attributes used in MFT records
文件名
? NTFS和 VFAT文件系统允许路径中每一个文件长度在 255个字符以
内。文件名可以包含 Unicode字符,多个句点以及内嵌的空格,
但是提供给 MS- DOS的 FAT文件系统的文件名被限定在 8个字符以
内(非 Unicode代码),后面跟一个句点和 3个字符长的扩展名。
WindowsNT支持不同的三个文件名空间,POSIX子系统名空间、它
所包含的 Win32子系统名空间和前二者包含的 MS-DOS-Windows客
户名空间。
? Win 32子系统可以在一个 NTFS卷上创建文件名,而在 MS- DOS和
16位 Windows应用程序中则不能看到此名。这个组中包含了长于
MS- DOS名称 8.3格式的文件名,带有 Unicode(国际的)代码的
文件名、包括多个句点或是以句点开始的文件名以及内嵌空格的
文件名。当用此文件名创建一个文件时,NTFS会自动生成一个备
用的 MS- DOS形式的文件名,也自动生成了如下所示的含有 MS-
DOS文件名文件的 MFT记录。
标准信息 NTFS 文件名 MS-DOS 文件名 安全性描述体 数据
MFT记录
? 主文件表是以文件记录数据来实现的,忽略
簇的大小,每个文件记录的大小都被固定为 1KB。
从逻辑上讲卷中每一个文件在 MFT上都有一个文
件记录,包括 MFT自己的一个记录。 MFT前 16个记
录用来存放元数据文件的信息,11个元文件与记
录号对应关系见表 5-8,后 5个记录保留供将来使
用。每个文件或目录的记录都包括在 MFT中,而
小文件或小目录所有的信息都包含在 MFT记录中。
一个小文件或目录的 MFT记录如下:
标准信息 文件/目录名 安全性描述体 数据或索引
习题
1.下面关于顺序文件和链接文件的论述中, 第 ﹎﹎ A﹎﹎ 条是正确
的论述 。
(1)顺序文件适于建立在顺序存储设备上, 而不适合建立在磁盘上 。
(2)在显式链接文件中是在每个盘块中设置一链接指针, 用于将文
件的所有盘块链接起来 。
(3)顺序文件必须采用连续分配方式, 而链接文件和索引文件则都
可采取离散分配方式 。
(4)在 MS-DOS中采用的是隐式链接文件结构 。 (解 )
2,下面关于索引文件的论述中, 第 ﹎﹎ A﹎﹎ 条是正确的论述 。
(1)索引文件中, 索引表的每个表项中含有相应记录的关键字和存
放该记录的物理地址 。
(2)对顺序文件进行检索时, 首先从 FCB中读出文件的第一个盘块号;
而对索引文件进行检索时, 应先从 FCB中读出文件索引表始址 。
(3)对于一个具有三级索引表的文件, 存取一个记录通常要访问三
次磁盘 。
(4)在文件较大时, 无论是进行顺序存取还是随机存取, 通常都是
以索引文件方式为最快 。 (解 )
习题 -1
3,一个文件系统中有一个 2MB文件,当分别采用连续, 链接,
链接索引, 二级索引和 UNIX Sytem V 分配方案时 (每块大小
为 2048B,每块地址用 4B表示 ),问,
①,各文件系统管理的最大的文件是多少? ( ﹎ A﹎, ﹎ B﹎,
﹎ C﹎, ﹎ D﹎, ﹎ E﹎ )
②,每种方案对大, 小二文件各需要多少专用块来记录文件的物
理地址?( ﹎ F﹎, ﹎ G﹎, ﹎ H﹎, ﹎ I﹎, ﹎ J﹎ )
③ 如需要读文件第一页信息, 则每个方案各需要多少次盘 I/O
操作 ( 包括读信息块盘 I/O操作 )?( ﹎ K﹎, ﹎ L﹎, ﹎ M﹎,
﹎ N﹎, ﹎ O﹎ )
④ 如需要读文件最后一页信息, 则每个方案各需要多少次盘
I/O操作 ( 包括读信息块盘 I/O操作 )?( ﹎ P﹎, ﹎ Q﹎, ﹎ R
﹎, ﹎ S﹎, ﹎ T﹎ )
A,B,C,D,E,(1)整个磁盘文件区 ; ( 2) 4G; ( 3) 2G;
( 4) 1G; ( 5) 0.5G; ( 6) 40KB+ 4MB+4GB+ 4TB; ( 7) ;
20KB+ 2MB+2GB+ 2TB; ( 8) 20KB+1MB+0.5G+0.25T; ( 9)
10KB+ 1MB+1GB+ 1TB; ( 10) 5KB+ 0.5MB+0.5GB+ 0.5TB;
(11)不得而知; (解 )
习题 -2
4,磁盘请求以 10,22,20,8,40,6,36柱面的次序到达磁
盘驱动器, 寻道时每个柱面移动需要 1ms。 假设所有情况下
磁头臂起始都位于柱面 20,计算以下总的寻道时间,⑴ 先来
先服务 ﹎﹎ A﹎﹎, ⑵ 最短寻道时间优先 ﹎﹎ B﹎﹎, ⑶ 电梯
算法 (扫描算法 SCAN)﹎﹎ C﹎﹎ ( 起始移动向柱面大的方
向 ) 。
A,B,C,( 1) 50; ( 2) 52; ( 3) 54; ( 4) 56;
( 5) 130; (6)132; (7)134;
5,试比较常用的磁盘调度策略,FCFS,SSTF,SCAN,CSCAN、
N-Step-SCAN和 FSCAN。 (解 )
6,什么是文件的物理组织? 文件的物理组织有几种形式? UNIX
系统的文件的物理组织有什么特点? (解 )
7,试说明 UNIX( S V) 文件存贮器的空闲磁盘块管理算法及和
其它算法比较的优缺点 。 (解 )
作业:某文件系统中,根目录长驻内存。目
录文件采用链接结构,普通文件采用三级
索引结构。假设一个物理块放 10个目录项,
一个目录下最多放 40个文件。如果下级文
件是目录文件,则上级目录项指向该目录
文件的首地址;如果下级文件是普通文件,
则上级目录项指向该文件的文件控制块。
又假设索引表放在 FCB中,如果要读取 K的
第一块或最后一块,需要启动硬盘最少几
次,最多几次?
ROOT
A B C
D E
F G
H I
J K
...
...
...
...
\A\D\G\H\K
...