文件逻辑结构、外存分配和空闲空间管理

来源:互联网 发布:数据归一化的方法 编辑:程序博客网 时间:2024/06/05 13:26

一 文件的逻辑结构(组织方式):

(1)顺序文件:所有记录具有相同长度,并且由相同数目、长度固定的域按照特定的顺序组成(记录按关键字排序)。

*优点:通常用于批处理文件,即每次读或写一大批记录,顺序文件是最佳的;只有顺序文件才能存储在磁带上。

*缺点:对于查询或更新记录的交互式应用,顺序文件性能很差(在访问时,为了匹配关键字,需要顺序查找文件);增加或删除一个记录比较困难。


(2)索引文件:对主文件的每个记录(可以是变长的记录),索引表中设有一个相应的表项,用于记录该记录的长度L及指向该记录的指针。由于索引表本身是一个定长记录的顺序文件,从而可以方便的实现直接存取。

*检索过程:首先根据用户提供的关键字,并利用折半查找法去检索索引表,从中找到相应的表项;再利用该表项中给出的指向记录的指针值,去访问所需的记录。每当要向索引文件中增加一个新记录时,便需对索引表进行修改。

*优点:索引表具有较快的检索速度,因此主要用于对信息处理的及时性要求较高的场合。

*缺点:存储成本大。除了主文件,还需配置一张索引表,而且每个记录都要有一个索引项。

*如下图:



(3)索引顺序文件:是顺序文件和索引文件相结合的产物,最常见的一种逻辑文件方式,克服了变长记录不便于直接存取的缺点,而且付出的代价也不算太大。

*结构:将顺序文件所有记录分成若干个组;为顺序文件简历一张索引表,在索引表中为每组中的第一个记录建立一个索引项,其中含有该记录的键值和指向该记录的指针。

*检索过程:首先利用用户提供的关键字以及查找算法去检索索引表,找到该记录所在记录组中第一个记录的表项,从中得到该记录组第一个记录在主文件中的位置;然后利用顺序查找法去查找主文件,从中得到所要求的记录。

*如下图:



(4)直接文件(Hash文件):可根据给定的记录键值,直接获得指定记录的物理地址。

*特点:利用Hash函数,可将记录键值转换为相应记录的地址。通常由Hash函数所求得的并非是相应记录的地址,而是指向一目录表相应表目的指针,该表目的内容指向相应记录所在的物理地址。

*如下图:



外存分配:

*常用的三种文件分配方式:连续分配方式、链接分配方式、索引分配方式。

(1)连续分配方式:为每一个文件分配一组相邻接的盘块,一组盘快地址定义了磁盘上的一段线性地址。

*优点:顺序访问容易、快。

*缺点:要求有连续的存储空间,会产生许多外部碎片;必须实现知道文件的大小。


(2)链接分配方式:通过在每个盘块上的链接指针,将同属于一个文件的多个离散的盘块链接成一个链表,把这样形成的物理文件称为链接文件。

*优点:采用离散分配方式,消除了外部碎片,提高了外存空间利用率;无需知道文件的大小,可根据需要动态分配。

*缺点:局部性原理不在使用;不支持高效的直接存取(必须顺序查找)。


(3)索引分配:为每个文件分配一个索引块,再把分配给文件的所有盘块号都记录在该索引块中,因而索引块就是一个含有许多盘块号的数组。

*优点:支持随机访问;不会产生外部碎片;当文件较大时,由于链接分配方式。

*缺点:可能花费较多的外存空间,每建立一个文件时,便需为之分配一个索引块,将分配给该文件的所有盘块号记录于其中。


*支持多级索引和混合索引(多种索引分配方式相结合)如下图:




三 空闲空间管理:正如分配给文件的空间需要管理,当前还没有分配的空间也必须管理起来。

(1)位示图法:使用一个向量,向量的每一位对应于磁盘中的每一块。0:表示空闲块,1:表示已使用块。

*优点:很容易找到一个或一组连续的空闲块;位示图很小,占用空间少。常用语微型机或小型机中。


(2)空闲表法:类似于连续分配方式,系统为外存上的所有空闲去建立一张空闲表,每个空闲区对应于一个空闲表项,其中包括表项序号、该空闲区的第一个盘块号、该区的空闲盘块信息。如下图:


(3)空闲链表法:将所有空闲盘区拉成一条空闲链。根据构成链的基本元素不同分为:空闲盘块链和空闲盘块区。


(4)成组链接法:

*空闲表法和空闲链表法都不适用于大型文件系统,因为这会使空闲表和空闲链表太长。在UNIX中采用的是成组链接法,结合上述两种方法而形成的一种空闲盘块管理方法。































原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 9岁牙龈上长牙齿怎么办 2颗门牙中间黑了怎么办 牙表面有个小洞怎么办 两岁宝宝有龋齿怎么办 3岁宝宝门牙龋齿怎么办 牙齿又黑又黄怎么办 牙齿里面的黄垢怎么办 牙齿长蛀牙有洞怎么办 牙齿空了洞疼痛怎么办 牙齿破了个洞怎么办 后牙齿有个大洞怎么办 大牙烂了个洞,痛怎么办 牙黑了有洞怎么办 牙齿内侧掉了一小块怎么办 龋坏的牙齿痛怎么办 2岁半宝宝蛀牙怎么办 3岁宝宝门牙腐蚀怎么办 2岁宝宝门牙有洞怎么办 三岁宝宝有龋齿怎么办 牙龈肿痛脸肿了怎么办 孕妇牙疼的厉害怎么办 智齿引起的牙疼怎么办 蛀牙了有个大洞牙痛怎么办 长了蛀牙牙疼怎么办 面饼表面长黑点怎么办 牙结石自己掉了怎么办 狗狗得了牙结石怎么办 牙结石掉了有洞怎么办 内衣的钩子会掉怎么办? 新胸罩肩带老掉怎么办 牙齿少了一小块怎么办 儿童牙齿有黑斑要怎么办 牙齿又黄又臭怎么办 大牙烂空了很臭怎么办 牙齿已经烂没了怎么办 牙齿已经蛀没了怎么办 牙齿整个蛀掉了怎么办 小孩恒牙长歪了怎么办 孩子换牙长歪了怎么办 9岁门牙磕松动了怎么办 牙齿摔断了一半怎么办