如何实现存储空间的分配和回收取决于对空闲块的管理方法。 下面介绍几种常用的管理方法:

一  位示图法

注意,记住这几句话:每个盘面里面有扇区, 扇区里有磁盘组,

                                    磁盘组里面有柱面, 柱面里面有磁道; 

由于磁盘被分块后,每一块的大小都是一样的,所以也可仿照 页式存储空间的管理方法,对每个磁盘可以用一张位示图来指示磁盘空间的使用情况。 一个磁盘的分块确定后,根据总块数决定位示图由多少个字组成, 位示图中的每一位与一个磁盘块对应,某位为 "1" 状态表示相应块已被占用,为 “0” 状态表示所对应的块是空闲块。

假定一个盘组共有 100 个柱面, 编号为0~99。 每个柱面上有 8个磁道, 编号为0~7。 每个盘面分成4个扇区, 编号为0~3, 则整个磁盘空间共有4*8*100 = 3200个存储块。 如果用字长为32位的字来构造位示图, 共需100个字, 如图5-16所示。

如果磁盘块的块号按柱面顺序和盘面顺序来编排,则第0号柱面第0盘面上的块号是0,1,2,3;第0号柱面第1盘面上的块号是4,5,6,7。依此计算, 第0号柱面上共有32块, 编号为0~31, 第1号柱面上的块号就为32~64, 于是位示图中, 第i个字的第j位对应的块号为:

块号 = i * 32+j,  即  块号 = 字号 * 32 + 位号

当有文件要存放到磁盘上是,根据需要的块数查位示图中为“0” 的位, 表示对应的那些存储块空闲, 可供使用。 一方面在位示图中查到的位上置占用标志“1”, 另一方面根据查到的位, 先计算出对应的块号, 然后确定这些可用的存储块在哪个柱面上,对应哪个扇区,属于哪个磁头, 按图5-16的示例,如果假定 M=[块号/32],  N=块号 mod 32,  那么由块号可计算出:

柱面号 = M

磁头号=[N/4]

扇区号=N mod 4

注意: [] 表示取N被4除后商的整数部分,   mod 表示取余

(后面出现[]类似含义,但不一定除4)

于是,文件信息就可按确定的地址存放到磁盘块上。

当要删去某个文件, 归还存储空间时,可以根据归还块的柱面号、磁头号和扇区号计算出相应的块号, 由块号再推算出它在位示图中的对应位。把这一位的占用标志 “1”清成“0”, 表示该块已成了空闲块。 仍以图5-16为例,根据归还块所在的柱面号、磁头号和扇区号, 计算对应位示图中的字号和位号:

块号=柱面号 * 32 + 磁头号 * 4 + 扇区号

字号=[块号/32]

位号=块号 mod 32

注意: 以上计算式都是以图5-16为例进行的。 在实际应用时,应根据磁盘的结构确定位示图的构造,以及每个柱面上的块数和每个盘面上的扇区数,列出相应的换算公式。确定空闲块地址的通用公式为:

块号=字号*字长 + 位号

柱面号=[块号/柱面上的块数]

磁头号=[(块号 mod 柱面上的块数)/ 盘面上的扇区数]

扇区号=(块号 mod 柱面上的块数) mod 盘面上的扇区数

归还一块时, 寻找位示图中位置的通用公式为:

块号=柱面号*柱面上的块数+磁头号*盘面上的扇区数+扇区号

字号=[块号/字长]

位号=块号 mod 字长

二  空闲块表法

系统为每个磁盘建立一长空闲块表,表中每个登记项记录一组连续空闲块的首块号和块数。 空闲块数为 “0” 的登记项为无效登记项, 如表5-4所示

这种管理方式适合采用顺序结构的文件。存储文件时从空闲块表中找一组连续的空闲块,删除文件时把归还的一组连续登记到空闲块表中。

空闲块的分配和回收算法类似主存储器的可变分区管理方式中采用的最先适应、最优适应和最坏适应算法。

操作系统_第五章文件管理_磁盘存储空间的管理相关推荐

  1. 操作系统:第四章 文件管理2 - 磁盘管理,磁盘调度算法

    本文已收录至 Github(MD-Notes),若博客中有图片打不开,可以来我的 Github 仓库:https://github.com/HanquanHq/MD-Notes,涵盖了互联网大厂面试必 ...

  2. ArcGIS for Desktop入门教程_第五章_ArcCatalog使用 - ArcGIS知乎-新一代ArcGIS问答社区

    原文:ArcGIS for Desktop入门教程_第五章_ArcCatalog使用 - ArcGIS知乎-新一代ArcGIS问答社区 1 ArcCatalog使用 1.1 GIS数据 地理信息系统, ...

  3. 微型计算机滑动平均值滤波器方程,wx05_微型计算机控制技术_第五章.ppt

    wx05_微型计算机控制技术_第五章,微型计算机控制技术,微型计算机接口技术,微型计算机技术,微型计算机及接口技术,微型计算机技术及应用,微型计算机与接口技术,微型计算机控制系统,微型计算机技术指标, ...

  4. java程序设计基础_陈国君版第五版_第五章习题

    java程序设计基础_陈国君版第五版_第五章习题 import java.util.Scanner; public class Main5_1 {public static void main(Str ...

  5. java程序设计基础_陈国君版第五版_第五章例题

    java程序设计基础_陈国君版第五版_第五章例题 public class Main5_1 {public static void main(String[] args){int i;int[] a; ...

  6. 计算机操作系统学习(五)文件管理

    目录 学习建议: 基本内容: 一.文件系统的概念: 二.文件的概念: 三.文件的分类: 1.按文件用途分类 2.按文件属性分类 3.根据文件的使用情况 4.根据文件在外存上的组织形式 5.根据文件内的 ...

  7. linux 挂载硬盘_第七章:走进Linux世界——储存管理1

    一.基本分区 1)磁盘介绍 名词:磁盘/硬盘/disk是同一个东东,不同于内存的是容量比较大. 类型:机械硬盘即是传统普通硬盘,主要由:盘片,磁头,盘片转轴及控制电机,磁头控制器,数据转换器,接口,缓 ...

  8. 操作系统丨(五)文件管理

    同步发布:Hedon丨操作系统丨(五)文件管理 (排版更佳!) 1. 文件的逻辑结构 1.1 逻辑结构的文件类型 有结构文件 文件内容由定长记录和可变长记录组成. 定长记录记录文件格式.文件描述等结构 ...

  9. (五)磁盘存储空间的管理

    为什么80%的码农都做不了架构师?>>>    主要有: 位示图 和内存的位示差不多 空闲块表 和可变内存管理差不多 空闲块链 主要是UNIX成组链接法的设计与实现 UNIX系统文件 ...

最新文章

  1. Linux系统下常见性能分析工具的使用
  2. 奇迹暖暖登录一直显示服务器满,奇迹暖暖无法登录解决办法
  3. python获取字典的值_Python:如何从pandas系列中获取字典中的值
  4. 让 UV4 支持STC 单片机
  5. c语言密码锁程序,急求C语言电子密码锁程序
  6. visual设计的界面发布到iis上显示不一样_享声 SOUNDAWARE 发布可“全民HIFI“的网播一体机 A1...
  7. 高等组合学笔记(五): 加括号问题,集合的分类问题,多项式恒等式的组合证明
  8. 现在php内存使用,php 内存使用信息代码
  9. 深入浅出,教你一步步实现数据分析入门、进阶
  10. SaaS 正在 Rails 化
  11. python中定义字典数据类型使用什么符号_python数据类型之字典类型-dict
  12. unity粒子特效附上贴图后播放动画
  13. Cortex-M3 (NXP LPC1788)之外部中断操作
  14. SQLSERVER2012备份日志报错:”读取失败: 23(数据错误(循环冗余检查)
  15. 数据中台建设(四):企业构建数据中台评估
  16. java隐藏手机号中间四位和隐藏邮箱
  17. linux打包文件恢复,修复损坏的gz或tar.gz压缩文件之原理篇
  18. vscode下载安装
  19. 转文:财经书不是阿拉丁神灯
  20. android沉浸式的实现

热门文章

  1. 抓rtmp推流地址_如何获取第三方推流地址?
  2. ORA-00257 错误处理
  3. 小飞鱼通达二开 解决通达OA数据库服务不能启动的问题(图文)
  4. 契约锁android代码,契约锁怎么签合同
  5. 【历史上的今天】2 月 19 日:Hacker News 上线;Adob​​e Photoshop 诞生;DVD 退出历史舞台
  6. ​IBM、Google、Oracle三巨头的公有云之殇(下)
  7. android 视频恢复软件,手机视频恢复软件
  8. WorkPlus移动平台推动医院智慧信息化建设
  9. 美肤宝母公司环亚冲刺深交所:年营收超20亿 为胡兴国家族企业
  10. 【300+精选大厂面试题持续分享】大数据运维尖刀面试题专栏(十四)