① 在磁盘分区中,文件为什么不是连续地保存在磁盘连续的簇中 请高手详细分析硬盘存储数据时每个磁道的扇区
硬盘存储原理类似光盘,硬盘最小的记录单位是 比特 bytes 。
二进制数0101就是4比特。而一个字节需要用8个bytes来记录。
1T=1024G,1G=1024M,1M=1024K,1K=1024B,一字节是1B。
注意区别大B和小b。
如图所示 因为磁盘是每分钟7200转(3.5寸,常规盘)
假如我们需要写入 A B C D 4个字母于硬盘 磁头需要响应时间
所以如果在 1区最外圈磁道写A 1区的左侧最外圈磁道继续B 则磁盘需要旋转一周之后写入 如果隔开2个扇形区域 在第三个扇形区域里写B的话 磁盘旋转一周即可写入A B C 3个字母
按你说的需要转3圈~ 你觉得怎么写快呢~~~?
!~~~~无分题我答这么认真你不给我追加点都对不起我~~~!
有空去书店找本磁盘原理多看看。。。。
扇区是磁盘最小的物理存储单元,但由于操作系统无法对数目众多的扇区进行寻址,所以操作系统就将相邻的扇区组合在一起,形成一个簇,然后再对簇进行管理。每个簇可以包括2、4、8、16、32或64个扇区。显然,簇是操作系统所使用的逻辑概念,而非磁盘的物理特性。
如果一个扇区512字节的话其实他实质上多于512个字节
磁盘格式化时,格式化程序在每个扇区的数据之前和之后创建ID区域,磁盘控制器使用这些区域进行扇区编号,以及标识每个扇区的起始和终止。
在每个扇区里,都有一个前缀部分或头部来标识扇区的开始并包含扇区号,有一个后缀部分或尾部包含校验和(有助于保证数据的完整性)。
扇区的头部和尾部与操作系统无关,也与文件系统和文件无关。除了头部和尾部,在扇区内部、每条磁道之间、每条磁道上的扇区之间还有间隙。但是,这些间隙里都不含有可用的数据空间,它们是在低级格式化过程中当记录被暂时关闭是创建的。
如此分析,则在技术上而言每个磁盘扇区的大小为512字节是不对的!每个扇区确实允许存储512个字节的数据,但是,数据域只是扇区的一部分而已。
由于扇区头部和尾部需要的实际字节数随驱动器的不同而不同,但通常而言,每个扇区实际上占用571个字节,这是个典型值。
所以你的理想状态是不存在于硬盘这种以速度为最高目标的设备中~~~
② 对于一个完整的文件而言,其存放在磁盘上的物理位置是否连续
这里以FAT文件系统为例
文件配置表(英文:File Allocation Table,首字母缩略字:FAT)是一种由微软发明的并带有部分专利[1]的文件系统,供MS-DOS使用,也是非NT内核的微软窗口使用的文件系统。
FAT文件系统考虑当时计算机效能有限,所以未被复杂化,因而被几乎所有个人计算机的操作系统支持。这特性使它成为理想的软盘和记忆卡文件系统,也适合用作不同操作系统中的数据交流。
但FAT有一个严重的缺点:当文件被删除并且在同一位置被写入新数据,他们的片段通常是分散的,减慢了读写速度。磁盘碎片重整是一种解决方法,但必须经常重组来保持FAT文件系统的效率。
主磁盘结构
一个FAT文件系统包括四个不同的部分。
保留扇区,位于最开始的位置。第一个保留扇区是引导区(分区启动记录)。它包括一个称为基本输入输出参数块的区域(包括一些基本的文件系统信息尤其是它的类型和其它指向其它扇区的指针),通常包括操作系统的启动调用代码。保留扇区的总数记录在引导扇区中的一个参数中。引导扇区中的重要信息可以被DOS和OS/2中称为驱动器参数块的操作系统结构访问。
FAT区域。它包含有两份文件分配表,这是出于系统冗余考虑,尽管它很少使用,即使是磁盘修复工具也很少使用它。它是分区信息的映射表,指示簇是如何存储的。
根目录区域。它是在根目录中存储文件和目录信息的目录表。在FAT32下它可以存在分区中的任何位置,但是在早期的版本中它永远紧随FAT区域之后。
数据区域。这是实际的文件和目录数据存储的区域,它占据了分区的绝大部分。通过简单地在FAT中添加文件链接的个数可以任意增加文件大小和子目录个数(只要有空簇存在)。然而需要注意的是每个簇只能被一个文件占有,这样的话如果在32KB大小的簇中有一个1KB大小的文件,那么31KB的空间就浪费掉了。 例外情况
Apricot PC的MS-DOS所用FAT的实现有一个不同的启动扇区组织以使用计算机与IBM不兼容的基本输入输出系统。跳转指令和OEM名被省略并且MS-DOS文件系统参数位于0x50(在标准扇区中偏移为0x0B - 0x17)。后来的Apricot MS-DOS版本除了Apricot特有的引导区之外也具有了读写标准启动分区的能力。
BBC Master 512 上的DOS Plus根本就不使用传统的引导区。数据磁盘省略了引导区并且以一个单份的FAT开始(FAT的第一个字节用来确定磁盘容量),启动磁盘使用一个包含启动调用程序的小型ADFS文件系统,后面跟随一个单份的FAT。
文件分配表
一个分区分成同等大小的簇,也就是连续空间的小块。簇的大小随着FAT文件系统的类型以及分区大小而不同,典型的簇大小介于2KB到32KB之间。每个文件根据它的大小可能占有一个或者多个簇;这样,一个文件就由这些这些(称为单链表)簇链所表示。然而,这些链并不一定一个接着一个在磁盘上存储,它们经常是在整个数据区域零散的储存。
文件分配表(FAT)是映射到分区每个簇的条目列表。每个条目记录下面五种信息中的一种。
链中下一个簇的地址
一个特殊的文件结束符(EOF)符号指示链的结束
一个特殊的符号标示坏簇
一个特殊的符号标示保留簇
0来表示空闲簇
每个版本的FAT文件系统使用不同大小的FAT条目。这个大小已经由名字表示出来,例如FAT16文件系统的每个条目使用16位表示,32位文件系统使用32位表示。这个不同意味着FAT32系统的文件分配表能比FAT16映射更多的簇,它也允许FAT32有更大的分区大小。这也使得FAT32比FAT16更能有效地利用磁盘空间,因为每个驱动器能够寻址更小的簇,这也就意味着更少的空间浪费。
目录表
目录表是一个表示目录的特殊类型文件(现今通常称为文件夹)。它里面保存的每个文件或目录使用表中的32位条目表示。每个条目记录名字、扩展名、属性(档案、目录、隐藏、只读、系统和卷)、创建的日期和时间、文件/目录数据第一个簇的地址,最后是文件/目录的大小。
除了FAT12和FAT16文件系统中的根目录表占据特殊的根目录区域位置之外,所有其它的目录表都存在数据区域。
合法的DOS文件名包括下面一些字符:
大写字母A-Z
数字0-9
空格(尽管结尾的空格被作为填充而不是文件名的一部分)
! # $ % & ( ) - @ ^ _ ` { } ~ '
数值 128-255
DOS文件名位于OEM字符集。
长文件名(LFN)使用一个技巧存储在FAT文件系统上——在目录表中添加假的条目。这些条目使用一个普通文件无法使用的卷标属性标识,普通文件无法使用是由于它们被大多数旧的MS-DOS程序忽略。很显然,一个只包含卷标的目录被当作空卷,这样就允许删除;使用长文件名创建的文件在从普通的DOS删除就会发生这样的情形。
校验和也允许检验长文件名是否与8.3文件名匹配;当一个文件删除之后使用DOS在同一个目录位置重新创建之后就会出现不匹配现象。校验和使用下面的算法计算。(注意pFcbName是指向如正常目录条目中所显示的文件名的指针,例如前八个字符是文件名,最后三个是扩展名。点是隐含的。文件名中没有使用的空间将使用空格(ASCII 0x20)补齐。例如,“Readme.txt”将记录为"README TXT"。
③ 为什么磁盘存放文件不是连续的而是间隔的有图
这是基于磁盘的读写机制:随机读写。
因为磁盘是有转动的盘片和可移动的磁头构成的,假设采用了连续读写,那么如果每次写入新的文件都要等磁头移动到上次写入结束的地方,这需要花费一定的时间,而且考虑到文件被删除多余出来的簇,比如有三个文件,第一个文件占用0~99号簇,第二个占用了100~150,第三个151~200,如果我删除第二个文件,就造成第一、第三个文件中空出50个簇,按照连续写入的原则要把第3个文件先移动到第一个文件之后再写入第四个文件,这样就更花时间了。由于早期的磁盘(硬盘、软盘)性能比较低,所以为了提高性能而采用了随机读写的方式。
④ 文件时连续存储在硬盘上的吗还是存储的分区有可能相隔很远啊
文件不是连续存储在硬盘上的,
同一分区位置也不是连续的。
甚至同一分区不在同一个盘片上。
如连续存储,硬盘速度读写速度会更慢
⑤ 关于硬盘存储的原理(顺序)
数据以扇区为单位存储,扇区可以是连续的,也可以是单独的.在文件索引里会记录这个文件所在的所有扇区,当读时只要按顺序读取这些扇区就行了,当文件过于分散时就是常说的磁盘碎片.扇区的大小默认是4KB.也可以在格式化时自己指定.
⑥ 一个文件在硬盘中的存储是连续还是分离,如果分离,每断的大小是相等还是不等,没个文件的断是相等的吗
数据在硬盘中的存储开始基本上都是连续的,随着使用的增加,不断的读写硬盘上数据就很分散了,也就是所谓的磁盘碎片,如果你整理过碎片就会看到。大小是不等的。文件一般不可能全部都写入内存的,特别是大文件。
⑦ 硬盘中存储的同一个文件,空间上不一定是连续的吧
不一定是连续的
⑧ 硬盘中存储的同一个文件,空间上不一定是连续的吧
是的.特别是WORD
EXCEL
PSD这种多次追加保存的文件,文件不连续的存放硬盘上,我们一般叫它做文件碎片,文件碎片过多会影响读取速度,所以我们要定期进行文件碎片整理.