`
JEmql
  • 浏览: 61054 次
  • 性别: Icon_minigender_1
  • 来自: 无锡
社区版块
存档分类
最新评论

硬盘空间管理原理(转)

阅读更多

我们知道硬盘中是由一片片的磁盘组成的,大家可能没有打开过硬盘,没见过它具体是什么样.不过这不要紧.我们只要理解了什么是磁道,扇区和柱面就够了.

在下图中,我们可以看到一圈圈被分成18(假设)等分的同心圆,这些同心圆就是磁道(见图).不过真打开硬盘你可看不到.它实际上是被磁头磁化的同心圆.如图可以说是被放大了的磁盘片.那么扇区就是每一个磁道中被分成若干等分的区域.相邻磁道是有间隔的,这是因为磁化单元太近会产生干扰.一个小软盘有80个磁道,硬盘嘛要远远大于此值,有成千上万的磁道.每个柱面包括512个字节。






那么什么是柱面呢?看下图,我们假设它只有3片.每一片中的磁道数是相等的.从外圈开始,磁道被分成0磁道,1磁道,2磁道......具有相同磁道编号的同心圆组成柱面,那么这柱面就像一个没了底的铁桶.哈哈,这么一说,你也知道了,柱面数就是磁盘上的磁道数.每个磁面都有自己的磁头.也就是说,磁面数等于磁头数.

 


硬盘的容量=柱面数(CYLINDER)*磁头数(HEAD)*扇区数(SECTOR)*512B.这下你也可以计算硬盘的一些参数了.

什么是簇? 

文件系统是操作系统与驱动器之间的接口,当操作系统请求从硬盘里读取一个文件时,会请求相应的文件系统(FAT 16/32/NTFS)打开文件。扇区是磁盘最小的物理存储单元,但由于操作系统无法对数目众多的扇区进行寻址,所以操作系统就将相邻的扇区组合在一起,形成一个簇,然后再对簇进行管理。每个簇可以包括2、4、8、16、32或64个扇区。显然,簇是操作系统所使用的逻辑概念,而非磁盘的物理特性。 

为了更好地管理磁盘空间和更高效地从硬盘读取数据,操作系统规定一个簇中只能放置一个文件的内容,因此文件所占用的空间,只能是簇的整数倍;而如果文件实际大小小于一簇,它也要占一簇的空间。所以,一般情况下文件所占空间要略大于文件的实际大小,只有在少数情况下,即文件的实际大小恰好是簇的整数倍时,文件的实际大小才会与所占空间完全一致。

硬盘的DOS管理结构 

1.磁道,扇区,柱面和磁头数 
  硬盘最基本的组成部分是由坚硬金属材料制成的涂以磁性介质的盘片,不同容量硬盘的盘片数不等。每个盘片有两面,都可记录信息。盘片被分成许多扇形的区域,每个区域叫一个扇区,每个扇区可存储128×2的N次方(N=0.1.2.3)字节信息。在DOS中每扇区是128×2的2次方=512字节,盘片表面上以盘片中心为圆心,不同半径的同心圆称为磁道。硬盘中,不同盘片相同半径的磁道所组成的圆柱称为柱面。磁道与柱面都是表示不同半径的圆,在许多场合,磁道和柱面可以互换使用,我们知道,每个磁盘有两个面,每个面都有一个磁头,习惯用磁头号来区分。扇区,磁道(或柱面)和磁头数构成了硬盘结构的基本参数,帮这些参数可以得到硬盘的容量,基计算公式为: 
存储容量=磁头数×磁道(柱面)数×每道扇区数×每扇区字节数 
要点:(1)硬盘有数个盘片,每盘片两个面,每个面一个磁头 
   (2)盘片被划分为多个扇形区域即扇区 
   (3)同一盘片不同半径的同心圆为磁道 
   (4)不同盘片相同半径构成的圆柱面即柱面 
   (5)公式: 存储容量=磁头数×磁道(柱面)数×每道扇区数×每扇区字节数 
   (6)信息记录可表示为:××磁道(柱面),××磁头,××扇区 

2.簇 
  “簇”是DOS进行分配的最小单位。当创建一个很小的文件时,如是一个字节,则它在磁盘上并不是只占一个字节的空间,而是占有整个一簇。DOS视不同的存储介质(如软盘,硬盘),不同容量的硬盘,簇的大小也不一样。簇的大小可在称为磁盘参数块(BPB)中获取。簇的概念仅适用于数据区。 
本点:(1)“簇”是DOS进行分配的最小单位。 
   (2)不同的存储介质,不同容量的硬盘,不同的DOS版本,簇的大小也不一样。 
   (3)簇的概念仅适用于数据区。 

3.扇区编号定义:绝对扇区与DOS扇区 
  由前面介绍可知,我们可以用柱面/磁头/扇区来唯一定位磁盘上每一个区域,或是说柱面/磁头/扇区与磁盘上每一个扇区有一一对应关系,通常DOS将“柱面/磁头/扇区”这样表示法称为“绝对扇区”表示法。但DOS不能直接使用绝对扇区进行磁盘上的信息管理,而是用所谓“相对扇区”或“DOS扇区”。“相对扇区”只是一个数字,如柱面140,磁头3,扇区4对应的相对扇区号为2757。该数字与绝对扇区“柱面/磁头/扇区”具有一一对应关系。当使用相对扇区编号时,DOS是从柱面0,磁头1,扇区1开始(注:柱面0,磁头0,扇区1没有DOS扇区编号,DOS下不能访问,只能调用BIOS访问),第一个 DOS扇区编号为0,该磁道上剩余的扇区编号为1到16(设每磁道17个扇区),然后是磁头号为2,柱面为0的17个扇区,形成的DOS扇区号从17到 33。直到该柱面的所有磁头。然后再移到柱面1,磁头1,扇区1继续进行DOS扇区的编号,即按扇区号,磁头号,柱面号(磁道号)增长的顺序连续地分配 DOS扇区号。 
公式:记DH--第一个DOS扇区的磁头号 
    DC--第一个DOS扇区的柱面号 
    DS--第一个DOS扇区的扇区号 
    NS--每磁道扇区数 
    NH--磁盘总的磁头数 
   则某扇区(柱面C,磁头H,扇区S)的相对扇区号RS为: 
RS=NH×NS×(C-DC)+NS×(H-DH)+(S-DS) 
   若已知RS,DC,DH,DS,NS和NH则 
S=(RS MOD NS)+DS 
H=((RS DIV NS)MOD NH)+DH 
C=((RS DIV NS)DIV NH)+DC 
要点:(1)以柱面/磁头/扇区表示的为绝对扇区又称物理磁盘地址 
   (2)单一数字表示的为相对扇区或DOS扇区,又称逻辑扇区号 
   (3)相对扇区与绝对扇区的转换公式 

4.DOS磁盘区域的划分 
  格式化好的硬盘,整个磁盘按所记录数据的作用不同可分为主引导记录(MBR:Main Boot Record),Dos引导记录(DBR:Dos Boot Record),文件分配表(FAT:File Assign Table),根目录(BD:Boot Directory)和数据区。前5个重要信息在磁盘的外磁道上,原因是外圈周长总大于内圈周长,也即外圈存储密度要小些,可靠性高些。
要点:(1)整个硬盘可分为MBR,DBR,FAT,BD和数据区。 
   (2)MBR,DBR,FAT,和BD位于磁盘外道。 

5.MBR 
  MBR位于硬盘第一个物理扇区(绝对扇区)柱面0,磁头0,扇区1处。由于DOS是由柱面0,磁头1,扇区1开始,故MBR不属于DOS扇区,DOS不能直接访问。MBR中包含硬盘的主引导程序和硬盘分区表。分区表有4个分区记录区。记录区就是记录有关分区信息的一张表。它从主引导记录偏移地址 01BEH处连续存放,每个分区记录区占16个字节。 
分区表的格式 
分区表项的偏移 意义   占用字节数 
   00 引导指示符 1B 
   01 分区引导记录的磁头号 1B 
   02 分区引导记录的扇区和柱面号 2B 
   04 系统指示符 1B 
   05 分区结束磁头号 1B 
   06 分区结束扇区和柱面号 2B 
   08 分区前面的扇区数 4B 
   0C 分区中总的扇区数 4B 
4个分区中只能有1个活跃分区,即C盘。标志符是80H在分区表的第一个字节处。若是00H则表示非活跃分区。例如: 
80 01 01 00 0B FE 3F 81 3F 00 00 00 C3 DD 1F 00 
00 00 01 82 05 FE BF 0C 02 DE 1F 00 0E 90 61 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
要点:(1)MBR位于硬盘第一个物理扇区柱面0,磁头0,扇区1处。不属于DOS扇区, 
   (2)主引导记录分为硬盘的主引导程序和硬盘分区表。 

6.DBR 
  DBR位于柱面0,磁头1,扇区1,即逻辑扇区0。DBR分为两部分:DOS引导程序和BPB(BIOS参数块)。其中DOS引导程序完成DOS系统文件(IO.SYS,MSDOS.SYS)的定位与装载,而BPB用来描述本DOS分区的磁盘信息,BPB位于DBR偏移0BH处,共13字节。它包含逻辑格式化时使用的参数,可供DOS计算磁盘上的文件分配表,目录区和数据区的起始地址,BPB之后三个字提供物理格式化(低格)时采用的一些参数。引导程序或设备驱动程序根据这些信息将磁盘逻辑地址(DOS扇区号)转换成物理地址(绝对扇区号)。BPB格式 
序号 偏移地址 意义 
1 03H-0AH OEM号 
2 0BH-0CH 每扇区字节数 
3 0DH 每簇扇区数 
4 0EH-0FH 保留扇区数 
5 10H FAT备份数 
6 11H-12H 根目录项数 
7 13H-14H 磁盘总扇区数 
8 15H 描述介质 
9 16H-17H 每FAT扇区数 
10 18H-19H 每磁道扇区数 
11 1AH-1BH 磁头数 
12 1CH-1FH 特殊隐含扇区数 
13 20H-23H 总扇区数 
14 24H-25H 物理驱动器数 
15 26H 扩展引导签证 
16 27H-2AH 卷系列号 
17 2BH-35H 卷标号 
18 36H-3DH 文件系统号 
DOS引导记录公式: 
文件分配表≡保留扇区数 
根目录≡保留扇区数+FAT的个数×每个FAT的扇区数 
数据区≡根目录逻辑扇区号+(32×根目录中目录项数+(每扇区字节数-1))DIV每扇区字节数 
绝对扇区号≡逻辑扇区号+隐含扇区数 
扇区号≡(绝对扇区号MOD每磁道扇区数)+1 
磁头号≡(绝对扇区号DIV每磁道扇区数)MOD磁头数 
磁道号≡(绝对扇区号DIV每磁道扇区数)DIV磁头数 
要点:(1)DBR位于柱面0,磁头1,扇区1,其逻辑扇区号为0 
   (2)DBR包含DOS引导程序和BPB。 
   (3)BPB十分重要,由此可算出逻辑地址与物理地址。 

7.文件分配表 
  文件分配表是DOS文件组织结构的主要组成部分。我们知道DOS进行分配的最基本单位是簇。文件分配表是反映硬盘上所有簇的使用情况,通过查文件分配表可以得知任一簇的使用情况。DOS在给一个文件分配空间时总先扫描FAT,找到第一个可用簇,将该空间分配给文件,并将该簇的簇号填到目录的相应段内。即形成了“簇号链”。FAT就是记录文件簇号的一张表。FAT的头两个域为保留域,对FAT12来说是3个字节,FAT来说是4个字节。其中头一个字节是用来描述介质的,其余字节为FFH 。介质格式与BPB相同。 
第一个字节的8位意义: 
7 6 5 4 3 2 1 0 
└─────-┘ │ │ │┌0非双面 
置1 │ │ └┤ 
│ │ └1双面 
│ │┌0不是8扇区 
│ └┤ 
│ └1是8扇区 
│┌0不是可换的 
└┤ 
└1是可换的 
FAT结构含义 
FAT12 FAT16 意义 
000H 0000H 可用 
FF0H-FF6H FFF0H-FFF6H 保留 
FF7H FFF7H 坏 
FF8H-FFFH FFF8H-FFFFH 文件最后一个簇 
×××H ××××H 文件下一个簇 
对于FAT16,簇号×2作偏移地址,从FAT中取出一字即为FAT中的域。 
逻辑扇区号=数据区起始逻辑扇区号+(簇号-2)×每簇扇区数 
簇号=(逻辑扇区号-数据区起始逻辑扇区号)DIV每簇扇区数+2 
要点:(1)FAT反映硬盘上所有簇的使用情况,它记录了文件在硬盘中具体位置(簇)。 
   (2)文件第一个簇号(在目录表中)和FAT的该文件的簇号串起来形成文件的“簇号链”,恢复被破坏的文件就是根 
据这条链。 
   (3)由簇号可算逻辑扇区号,反之,由逻辑扇区号也可以算出簇号,公式如上。 
   (4)FAT位于DBR之后,其DOS扇区号从1开始。
8.文件目录 
  文件目录是DOS文件组织结构的又一重要组成部分。文件目录分为两类:根目录,子目录。根目录有一个,子目录可以有多个。子目录下还可以有子目录,从而形成“树状”的文件目录结构。子目录其实是一种特殊的文件,DOS为目录项分配32字节。目录项分为三类:文件,子目录(其内容是许多目录项),卷标(只能在根目录,只有一个。目录项中有文件(或子目录,或卷标)的名字,扩展名,属性,生成或最后修改日期,时间,开始簇号,及文件大小。 
目录项的格式 
字节偏移 意义 占字节数 
00H 文件名 8B 
08H 扩展名 3B 
0BH 文件属性 1B 
0CH 保留 10B 
16H 时间 2B 
18H 日期 2B 
1AH 开始簇号 2B 
1CH 文件长度 4B 
目录项文件名区域中第一个字节还有特殊的意义:00H代表未使用 
05H代表实际名为E5H 
EBH代表此文件已被删除 
目录项属性区域的这个字节各个位的意义如下: 7 6 5 4 3 2 1 0 
                      未 修 修 子 卷 系 隐 只 
                      用 改 改 目 标 统 藏 读 
                        标 标 录   属 属 属 
                        志 志     性 性 性 
注意:WINDOWS的长文件名使用了上表中所说的“保留”这片区域。 
要点:(1)文件目录是记录所有文件,子目录名,扩展名属性,建立或删除最后修改日期。文件开始簇号及文件长度的一张 
      登记表. 
   (2)DOS中DIR列出的内容训是根据文件目录表得到的。 
   (3)文件起始簇号填在文件目录中,其余簇都填在FAT中上一簇的位置上。 

9.物理驱动器与逻辑驱动器 
  物理驱动器指实际安装的驱动器。 
  逻辑驱动器是对物理驱动器格式化后产生的。 
要点:同上。 

分享到:
评论

相关推荐

    空闲磁盘存储空间的管理:简单方法

    但因为我们建立了数据结构在一小块区域代表了整个磁盘来管理磁盘的空闲空间, 使用空闲空间只需要通过地址映射寻到相应地址即可, 另一方面注意os的实际的操作,验收时很多同学没有通过只因为只是模拟了空闲空间,而...

    Linux磁盘存储区管理原理与技巧

    在Linux下管理磁盘贮存区算的上一个技巧,很多朋友在这上面常常问我,今天我就把这方面的东西汇总一下,从Linux特有的交换分区的原理开始介绍Linux下如何管理磁盘。

    课程设计---操作系统课程设计之Linux磁盘空间管理.doc

    ******************* 实践教学 ******************* 计算机与通信学院 2010年秋季学期 操作系统 课程设计 题 目:磁盘空间管理模拟实验 专业班级: 08级计算机1班 姓 名: 学 号: 指导教师: ****** 成 绩: 目 录 ...

    Linux系统磁盘存储区管理原理技巧详解

    Linux中的交换空间(Swap space)在物理内存(RAM)被充满时被使用。本文介绍了添加交换空间的技巧和一些常用的命令。

    WINDOWS 内部原理(十)驱动和硬件的管理

    本课程将全面介绍Windows内部内存管理机制,包括寻址原理、进程内存空间分布、核心态用户态内存管理原理以及虚拟内存管理原理等。同时将讨论应用程序中内存的使用问题,内存泄露的发生以及排除方法。 深入研究...

    磁盘管理培训视频.rar

    02机械硬盘读取数据原理【了解】mp4 03机械硬盘写数据原理【了解】mp4 04硬盘的分区方案简单介绍t了解】mp4 05硬盘的接口类型介绍【了解】mp4 06fdsk工具对硬盘分区mp4 07磁盘分区过程+挂裁使用mp4 08分区总结mp4: ...

    还原精灵与还原卡的工作原理.pdf

    由于 INT13 被接管,当还原精灵发现是写操作,如果没有激活管理身份 ,便将原先数据目的地址重新指向它自己定义的一段连续的空磁盘空间, 并将先前背份的第二份 FAT中被修改的相关数据指向这片空间。 当我们读取数据...

    SSD分层原理.pdf

    SSD分层原理是指将热数据存储在SSD中,冷数据存储在机械磁盘中,以解决读缓存的读性能不稳定、写操作需要同时写写缓存和更新读缓存、写缓存使用oplog方式记录写操作、写缓存中的数据回写入机械磁盘后读性能下降等...

    WINDOWS 内部原理 (八)

    本课程将全面介绍Windows内部内存管理机制,包括寻址原理、进程内存空间分布、核心态用户态内存管理原理以及虚拟内存管理原理等。同时将讨论应用程序中内存的使用问题,内存泄露的发生以及排除方法。 深入研究...

    windows 内部原理(一)

    本课程将全面介绍Windows内部内存管理机制,包括寻址原理、进程内存空间分布、核心态用户态内存管理原理以及虚拟内存管理原理等。同时将讨论应用程序中内存的使用问题,内存泄露的发生以及排除方法。 深入研究...

    WINDOWS 内部原理(九)

    本课程将全面介绍Windows内部内存管理机制,包括寻址原理、进程内存空间分布、核心态用户态内存管理原理以及虚拟内存管理原理等。同时将讨论应用程序中内存的使用问题,内存泄露的发生以及排除方法。 深入研究...

    构建最高可用Oracle数据库系统 Oracle 11gR2 RAC管理、维护与性能优化

    10.1 Clusterware磁盘文件管理 10.1.1管理表决磁盘文件 10.1.2管理OCR文件 10.1.3表决磁盘和OCR的恢复案例 10.1.4管理OLR文件 10.1.5重建表决磁盘和OCR文件 10.1.6重新配置Grid Infrastructure 10.2 Grid ...

    多用户多级目录文件系统的实现

    1.在内存中开辟一个虚拟磁盘空间作为文件存储器,在其上实现一个多用户多目录的文件系统。 2.文件物理结构可采用显式链接或其他方法。 3.磁盘空闲空间的管理可选择位示图或其他方法。如果采用位示图来管理文件...

    Windows内部原理(十一):存储和文件系统

    本课程将全面介绍Windows内部内存管理机制,包括寻址原理、进程内存空间分布、核心态用户态内存管理原理以及虚拟内存管理原理等。同时将讨论应用程序中内存的使用问题,内存泄露的发生以及排除方法。 深入研究...

    Windows Server 2012 系统管理视频课程csdn.txt

    第10章磁盘管理3小时15分钟19节 10-1硬盘物理结构07:51 10-2主分区和逻辑分区12:10 10-3计算机启动过程14:53 10-4操作系统启动过程15:28 10-5基本磁盘管理11:42 10-6管理盘符和路径08:46 10-7介绍简单卷和条带卷08:...

    操作系统精髓与设计原理答案

    输入/输出设备,由控制单元管理。 1.2、 定义处理器寄存器的两种主要类别。 答:用户可见寄存器:优先使用这些寄存器,可以使机器语言或者汇编语言的程序员减少对主存储器的访问次数。对高级语言而言,由优化编译器...

    WINDOWS 内部原理 (三)

    本课程将全面介绍Windows内部内存管理机制,包括寻址原理、进程内存空间分布、核心态用户态内存管理原理以及虚拟内存管理原理等。同时将讨论应用程序中内存的使用问题,内存泄露的发生以及排除方法。 深入研究...

    WINDOWS 内部原理(四)

    本课程将全面介绍Windows内部内存管理机制,包括寻址原理、进程内存空间分布、核心态用户态内存管理原理以及虚拟内存管理原理等。同时将讨论应用程序中内存的使用问题,内存泄露的发生以及排除方法。 深入研究...

Global site tag (gtag.js) - Google Analytics