免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1002 | 回复: 0
打印 上一主题 下一主题

Linux系统下文件系统工作原理简介 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-10-12 11:13 |只看该作者 |倒序浏览
文件系统通过为每个文件分配文件块的方式把数据存储在存储设备中。这样就要维护每一个文件的文件块的分配信息,而分配信息本身也要存在磁盘上。DOS和Windows的用户可能还记得FAT这种文件系统吧。不同的文件系统用不同的方法分配和读取文件块。
有两种常用的文件系统的分配策略:块分配(block allocation)和扩展分配(extent allocation)。块分配当文件变大的时候每一次都为这个文件分配磁盘空间,而扩展分配则是当某个文件的磁盘空间不够的时候,一次性为它分配一连串连续的块。
传统的Unix文件系统使用的块分配的机制提供了一个灵活而高效的文件块分配策略。
磁盘上的文件块根据需要分配给文件,这样可以减少存储空间的浪费。当一个文件慢慢变大的时候,就会造成文件中文件块的不连续。这就导致了过多的磁盘寻道时
间,当读取一个文件的时候有可能要随机而不是连续地读取文件块,这样的效率很低。
可以通过优化文件块的分配策略(尽可能为文件分配连续的块)来避免文件块的随机分配。通过使用聪明的块分配策略,可以实现块的连续分配。这样就可以减少磁盘的寻道时间。但是,当整个文件系统的文件块的分配形成碎片的时候,就再也不可能连续分配了。
每一次当文件扩展的时候,块分配的算法就要写入一些关于新分配的块所在位置的信息。
如果每一次文件扩展的时候只增加一个块,那么就需要很多额外的磁盘I/O用来写入文件块的结构信息。文件块的结构信息也就是上面说的meta-data。
meta-data总是一起同时地写入存储设备的,这就意味着改变文件大小的操作要等到所有的meta-data的操作都完成之后才能进行。因
此,meta-data的操作会显著地降低整个文件系统的性能。
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/81377/showart_1286850.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP