第八章 磁盘存储管理
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(1) 不能支持高效的直接存取。要对一个较大 的文件进行直接存取,须首先在FAT中顺序地 查找许多盘块号。
链接分配方式存在的问题
(2) FAT需占用较大的内存空间。
由于一个文件所占用盘块的盘块号是随机 地分布在FAT中的,因而只有将整个FAT 调入内存,才能保证在FAT 中找到一个文 件的所有盘块号。
20
FILE3
21 22 23
4
5
FILE4
24
25
26
27
28
29
…
…
…
30
31
32
33
34
35
图 磁盘 连续分配(紧凑以后)
8.1.2 链接组织方式(链接分配)
采用链接分配方式时,可通过在每个盘块上的链接 指针,将同属于一个文件的多个离散的盘块链接成 一个链表,把这样形成的物理文件称为链接文件。
(1)顺序访问容易。访问一个占有连续空间的文 件,非常容易。
( 2 )顺序访问速度快。因为文件所占用的盘块可 能是位于一条或几条相邻的磁道上,这时,磁头 的移动距离最少。
连续分配的主要缺点
( 1 )要求有连续的存储空间。便会产生出许多外 部碎片,降低了外存空间的利用率。 (2)必须事先知道文件的长度。
8.2.2 位示图法
3.盘块的回收
(1)将回收盘块的盘块号转换成位示图中的行号 和列号:
i = (b - 1)DIV n + 1 j = (b - 1)MOD n + 1
(2)修改位示图。
令map[i,j] =0
8.2.2 位示图法
位示图的主要优点: (1)是从位示图中很容易找到一个或一组相邻 接的空闲盘块 (2)由于位示图很小,占用空间少,因而可将 它保存在内存中, 从而节省了许多磁盘的启 动操作。
8.2.3 成组链接法
1.空闲盘块的组织
(1) 空闲盘块号栈用来存放当前可用的一组空闲盘
块的盘块号(最多含100 个号),以及栈中尚有的空
闲盘块号数N。顺便指出,N 还兼作栈顶指针用。
例如,当N=100 时,它指向S.free(99)。由于栈是
临界资源,每次只允许一个进程去访问,故系统为 栈设置了一把锁。
方式。
2.多级索引分配
图8-7
3.混合索引分配方式
所谓混合索引分配方 式,是指将多种索引 分配方式相结合而形 成的一种分配方式。 在索引结点中可设置 10个直接地址项。
(1)直接地址。
(2)一次间接地址。 (3)多次间接地址。
图8-8
本章内容
8.1 外存的组织方式 8.2 文件存储空间的管理 8.3 提高磁盘I/O速度的途径
2.空闲盘块的分配与回收
在系统回收空闲盘块时,须调用盘块回收 过程进行回收。 它是将回收盘块的盘块号记入空闲盘块号 栈的顶部,并执行空闲盘块数加1 操作。 当栈中空闲盘块号数目已达100 时,表示栈 已满,便将现有栈中的100个盘块号记入新 回收的盘块中,再将其盘块号作为新栈底 。
本章内容
1. 空闲表法 :属于连续分配方式,它为每个文 件分配一块连续的存储空间。
系统为外存上的所有空闲区建立一张空闲表, 每个空闲区对应于一个空闲表项 。
图8-9
1. 空闲表法
存储空间的分配与回收可采用首次适应算法、循 环首次适应算法等。
回收区是否与空闲表中插入点的前区和后区相邻 接,对相邻接者应予以合并。 采用连续分配方式具有较高的分配速度,可减少 访问磁盘的I/O频率,
连续分配存在的问题
解决方法之一,系统定期或不定期采用 紧凑技术,将小分区合并为大的Βιβλιοθήκη Baidu连续 分区,将文件占用空间合并在一起。
0
FILE1
1
2
3
4
5
文件分配表
文件名 起始块号 文件长度 FILE1 FILE2
6
7
8
FILE2
9
10
11
0
4 13 17
4
9
12
13
FILE3
14
15
16
17
18
19
FILE4
2.空闲盘块的分配与回收
由于在该盘块号所对应的盘块中记有下一组可用 的盘块号,因此,须调用磁盘读过程,将栈底盘
块号所对应盘块的内容读入栈中,作为新的盘块
号栈的内容,并把原栈底对应的盘块分配出去(其
中的有用数据已读入栈中)。然后,再分配一相应
的缓冲区(作为该盘块的缓冲区)。最后,把栈中
的空闲盘块数减1 并返回。
8.2.2 位示图法
1.位示图
位示图是利用二进制的一位来表示磁盘中一个盘 块的使用情况。当其值为“0”时,表示对应的盘 块空闲;为“1”时,表示已分配。 磁盘上的所有盘块都有一个二进制位与之对应, 这样,由所有盘块所对应的位构成一个集合,称 为位示图。
8.2.2 位示图法
1.位示图
通常可用m × n 个位数来构成位示图,并使m × n等于磁盘的总块数
8.3.1 磁盘高速缓存
指在内存中为磁盘盘块设置的一个缓冲区 ,在其中保存了某些盘块的副本。 当出现访问磁盘的请求时,先查看磁盘高 速缓冲区
设计磁盘高速缓存考虑的问题: (1)如何将磁盘高速缓存中的数据传送给 请求进程; (2)采用什么样的置换策略; (3)已修改的磁盘数据在何时被写回磁盘
计算机操作系统
第八章 磁盘存储管理
上章回顾
理解:文件系统的基本概念、目录管理、 文件共享、文件保护的方法。 掌握:文件逻辑结构、文件目录
本章内容
8.1 外存的组织方式 8.2 文件存储空间的管理 8.3 提高磁盘I/O速度的途径
8.1 外存的组织方式
目前常用的外存组织方法有:连续组织方式、 链接组织方式和索引组织方式三种。
每个文件的第一个
盘块号放在自己的 FCB中; 文件A占用4,6,11三
个盘块,文件B占用
9,10,5三个盘块
* FAT和NTFS技术
FAT(File Allocation Table)
NTFS(New Technology File System)
链接分配方式存在的问题
链接分配方式虽然解决了连续分配方式所 存在的问题, 但又出现了另外两个问题, 即:
2.空闲盘块的分配与回收
当系统要为用户分配文件所需的盘块时,须调用 盘块分配过程来完成。该过程首先检查空闲盘块 号栈是否上锁,如未上锁,便从栈顶取出一空闲 盘块号,将与之对应的盘块分配给用户,然后将 栈顶指针下移一格。若该盘块号已是栈底,即 S.free(0),这是当前栈中最后一个可分配的盘块 号。
8.1 外存的组织方式 8.2 文件存储空间的管理 8.3 提高磁盘I/O速度的途径
8.3 提高磁盘I/O速度的途径
三方面着手 (1)改进文件的目录结构以及检索目录的 方法减少对目录的查找时间; (2)选取好的文件存储结构,提高对文件 的访问速度; (3)提高磁盘的I/O速度,能将文件中的数 据快速地从磁盘传到内存或相反。
(4) 将第一组的盘块总数和所有的盘块号记入空闲 盘块号栈中,作为当前可供分配的空闲盘块号。 (5) 最末一组只有99 个盘块,其盘块号分别记入 其前一组的S.free(1) ~S.free(99)中,而在 S.free(0)中则存放“0”,作为空闲盘块链的结束 标志。(注:最后一组的盘块数应为99,不应是 100,因为这是指可供使用的空闲盘块,其编号 应为(1~99),0号中放空闲盘块链的结尾标志。)
2.显式链接
在该表中,凡是属于某一文件的第一个盘块号, 均作为文件地址被填入相应文件的FCB 的“物 理地址”字段中。 由于查找记录的过程是在内存中进行的,因而不 仅显著地提高了检索速度,而且大大减少了访问 磁盘的次数。 由于分配给文件的所有盘块号都放在该表中,故 把该表称为文件分配表FAT (File Allocation Table)。
8.2 文件存储空间的管理
文件分配方式:可采取连续分配方式或离散分配 方式。
文件存储空间的 分配单位是磁盘块而非字节。
为了实现存储空间的分配,系统必须能记住存储 空间的使用情况。为此,系统为分配存储空间而 设置相应的数据结构。 系统提供对存储空间进行分配和回收的手段。
8.2.1 空闲表法和空闲链表法
8.1.5 索引组织方式(索引分配)
索引分配方法:
就是为每个文件分 配一个索引块
(表),再把分配
给该文件的所有盘 块号,都记录在该 索引块中,因而该 索引块就是一个含 有许多盘块号数组。
图8-6
单级索引分配
索引分配方式支持直接访问。当要读文件的第i 个盘块时 ,可以方便地直接从索引块中找到第i个盘块的盘块号;
2. 空闲链表法
空闲链表法 :是将所有空闲盘区拉成一条空闲链。 把链表分成两种形式:空闲盘块链和空闲盘区链。
(1)空闲盘块链:将磁盘上的所有空闲空间,以盘 块为单位拉成一条链,当用户因创建文件而请求 分配存储空间时,系统从链首开始,依次摘下适 当数目的空闲盘块分配给用户。当用户因删除文 件而释放存储空间时,系统将回收的盘块依次插 入空闲盘块链的末尾。 (2)空闲盘区链:将磁盘上的所有空闲盘区(每个 盘区可包含若干个盘块)拉成一条链 。
图 8–10 位示图
位示图也可描述为一个二维数组map: Var map: array of bit;
8.2.2 位示图法
2.盘块的分配
(1)顺序扫描位示图,从中找出一个或一组其值 为“0”的二进制位
(2)将所找到的一个或一组二进制位;转换成与 之相应的盘块号( b=(i-1)*n + j )
(3)修改位示图,令map[ i,j ] = 1
1.数据交付方式
(1)数据交付:直接将高速缓存中的数据传达到 请求者进程的内存工作区中;
(2)指针交付:只将指向高速缓存中某区域的指
针交付给请求者进程,传送的数据量少。
2.置换算法
除了考虑最近最久未使用外,还需要考虑:
(1)访问频率 (2)可预见性 (3)数据的一致性
隐式链接分配方式的主要问题在于:它只适合 于顺序访问,它对随机访问是极其低效的。
为了提高检索速度和减小指针所占用的存储空 间,可以将几个盘块组成一个簇,以簇为单位, 将会减小查找指定块的时间,而且也可减小指 针所占用的存储空间。
2.显式链接
这是指把用于链接文 件各物理块的指针, 显式地存放在内存的 一张链接表中,该表 在整个磁盘仅设置一 张
基于数据块的分区能消除外部碎片,但索引项较多,可 能使一个数据块容纳不了一个文件的所有分区的索引。
主要问题是:可能要花费较多的外存空间。每当建立一
个文件时,便须为之分配一个索引块,将分配给该文件
的所有盘块号记录于其中。对于小文件如果采用这种方 式,索引块的利用率将是极低的。
两级索引分配
当 OS为一个大文件分配磁盘空间时,如果所分配出 去的盘块的盘块号已经装满一个索引块时,OS便为该 文件分配另一个索引块,用于将以后继续为之分配的 盘块号记录于其中。依此类推,再通过链指针将各索 引块按序链接起来。 显然,当文件太大,其索引块太多时,这种方法是低 效的。此时,应为这些索引块再建立一级索引,称为 第一级索引,即系统再分配一个索引块,作为第一级 索引的索引块,将第一块、第二块……等索引块的盘 块号填入到此索引表中,这样便形成了两级索引分配
优点:
采取离散分配方式,消除了外部碎片提高了外存空 间的利用率 无须事先知道文件的大小 便于对文件的增、删、改
★ 链接方式又可分为隐式链接和显式链接两种形式。
8.1.2 链接组织方式(链接分配)
1.隐式链接 (见图8-2,P252)
每个盘块中都含 有一个指向下一 个盘块的指针.
8 -2
1.隐式链接
8-11
(2) 文件区中的所有空闲盘块被分成若干个组,比如 ,将每100 个盘块作为一组。假定盘上共有10 000 个盘块,每块大小为1 KB,其中第201~7999 号盘 块用于存放文件,即作为文件区,这样,该区的最 末一组盘块号应为7901~7999;次末组为7801~ 7900……;第二组的盘块号为301~400;第一组为 201~300,如图 8-11右部所示。 (3) 将每一组含有的盘块总数N 和该组所有的盘块号 记入其前一组的第一个盘块的S.free(0)~S.free(99) 中。这样,由各组的第一个盘块可链成一条链。
8.1.1 连续组织方式
1.连续组织方式 :又称为连续分配方式。要求为每 一个文件分配一组相邻接的盘块;
在采用连续分配方式时,可把逻辑文件中的记录 顺序地存储到邻接的各物理盘块中,这样所形成 的文件结构称为顺序文件结构,此时的物理文件 称为顺序文件。
8-1
2.连续分配的主要优点:
连续分配的主要优点