当前位置: 首页 > news >正文

文件存储空间管理

存储空间的划分与初始化

文件卷可以由多个文件磁盘组成

空闲表法

记录了每一个空闲区局的起始地址和结束地址

分配:与内存管理中的动态分区分配很类似,为一个文件分配连续的存储空间,同样可以有首次适应,最佳适应,最坏适应算法来决定问文件分配的区间

回收:与内存管理中的动态分区分配很类似,当回首某个存储区的时候:

前后不空

前后都空

前空

后空

空闲链表法

空闲盘块链

以盘块【一个个的小单元】为单位组成一条空闲链

系统保存着链头,链尾指针

分配:若文件申请K个盘块,则从链头开始一次摘下K个盘块分配,并修改空闲链头指针

回收:回收盘块依次挂到链尾,修改空闲链的链尾指针

适用于离散分配的物理结构

空闲盘区链

以盘区【一组组的小单元】为单位组成一条空闲链

分配:若某文件申请K个盘块,则可以采用首次适应,最佳食用等算法,从链头开始检索,按照算法规则找到一个大小合适的空闲盘区,如果没有合适的联系空闲块,就将不同盘区的盘块同时分配给一个文件

回收:和空闲表法一样

适合连续和离散分配

位示图法

位示图:每个二进制位对应一个盘块,0代表盘块空闲,1代表以及分配,位示图一般用连续的字来表示,比如本鲤中一个字长度是16位,字宗每一位对应一个盘块

需要注意盘块号/字号/位号从0开始还是从1开始

(字号,位号)=(i,j)的二进制对应盘块号b=ni+j

b号盘块对应的字号i=b/n ,位号j=b%n

分配:若文件需要K个块

1.顺序扫描位示图,找到K个相邻或不相邻的0,

2.根据字号,位号酸楚对应的盘块号,将相应盘块分配给文件

3.将相应位设置为1

回收

1.根据回收的盘块号计算出对应的字号,位号

2.将相应的二进制位设置为0

成组链接法

unix系统用的

文件目录区中设置一个超级快,系统启动时,超级快读如内存

分配:需要一个空闲块

1.检查第一个分组的块数是否足够

2.分配第一个分组中的1个空闲块,并修改对应数据

分配:需要分配100个空闲块

1.检查分组的块数是否足够

2.分配第一个分组中的100个空闲块,但是由于300号块内存放了再下一组的信息,因此300号块的数据需要复制到超级快中

回收:假设每个分组最多100个空闲块,此时第一个分组有99个块,还需要再回收一个块

那么就把后一个的空闲块插入到第一个分组当中

回收:假设每个分组最多100个空闲块,此时第一个分组有100块,还需要再回收一块,需要将超级快中的数据复制到新回收的块中,并修改超级快的内容,让新回收的块称为第一个分组

新的分组称为新的超级快

http://www.hskmm.com/?act=detail&tid=25619

相关文章:

  • 详细介绍:关于ios点击分享自动复制到粘贴板的问题
  • 新一代数据平台替代传统大数据技术栈
  • 攻击者如何绕过macOS内置安全防护机制
  • 在A列连续且相等行的最后插入空行,并求和
  • 10.6集训改错
  • @Prometheus 监控-MySQL (Mysqld Exporter) - 教程
  • AI元人文:走向人机价值共生的文明新范式
  • 实用指南:【机器学习基础】机器学习入门核心算法:层次聚类算法(AGNES算法和 DIANA算法)
  • CSP-J 第二轮集训 :总结 + 专题细分精讲_from_黄老师
  • ROIR 2024
  • 软件工程第一次随笔 - Nicholas
  • 深入解析:【数据库】关系数据库标准语言-SQL(金仓)下
  • Codeforces Round 1056 (Div. 2) (4/6)
  • 20251006
  • UV使用
  • 动手实验——mybatis generator
  • 学生管理系统面向对象分析报告
  • 荷兰青少年通过Telegram被招募,涉嫌参与俄罗斯支持的黑客活动
  • Moscow International Workshops 2017. Day 4. Lviv NU Contest, GP of Ukraine
  • 小代码使用npm包的方法
  • day18 课程(模块 )
  • Kubernetes(K8s)核心架构解析与实用命令大全 - 教程
  • mzoj 2025/10/6
  • 实验作业1-8 陆绎
  • 全源最短路 Johnson算法
  • 《对象创建的秘密:Java 内存布局、逃逸分析与 TLAB 优化详解》 - 实践
  • go get net/http connections count, using middleware
  • win11开机后卡死,磁盘c盘占用100%,解决方案
  • 跨越国度 解题报告
  • 手写Promise核心代码