欢迎来到天天文库
浏览记录
ID:36315359
大小:914.00 KB
页数:51页
时间:2019-05-09
《linux课件filesystem》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、文件系统DOS的文件系统Unix的文件系统Linux的文件系统当你把新买的一个硬盘装到电脑上之后,你接下来要做的事情是什么?文件系统分区和格式化为什么一定要分区?分区的理由:首先,分区可以方便我们对磁盘的使用,不同的分区可以建立不同的文件系统;其次,分区有安全性上的优势。因为一个分区毁坏了,另一个分区仍然可以使用;再次,分区有可靠性上的优势。一个分区的故障不影响另一个分区的运行。这些都是好的理由,但都不是必须分区的理由。必须分区的理由:必须分区的理由是对磁盘空间的使用。因为计算机的内存字长是有限的,而磁盘地址需要存放在
2、内存字里面。因此,操作系统能够访问的磁盘地址数量是一个有限数。例如,早期的内存字长度为16位,操作系统能够表示的磁盘地址数为216,也就是65536个磁盘地址。假设磁盘数据块(每个地址)的大小为512字节,则操作系统能够访问的最大磁盘空间为33554432,即32MB的空间文件系统常用的文件物理分配方式如下:连续区分配优点:(1)顺序访问容易(2)顺序访问速度快;文件访问的速度是几种存储空间分配方式中最高的一种。缺点:要求有连续的存储空间必须事先知道文件的长度不宜用来存放用户文件、数据库文件等经常被修改的文件。隐式链接
3、在文件目录的每个目录项中,都必须含有指向链接文件第一个盘块和最后一个盘块的指针顺序访问(随机访问低效)可靠性差为了提高检索速度和指针所占的存储空间,可将几个盘块组成一个簇(cluster)显式链接用于链接文件各物理块的指针,显式地存放在内存的一张链接表中,该表在整个磁盘仅一张,即FAT。文件分配表FAT技术Microsoft在其早期的操作系统中采用的是FAT(FileAllocationTable,文件分配表)文件系统.早期MS-DOS操作系统所使用的是FAT12文件系统,在每个分区中都配有两张文件分配表FAT1和FA
4、T2,在FAT的每个表项中存放下一个盘块号,它实际上是用于盘块之间的链接的指针,通过它可以将一个文件的所有的盘块链接起来,而将文件的第一个盘块号放在自己的FCB(FileControlBlock,文件控制块,即目录项)中。MS-DOS的文件物理结构对于1.2MB的软盘,每个盘块的大小为512B,在每个FAT中共含有2.4K个表项,由于每个FAT表项占12位,故FAT表占用3.6KB的存储空间现在我们来计算以盘块为分配单位时,所允许的最大磁盘容量。由于每个FAT表项为12位,因此,在FAT表中最多允许有4096个表项,如
5、果采用以盘块作为基本分配单位,每个盘块(也称扇区)的大小一般是512字节,那么,每个磁盘分区的容量为2MB(4096×512B)。同时,一个物理磁盘支持4个逻辑磁盘分区,所以相应的磁盘最大容量仅为8MB。这对最早时期的硬盘还可应付,但很快磁盘的容量就超过了8MB,FAT12是否还可继续用呢,回答虽是肯定的,但需要引入一个新的分配单位——簇.FAT技术簇的概念为了适应磁盘容量不断增大的需要,在进行盘块分配时,不再以盘块而是以簇(cluster)为基本单位。簇是一组连续的扇区,在FAT中它是作为一个虚拟扇区,簇的大小一般是
6、2n(n为整数)个盘块,在MS-DOS的实际运用中,簇的容量可以仅有一个扇区(512B)、两个扇区(1KB)、四个扇区(2KB)、八个扇区(4KB)等。一个簇应包含扇区的数量与磁盘容量的大小直接有关。例如,当一个簇仅有一个扇区时,磁盘的最大容量为8MB;当一个簇包含两个扇区时,磁盘的最大容量可以达到16MB;当一个簇包含了八个扇区时,磁盘的最大容量便可达到64MB。FAT技术由上所述可以看出,以簇作为基本的分配单位所带来的最主要的好处是,能适应磁盘容量不断增大的情况。值得注意的是,使用簇作为基本的分配单位虽可减少FAT
7、表中的项数(在相同的磁盘容量下,FAT表的项数是与簇的大小成反比的)。这一方面会使FAT表占用更少的存储空间,并减少访问FAT表的存取开销,提高文件系统的效率;但这也会造成更大的簇内零头(它与存储器管理中的页内零头相似)。FAT技术FAT12存在的问题尽管FAT12曾是一个不错的文件系统,但毕竟已老化,已不能满足操作系统发展的需要,其表现出来的主要问题是,对所允许的磁盘容量存在着严重的限制,通常只能是数十兆字节,虽然可以用继续增加簇的大小来提高所允许的最大磁盘容量,但随着支持的硬盘容量的增加,相应的簇内碎片也将随之成倍
8、地增加。此外,它只能支持8+3格式的文件名。FAT技术FAT16对FAT12所存在的问题进行简单的分析即可看出,其根本原因在于,FAT12表最多只允许4096个表项,亦即最多只能将一个磁盘分区分为4096个簇。这样,随着磁盘容量的增加,必定会引起簇的大小和簇内碎片也随之增加。由此可以得出解决方法,那就是增加FAT表的表项数,亦即应
此文档下载收益归作者所有