目录

空闲空间管理方法

空闲区表

位示图

空闲物理块链

成组链接法

分配算法

释放算法


空闲空间管理方法

常用的空闲空间的管理方法有:空闲区表、位示图和空闲块链三种。

空闲区表

将外存空间上一个连续未分配区域称为“空闲区”。操作系统为磁盘外存上所有空闲区建立一张空闲表,每个表项对应一个空闲区,空闲表中包含序号、空闲区的第一块号、空闲块的块数等信息。它适用于连续文件结构。

适合连续文件

创建文件步骤

  1. 分配磁盘空间
  2. 创建目录项

缺点:空间利用率不高

位示图

这种方法是在外存上建立一张位示图(bitmap),记录文件存储器的使用情况。每一位对应文件存储器上的一个物理块,取值0和1分别表示空闲和占用。

这种方法的主要特点是位示图的大小由磁盘空间的大小(物理块总数)决定,位示图的描述能力强,适合各种物理结构。

空闲物理块链

每个空闲物理块中有指向下一个空闲物理块的指针,所有空闲物理块构成一个链表,链表的头指针放在文件存储器的特定位置上(如管理块中)。

分配方法:每次申请空闲物理块只需根据链表的头指针取出第一个空闲物理块。
优点:不需要磁盘分配表。
缺点:释放和分配都可以从链头处进行,修改有关的链接字时需要反复读写磁盘,系统开销很大。

空闲物理块链的改进->成组链接法

成组链接法

将空闲块分成若干组,每100个空闲块为一组。每组的第一个空闲块登记了下一组空闲块的物理盘块号和本组空闲块总数 。

分配算法

释放算法

《操作系统》学习笔记|6.6外存空间管理相关推荐

  1. 操作系统学习笔记 第二章:进程管理(王道考研)

    本文章基于 2019 王道考研 操作系统 考试复习推荐资料:操作系统复习总结 - 百度文库 (baidu.com) 需要相关电子书的可以关注我的公众号BaretH后台回复操作系统 第一章:操作系统概述 ...

  2. Linux操作系统学习笔记(十)内存管理之内存映射

    一. 前言   本文为内存部分最后一篇,介绍内存映射.内存映射不仅是物理内存和虚拟内存间的映射,也包括将文件中的内容映射到虚拟内存空间.这个时候,访问内存空间就能够访问到文件里面的数据.而仅有物理内存 ...

  3. linux学习笔记(6)磁盘管理

    linux学习笔记(6)磁盘管理 文章目录   6.1磁盘命名   6.2分区方式   6.3磁盘管理     6.3.1基本分区     6.3.2逻辑卷LVM     6.3.3交换分区管理Swa ...

  4. Linux操作系统学习笔记【入门必备】

    Linux操作系统学习笔记[入门必备] 文章目录 Linux操作系统学习笔记[入门必备] 1.Linux入门 2.Linux目录结构 3.远程登录 3.1 远程登录Linux-Xshell5 3.2 ...

  5. ROS机器人操作系统学习笔记(三)ROS通信架构

    ROS机器人操作系统学习笔记(三)ROS通信架构 ROS的通信架构是ROS的灵魂,也是整个ROS正常运行的关键所在.ROS通信架构包括各种数据的处理,进程的运行,消息的传递等等.本章主要介绍了通信架构 ...

  6. UC/OS III操作系统学习笔记

    UCOS操作系统学习笔记 1.UCOSIII任务 1.1任务管理 1.2 任务创建和删除.挂起和恢复 1.3 系统内部任务 2.UCOSIII中断和时间管理 2.1 中断管理 2.2 时间管理 3.U ...

  7. JDBC学习笔记03【JDBC事务管理、数据库连接池、JDBCTemplate】

    黑马程序员-JDBC文档(腾讯微云)JDBC笔记.pdf:https://share.weiyun.com/Kxy7LmRm JDBC学习笔记01[JDBC快速入门.JDBC各个类详解.JDBC之CR ...

  8. 操作系统学习笔记-2.1.5线程概念和多线程模型

    操作系统学习笔记-2019 王道考研 操作系统-2.1.5线程概念和多线程模型 文章目录 5线程概念和多线程模型 5.1知识概览 5.2 什么是线程?为什么要引入线程? 5.3引入线程及之后,有什么变 ...

  9. 操作系统学习笔记目录(暂时不全223)

    操作系统学习笔记目录章节汇总 (暂时不全,目前只有第一章+第二章-浅谈线程,进程-2020.3.6) 文章目录 操作系统学习笔记目录章节汇总 1.打开钢琴的盖子(序章) 1.1-操作系统的概念(定义) ...

最新文章

  1. css里dom宽度,2019-08-23 DOM中各种高度、宽度
  2. MATLAB从入门到精通系列之MATLAB维度获取size()函数详解
  3. subversion SVN
  4. mysql master 配置_MySQL双Master配置的方法详解
  5. java finally块_java finally块后的语句是否要执行
  6. uml和模式应用 pdf_「企业架构」架构知识库应用简介
  7. 从零开始用python处理excel数据_Python对Excel的操作
  8. [Lab 2] OSPF专题
  9. 弃医从码 | 从肄业少年到失业青年,再到科技工程师的逆袭人生路
  10. 软件测试用例设计方法-判定表法
  11. 关于Bean Validation
  12. android 10 多开,多开分身安卓10版
  13. 游戏视频录制用什么软件?这2款软件,用过都说好
  14. 炸!微信Windows版可以刷朋友圈了
  15. 传统消费将被销巴生活全返消费颠覆
  16. 使用canvas画二维码
  17. 女篮亚军,为啥男篮那么水?
  18. 甲骨文最新改邮箱、改账户名、改密码教程
  19. 【java毕业设计】基于java+swing+Eclipse的俄罗斯方块游戏GUI设计与实现(毕业论文+程序源码)——俄罗斯方块游戏
  20. 简单工厂 工厂方法 抽象工厂

热门文章

  1. 2021 IEEE 编程语言排名
  2. 记录关于利用txt文件划分训练集、测试集与验证集
  3. 服务器中搭建OA系统,oa系统搭建在云服务器上
  4. 伪相关、伪关系与中介变量——统计名词中的迷思
  5. 这些年我要读的书【不断更新中】
  6. FFmpeg的HEVC解码器源码简单分析:解码器主干部分
  7. photoshop进行景深合成
  8. 有哪些微信小程序值得推荐?
  9. 为什么MySQL InnoDB 存储引擎要用B+树做索引,而不用B树?
  10. 解决C语言编译undefined reference to ‘pow’问题