码迷,mamicode.com
首页 > 其他好文 > 详细

浅谈外存分配的几种方式

时间:2014-09-09 18:22:59      阅读:255      评论:0      收藏:0      [点我收藏+]

标签:操作系统   外存分配   索引分配   顺序分配   链式分配   

外存,指的是除了cpu缓存和内存以外的存储器,硬盘、光盘、U盘都可以被称为外存。所有的数据,也都存在这里面,故他的分配方式变得极其重要,这直接影响到了计算机的运行速度。

外存分配方式主要有这几种:连续分配,链式分配,索引分配。


一.  连续分配

原理:创建文件时,分配一组连续的块;FAT(文档分配表)中每个文件只要一项,说明起始块和文件长度。对于顺序文件有利。

优点:1.简便。适用于一次性写入操作。2.支持顺序存取和随机存取,顺序存取速度快。3.所需的磁盘寻道次数和寻道时间最少。(因为空间的连续性,当访问下一个磁盘块时,一般无需移动磁头,当需要移动磁头时,只需要移动一个磁道。)

缺点:1.文件不能动态增长。(可能文件末尾处的空块已经分配给了别的文件。)2.不利于文件的插入和删除。3.外部碎片问题。(反复增删文件后,很难找到空间大小足够的连续块,需要进行紧缩。)4.在创建文件时需生命文件大小。

如图:

bubuko.com,布布扣


二.  链式分配

原理:一个文件的信息存放在若干个不连续的物理块中,各块之间通过指针连接,前一个物理块指向下一个物理块。fat中每个文件同样只需要一项,包括文件名、起始块号和最后块号。任何一个自由块都可以加入到链中。

优点:1.提高磁盘的空间利用率,不存在外部碎片问题。2.有利于文件的插入和删除。3.有利于文件的动态扩充。

缺点:1.存取速度慢,一般只适用于信息的顺序存取,不适于随机存取。2.查找某一块必须从头到尾沿着指针进行。3.可靠性问题,如指针出错。4.更多的寻道次数和寻道时间。5.链接指针占一定的空间,将多个块组成簇,按簇进行分配而不是按块进行分配。(增加了磁盘碎片)

如图:

bubuko.com,布布扣

bubuko.com,布布扣

使用FAT文件分配表法,链接分配的变种,如MS-DOS 和 OS/2.


三.  索引分配

原理:每个文件在FAT中有一个一级索引,索引包含分配给文件的每个分区的入口。文件的索引保存在单独的一个块中,FAT中该文件的入口指向这一块。

优点:1.保持了链接结构的优点,又解决了其缺点:按快分配可以消除外部碎片。按大小可改变的分区分配可以提高局部性。索引分配支持顺序访问文件和直接访问文件,是普遍采用的一种方式。2.满足了文件动态增长,插入删除的要求。(只要有空闲块)3.能充分利用外存空间。

缺点:1.较多的寻道次数和寻道空间。2.索引表本身带来了系统开销,如:内外存空间、存取时间。

如图:

bubuko.com,布布扣

四.  连续分配和索引分配相结合

原理:对于小文件(3、4块),采用连续分配;当文件大时,自动切换到索引分配。

文件的直接访问:使用连续分配方式。

文件的顺序访问:采用链接分配。

对于这些系统,所使用的访问类型,必须在文件创建时加以说明。


五.  多重索引

原理:首先,多重索引也是索引分配的一种,只不过它是将一个大文件的所有索引表(二级索引)的地址放在另一个索引表(一级索引)中。ps:跟数据库第四范式非常像。

bubuko.com,布布扣

大文件:设一个盘块大小为1kb,长度100kb的文件就需要100个盘块,索引表至少需要100项;若文件大小为1000kb,则索引表项就要有1000项。设盘块号用4个字节表示,则该索引表至少占用4000bye(约4k)。

当文件很大时,存在的问题:1.需要很多磁盘块。2.索引表很大。3.不能将整个索引表放在内存。

解决途径:采用多重索引表结构。

如图:

bubuko.com,布布扣

多重索引表结构图示:

bubuko.com,布布扣

暂时就简单介绍到这里,后续会为大家添加也一些样例,如有不对地方请指正,谢谢!



浅谈外存分配的几种方式

标签:操作系统   外存分配   索引分配   顺序分配   链式分配   

原文地址:http://blog.csdn.net/liuqiyao_01/article/details/39156651

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!