【操作系统复习】文件系统:磁盘空间分配

磁盘空间分配分为三种策略:连续分配(Continuous allocation)、链接分配(Linked allocation)、索引分配(Indexed allocation)

1. 连续分配(Contiguous Allocation)

  • 每个文件在磁盘上占据一组连续的块。

  • 简单,只需要起始位置(块号)和长度(块数)的信息。

  • 支持随机访问。在这种情况下,访问任何块都只需要1次物理读取,因为块是连续存储

的。

  • 浪费空间(动态存储分配问题),因为文件需要连续的空间。

  • 文件不能动态增长。

基于Extent的文件系统是许多较新的文件系统所采用的一种修改后的连续分配方案。在Extent-based文件系统中,磁盘块以Extent的形式分配。

2. 链接分配(Linked Allocation)

其中每个文件都被表示为磁盘块的链表,这些块可以散布在磁盘的任何地方。

  • 每个文件是一个由磁盘块组成的链表,这些块可以分散在磁盘上的任何位置。

  • 简单,只需要起始地址。

  • 无需额外的空间管理系统,不会浪费磁盘空间。

  • 不支持随机访问。因为要访问文件中的某个块,必须按照链表顺序遍历整个文件。

  • 要访问特定的逻辑块,需要从⽂件的起始块开始,沿着链接列表遍历,直到达到⽬标块。

 

3. 索引分配(Indexed Allocation)

它将所有指针汇总到索引块中。

  • 将所有指向文件数据块的指针集中存储在索引块中。

  • 提供了逻辑视图,使文件的访问更加方便。

  • 需要索引表(Index Table)来管理文件的索引块。

  • 支持随机访问,因为通过索引块可以直接访问文件的任意块。

  • 允许动态访问,而不会产生外部碎片问题,但需要索引块的额外开销

 

索引分配的一个典型应用场景是将逻辑地址映射到物理地址,其中文件的最大大小为256K字(或512块),块大小为512字。在这种情况下,只需要1个索引块来管理索引表,以便进行逻辑到物理地址的映射。

计算过程:

256K/512 = 512 \\ log(512) = 8 \\

 需要8位地址,即1字,所以一个块中可以储存512个地址,对应512块

  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值