操作系统中文件系统的实现与分配方法分析(二)

发布于:2024-10-24 编辑:匿名 来源:网络

非连续空间存储方式我们已经对连续分配方式有了一定的了解,也意识到了它的问题和局限性。为了解决这些问题,非连续存储方法应运而生。

非连续空间存储大致可以分为两种形式:链表形式和索引形式。链式分配 链式分配是一种离散分配方法,用于将不连续的磁盘块分配给文件。

它有两种分发方式:显式链接和隐式链接。隐式链接 隐式链表分配和我们已知的Java链表知识基本一致,都需要存储下一个节点的指针。

但为什么叫隐式链接呢?因为我们不知道每个节点的指针是什么,所以只能通过遍历从头节点开始逐步获取下一个节点的指针。每次操作都一样,不存储指针。

在隐式链接分配中,目录项仅存储头节点(磁盘块)指针和尾节点(磁盘块)指针。当需要分配新的磁盘块时,我们使用最后一个磁盘块中的指针指向新的磁盘块,并将新的磁盘块标记为最后一个磁盘块。

现在让我们考虑一个问题:如何使用隐式链接将逻辑块号转换为物理块号?我们可以将其与Java中的链表如何找到相应元素进行比较。当用户提供要访问的逻辑块号i时,操作系统需要找到需要访问的文件的文件控制块(FCB)。

从FCB中,我们可以知道文件的起始块号,然后将逻辑块号0的数据读取到内存中。通过这样,我们就可以知道1号逻辑块的物理块号,然后将1号逻辑块的数据读取到Memory中,以此类推,最终可以找到用户需要访问的逻辑块号i。

因此,访问编号为i的逻辑块需要i+1次磁盘I/O操作。隐式链接分配,就像Java中的链表一样,只能顺序访问,不支持随机访问,因此搜索效率较低。

现在我们考虑另一个问题:使用隐式链接是否有利于文件扩展?我们可以将其与Java中的链表进行比较。扩展方便吗?我们知道目录项中存储的是结束块号的物理地址。

因此,如果我们想要扩展文件,只需要将新分配的磁盘块挂载在结束块号之后即可。我们修改结束块号指针以指向新分配的磁盘块并更新目录项。

隐式链接分配类似于Java中的链表,对于文件扩展非常方便。所有空闲磁盘块都可以利用,不存在碎片问题,存储利用率高。

显式链接有隐式连接,因此存在显式链接。在隐式链接中,我们说每个节点指针都是不存储的,所以每次需要再次从头节点获取下一个指针节点时,那么就使用显式链接来链接各个节点。

指向物理块的指针显式地存储在一个称为文件分配表(FAT,File Allocation Table)的表中。图像由于查找记录的过程是在内存中进行的,因此检索速度显着提高,并且减少了磁盘访问次数。

但正是因为整个表都存储在内存中,所以它的主要缺点是不适合大磁盘。例如,假设您有一个具有 GB 空间和 1KB 块大小的磁盘。

根据显式链接方法,文件分配表中需要存储2亿个条目,每个条目对应磁盘上的一个块。如果每个项目需要4字节的存储空间,则文件分配表将占用MB内存。

显然,这种方式不适合大磁盘。索引分配在了解索引分配之前,可以先思考一下MySQL中的索引结构,这样可以更好地理解索引分配的原理。

链表方式解决了连续分配的磁盘碎片和动态文件扩展的问题,但无法有效支持直接访问(FAT除外)。为了解决这个问题,可以使用索引。

索引的实现是为每个文件创建一个“索引数据块”,其中存储了指向文件数据块的指针列表,类似于书籍的目录。通过查阅索引数据块,可以快速找到对应的数据块。

另外,文件头还需要包含指向“索引数据块”的指针。这样,通过文件头就可以知道索引数据块的位置,进而可以通过索引数据块中的索引信息找到对应的数据块。

创建文件时,所有指向索引块的指针都设置为空。当第 i 个块第一次被写入时,从空闲空间中取出一个块,并将其地址写入索引块的第 i 个条目。

这样,通过文件头中指向索引数据块的指针,就可以知道索引数据块的位置,并可以通过索引数据块中的索引信息找到对应的数据块。图像索引分配的优点包括:易于创建、增长和收缩文件;不存在碎片问题;支持顺序读写和随机读写。

然而,索引分配也有一些缺点。由于索引数据也需要存储在磁盘块中,如果文件较小,实际上只需要一个块来存储,但仍然需要额外分配一个块来存储索引数据,这会带来额外的开销。

如果文件太大,一个索引数据块无法容纳所有索引信息,我们可以采用组合的方式来处理大文件的存储。组合方式是链表+索引,也称为“链式索引块”。

在本实施例中,索引数据块中保留了一个指针,用于存储下一个索引数据块的地址。当一个索引数据块的索引信息用完时,可以通过该指针找到下一个索引数据块的信息。

不过这种方法也会面临链表方法的问题,即如果一个指针损坏,后续的数据将无法读取。为了解决这个问题,可以使用多级索引。

多级索引将大文件的索引信息分散到多个索引数据块中,以减轻单个索引数据块的负担。与MySQL的B+树索引结构类似,多级索引也是将索引数据存储在非叶子节点中,索引指针指向叶子节点的数据。

尽管存在一些差异,但它们的逻辑是相似的。图片摘要非连续空间存储方法是为了解决连续分配方法的问题和局限性而提出的。

其中,链分配方法包括隐式链接和显式链接。隐式链接通过存储头节点和尾节点指针实现文件的非连续分配,但查找效率较低且不支持随机访问,但方便文件扩展且无碎片问题。

显式链接通过文件分配表存储指向物理块的指针,提高检索速度,但不适合大磁盘。该索引分配方法通过为每个文件创建索引数据块,并在文件头和索引数据块中存储指针信息,实现文件的非连续分配和直接访问。

索引分配的优点包括易于创建、扩展和收缩文件、无碎片问题以及支持顺序和随机读写。然而,索引分配也有一些缺点,例如小文件的额外开销。

为了解决大文件存储的问题,可以采用链式索引块和多级索引的结合。链式索引块通过指针连接多个索引数据块,但可能面临指针损坏而无法读取数据的问题。

多级索引将大文件的索引信息分散到多个索引数据块中,提高了文件系统的性能和可靠性。这些优化可以更好地处理大文件存储并使文件系统更加高效。

操作系统中文件系统的实现与分配方法分析(二)

站长声明

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

标签:

相关文章

  • “2014级”创业公司面临破产潮,你如何才能在1000天的大逃杀中生存下来?

    “2014级”创业公司面临破产潮,你如何才能在1000天的大逃杀中生存下来?

    斯坦福大学联合硅谷企业家和10家孵化器对互联网/移动互联网领域高成长初创企业进行调查。 结果显示,92%的企业无法生存。 时间回到2010年,那是一个创业公司疯狂成长的时代。 数据显示,中国每年的创业公司数量达到1万家,这意味着每天有0家公司成立。 按上述比例计算,这三年

    06-18

  • 国投创业基金投资助力粤港澳大湾区科技成果转化

    国投创业基金投资助力粤港澳大湾区科技成果转化

    近年来,粤港澳大湾区在国家新的发展中发挥着重要的战略作用发展格局。 要把粤港澳大湾区作为新发展格局战略。 高质量发展的支点、示范地、中国式现代化的引领地。 要强化企业主体地位,推动创新链、产业链、资金链、人才链深度融合,不断提高科技成果转化和产业化水平,打造

    06-18

  • 尚颀资本参与上海吉塔半导体80亿元融资

    尚颀资本参与上海吉塔半导体80亿元融资

    11月30日,尚颀资本完成对上海吉塔半导体有限公司(简称“吉塔半导体”)5亿元人民币的A轮投资。 本轮投资尚颀资本引入上汽专项资金,以市场化基金的形式进行投资,协助上汽集团战略布局国内领先的汽车级芯片和碳化硅功率器件厂商。 吉塔半导体本轮融资80亿元人民币,由原股东

    06-18

  • 华为CFO孟晚舟谈企业IPO:开放上市

    华为CFO孟晚舟谈企业IPO:开放上市

    据1月21日消息,华为CFO孟晚舟首次在媒体面前公开亮相,介绍了华为年度业绩增长情况,并接受了诸多关心的问题接受行业媒体采访。   在回答有关上市问题时,孟晚舟表示,华为对上市持开放态度。 “无论未来做出什么决定,都会符合法律要求和股东利益。 ”   她表示,无论华

    06-18

  • 江西600亿引导基金来了

    江西600亿引导基金来了

    这可能是江西最大的引导基金了。 投资界-解码LP从江西获悉,经江西省市场监督管理局批准,江西现代产业引导基金(有限合伙)在赣江新区注册,注册资本1亿元。 该基金的设立意义重大。 这是继4月18日江西国控私募基金管理有限公司(简称:国控基金)取得基金管理人资格后,江西

    06-17

  • 莫克科技完成数千万元Pre-A轮融资,凯泰资本独家投资

    莫克科技完成数千万元Pre-A轮融资,凯泰资本独家投资

    近日,成都莫克科技有限公司(以下简称“莫克科技”)宣布完成数十轮融资Pre-A轮融资数百万元。 由凯泰资本独家投资。 本轮融资将主要用于加速公司产品研发、市场推广、生态建设和国际化拓展。

    06-18

  • 投资世界24小时-东鹏饮料成功上市;盈科科技创新产业基金完成募集,规模100亿元; 《海马云》获新一轮融资2.8亿元

    投资世界24小时-东鹏饮料成功上市;盈科科技创新产业基金完成募集,规模100亿元; 《海马云》获新一轮融资2.8亿元

    时间:2020年5月28日星期五刚刚重要消息,大佬IPO又一波在汕头敲响:东鹏饮料市值过亿。 东鹏饮料的成功上市仅仅是一个开始。 你身边的饮品王牌纷纷争相IPO。 如今,中国又一家上市公司东鹏饮料成功IPO。 据投资界2月27日消息,东鹏特饮料母公司东鹏饮料在上交所挂牌上市,发

    06-17

  • 英文版在线客服的概念、功能、发展、挑战及解决方案

    英文版在线客服的概念、功能、发展、挑战及解决方案

    .wp-block-column h3{margin-left:0} 1、概念 英文版在线客服,又称英文在线客户服务系统,是一个基于互联网的客户服务解决方案。 通过实时在线聊天、电子邮件、电话等方式,为全球客户提供24/7的在线服务。 英文版在线客服系统的核心是实现企业与客户之间实时有效的沟通。 为

    06-17

  • 梅州东坡旗下食品公司王家渡完成新一轮融资,复星创投领投

    梅州东坡旗下食品公司王家渡完成新一轮融资,复星创投领投

    梅州东坡旗下食品公司王家渡完成新一轮融资,复星创投领投近百万元,番茄资本跟投。 千万元。 此外,梅州东坡的餐饮板块也启动了上市计划。 王家渡食品成立于2001年,产品包括以梅州香肠、腊肉为代表的肉制品和以麻辣香锅为代表的调味品。

    06-18

  • Google、Instagram、Twitter 前员工揭示互联网如何利用你的心理来对付你

    Google、Instagram、Twitter 前员工揭示互联网如何利用你的心理来对付你

    “时间就是金钱”这句谚语在 2000 年被拍成了科幻电影《时间规划局》。 在电影构建的未来世界中,“时间”完全等同于金钱。 你努力工作赚取“时间”,然后用“时间”去买东西。 ▲电影《时间规划局》()看似是只出现在科幻电影中的幻想,但现在却以另一种形式成为了现实——我

    06-21

  • 北京金控集团与京东数字科技达成框架合作,共同推动普惠金融数字化

    北京金控集团与京东数字科技达成框架合作,共同推动普惠金融数字化

    据投资界7月31日消息,近日,北京金控集团股份有限公司(以下简称“京东数字科技”)北京金控集团有限公司(以下简称“北京金控集团”)与京东数字科技控股有限公司(以下简称“京东数字科技”)在京东集团总部签署框架合作协议。 此次合作,北京金控集团与京东数字科技旨在

    06-17

  • 传网秦5月5日纽交所上市IPO融资额或为7500万美元

    传网秦5月5日纽交所上市IPO融资额或为7500万美元

    北京时间4月19日上午消息,网秦将在纽交所挂牌交易5月5日在美国证券交易所上市,股票代码“NQ”。   NQ此前宣布IPO价格区间为9.50美元至11.50美元,并计划发行10,000股美国存托股(ADS)并筹集10,000美元。 此前规划的融资规模为1亿美元。   NQin在今天提交的监管文件中表

    06-18