⑴ 对于一个完整的文件而言,其存放在磁盘上的物理位置是否连续
这里以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"。
⑵ 某盘中某路径下的同一个文件夹,存放文件是否总对应硬盘中某区域,而不会放到其他位置
当然不会。重新放入的内容,只能确定是在D盘的空间范围内,但是具体地址,完全是由操作系统决定的,其存放位置完全是动态分配的。
实际上,如果你在硬盘上不停的复制,删除,在复制,再删除同样的一个文件,这个文件放置的位置也是动态变化的。
⑶ 电脑上的文件是否应该分散的放入各个磁盘 电脑高手帮忙啊
分散保存到整个磁盘的不同地方,而不是连续地保存在磁盘连续的簇中形成的。 当应用程序所需的物理内存不足时,一般操作系统会在硬盘中产生临时交换文件,用该文件所占用的硬盘空间虚拟成内存。虚拟内存管理程序会对硬盘频繁读写,产生大量的碎片,这是产生硬盘碎片的主要原因。 其他如IE浏览器浏览信息时生成的临时文件或临时文件目录的设置也会造成系统中形成大量的碎片。
磁盘碎片是怎么产生的?
又因为在文件操作过程中,Windows系统可能会调用虚拟内存来同步管理程序,这样就会导致各个程序对硬盘频繁读写,从而产生磁盘碎片。
还有一种情况就是当中间的一个扇区内容被删除后,新写入一个较小的文件,这样在这个文件两边就会出现一些空间,这时候再写入一个文件,两段空间的任意一部分都不能容纳该文件,这时候就需要将文件分割成两个部分,碎片再次产生了。
最常见的就是下载电影之类的大文件,这期间大家一半都会处理一下其它事情,而下载下来的电影文件被迫分割成若干个碎片存储于硬盘中。因此下载是产生碎片的一个重要源头。还有就是经常删除、添加文件,这时候如果文件空间不够大,就会产生大量的磁盘碎片,随着文件的删改频繁,这种情况会日益严重。
虽然说磁盘碎片对于正常工作影响并不大,但是会显着降低硬盘的运行速度,这主要是硬盘读取文件需要在多个碎片之间跳转,增加了等待盘片旋转到指定扇区的潜伏期和磁头切换磁道所需的寻道时间。
电脑使用久了,磁盘上保存了大量的文件,这些文件并非保存在一个连续的磁盘空间上,而是把一个文件分散的放在许多地方,这些零散的文件被称作“磁盘碎片”,这些碎片会降低整个windows的性能,每次读写文件磁盘触头都要来回移动,浪费了时间。于是windows中都提供一个整理磁盘碎片的程序。
知道了磁盘碎片的产生原因之后,我们还有必要了解一下程序运行时磁盘的读写动作。一般运行一个程序时,磁盘驱动器的磁头所做的工作是先搜索该程序运行必需的文件,然后读取数据,最后做读后处理——将数据传送至磁盘高速缓存(Cache)和内存中。搜索时间在硬盘性能指标中被称为平均寻道时间(Average seek time),单位为毫秒(ms),目前主流硬盘的平均寻道时间小于9.5ms。如果能将应用程序的相关文件放在磁盘的连续空间内,磁头搜索的时间将会减少很多。读取时也是如此,磁盘读取位于磁头下方扇区的数据所需时间仅为将磁头移到另一地点再读取相同数据所需时间的五分之一。读盘时,系统先检查数据是否在高速缓存中,如果有则直接读取;如果没有则访问磁盘,也就是读盘。当需要多次读取同一份数据时,Cache的作用很大,但对于第一次读取某个文件,Cache就无能为力了。于是搜索时间和读取时间在很大程度上影响着程序执行的效率。
Windows系统并不能自动将每个文件按照最大程度减少磁头搜索时间的原则放到磁盘上最合适的位置。于是Microsoft在Windows中加入了“Disk Defragment”(磁盘碎片整理程序),并提供了“TaskMonitor”(任务监视器)来跟踪程序启动过程中的磁盘活动,以利于“Disk Defragment”能够更有效地工作。“TaskMonitor”是随Windows启动而自动运行的(当然要在“启动”中选中“TaskMonitor”)。当加载某个应用程序时,它通过监视磁盘的访问动作来了解该程序启动时搜索和调用的文件,对所需文件进行定位,并将监视结果储存在“C:\Windows\Applog”隐藏目录中。这个目录中的大多数文件以“.lgx”为扩展名,其中“lg”代表记录文件(Log File),“x”表示盘符,如D盘程序就以“.lgd”为扩展名;记录文件的文件名为TaskMonitor所监视的应用程序的文件名,如E盘上的WinZip程序记为“Winzip32.lge”。用户进行磁盘碎片整理时,该程序会根据Applog目录中的信息把应用程序的相关文件移动到磁盘上的连续空间内。
TaskMonitor仅在程序加载过程中对文件信息进行搜索,并且根据程序的加载频率调整优化的顺序,也就是说使用次数最多的软件可获得最多的关照。Applog目录中的APPLOG.ind文件就记录了应用程序运行的次数。用户需要将常用软件多次启动,接受TaskMonitor的监视和记录,再使用Disk Defragment进行整理,才能真正实现程序启动速度的提高。但如果用户中途改变了常用软件,比如以前常用WinZip,现在改用ZipMagic,那么在相当长的时间内Disk Defragment还是先把与WinZip相关的文件移到连续的空间内,而不是ZipMagic,除非ZipMagic的加载次数超过WinZip。要解决这个问题,用户可将“Winzip32.lgx”文件删除,记录文件不存在了,Disk Defragment也就不会去优化它了。
实际上,定期整理硬盘应该是毫无疑问的。如果说硬盘碎片整理真的会损害硬盘的话,那也将是在对硬盘进行近乎天文数字般次数的整理之后。
硬盘使用的时间长了,文件的存放位置就会变得支离破碎——文件内容将会散布在硬盘的不同位置上。这些“碎片文件”的存在会降低硬盘的工作效率,还会增加数据丢失和数据损坏的可能性。碎片整理程序把这些碎片收集在一起,并把它们作为一个连续的整体存放在硬盘上。Windows自带有这样的程序:磁盘碎片整理程序(DiskDefragmenter),但在工具软件NortonUtilities和Nuts&Bolts中有更好的此类程序。
然而,碎片整理对硬盘里的运转部件来说的确是一项不小的工作。如果硬盘已经到了它生命的最后阶段,碎片整理的确有可能是一种自杀行为。但在这种情况下,即使您不进行碎片整理,硬盘也会很快崩溃的。
实际上在大多数情况下,定期的硬盘碎片整理减少了硬盘的磨损。 至于多久整理一次要看你的读写频繁度了 如果经常下载、删除什么的
建议1-2个月一次 磁盘碎片整理时,请关闭屏幕保护程序,并且不要在电脑上干其他的事情,如听音乐,玩游戏等.让电脑只运行磁盘碎片整理程序,这样会快些
同时建议不要很频繁的整理硬盘,因为那样的话硬盘不停的进行读写,这样可是影响硬盘的使用寿命的,推荐三四个月整理一次.
我们在整理硬盘前一般都要对它清理垃圾信息,检查有无错误,最后才能谈到碎片的整理和优化。因此,我们在整理硬盘前,应该首先做好这些工作:1、应该把硬盘中的垃圾文件和垃圾信息清理干净。系统工作一段时间后,垃圾文件就会非常之多,有程序安装时产生的临时文件、上网时留下的缓冲文件、删除软件时剩下的DLL文件或强行关机时产生的错误文件等,建议“菜鸟”朋友还是使用微软的“磁盘清理程序”代劳,“老鸟”当然可以使用一些功能更强的软件或手工清理。2、检查并修复硬盘中的错误。首选的仍然是微软的“磁盘扫描程序”,虽然它的速度实在不怎么样,但只要你有足够的耐心,经过这个程序对磁盘完整而详细的扫描后,相信系统中的绝大多数错误已经被修复了。当然你也可以尝试一下其他工具,如扁鹊神医“Norton WinDoctor”,它的速度可比Windows中的“磁盘扫描工具”快多了。
在Windows里,用户可以从“开始”菜单中选择“程序/附件/系统工具/磁盘碎片整理程序”,弹出选择驱动器窗口,选择要整理的分区,然后点击[确定]即可开始整理,但此方法碎片整理过程非常耗时,一般2GB左右的分区需要1个小时以上,所以建议读者:1、整理磁盘碎片的时候,要关闭其他所有的应用程序,包括屏幕保护程序,最好将虚拟内存的大小设置为固定值。不要对磁盘进行读写操作,一旦Disk Defragment发现磁盘的文件有改变,它将重新开始整理。 2、整理磁盘碎片的频率要控制合适,过于频繁的整理也会缩短磁盘的寿命。一般经常读写的磁盘分区一周整理一次。
命令参数在 DOS时代可以说是一项基本的技能,很多程序都要靠命令参数来启动,而到了图形化界面时代,已很难再见到其踪迹,但它却实实在在地存在着,而且发挥着不小的作用。如很多 Windows游戏的设置程序就是用 /Setup 参数来实现的。通常我们不会太留意某些程序的命令参数,但他们往往包含着某些隐秘的功能,如果运用适当对你很有帮助。 Windows 中的磁盘扫描程序就包含着许多命令参数,你可以在MS_DOS方式下或在“运行”对话框中实现,如果需要经常用命令参数,还可以建立一个快捷方式。 /SILENT 启动磁盘扫描程序不允许作任何选项设置和高级设置。 /A 检查所有的本地硬盘 /N 自动启动和退出磁盘扫描程序 /P 防止磁盘扫描程序修复所发现的错误 X: X 表示指定要检查的驱动器号(不需要 / 的命令参数) 举例: 1)检查驱动器 E 并自动启动和退出磁盘扫描程序 SCANDSKW E: /N 2)检查所有的硬盘并防止磁盘扫描程序修复发现的任何错误 SCANDSKW /A /P
当运行了其他磁盘文件整理程序(如WinAlign)后,它可能扰乱了TaskMon记录的数据,若此时直接进行碎片整理,可能会得不偿失,达不到优化性能的目的。解决的办法是在进行碎片整理之前,多次运行Windows和自己最常用的程序,这样可以让TaskMon重新收集到正确的统计数据,指导进行磁盘优化。
最后,当启动Windows98的磁盘碎片整理程序时,可能会诧异界面中的Intel标志。为什么处理器的生产厂商会参与编写这个优化磁盘的软件呢?这是因为硬盘寻道时间的缓慢会导致系统整体性能的下降,这样会有损CPU超级计算能力的形象,让人误以为是CPU性能的低下。Microsoft的一个测试表明,在奔腾233的机器上启动Windows仅仅比奔腾150快3%,也就是说,快速的CPU并不能克服磁盘延迟的缺点。于是,在共同利益的驱动下,Intel和Microsoft联合开发了Windows98的磁盘碎片整理程序,用来消除硬盘寻道缓慢的瓶颈。
每次需要整理磁盘碎片时都需要选择“开始”*“程序”*“附件”*“系统工具”*“磁盘碎片整理程序”,然后再指定驱动器,很麻烦。能否有简单的方法完成这一系列操作?
方法一:
在Windows资源管理器中,选择“查看”*“文件夹选项”(或“查看”*“选项”),选择“文件类型”选项卡,并在“已注册的文件类型”列表中选择“驱动器”。单击“编辑”按钮,打开“编辑文件类型”对话框,选择“新建”,在“操作”栏中,键入“快速整理磁盘碎片”。在“用于执行操作的应用程序”栏中键入“C:\Windows\defrag.exe "%1" \noprompt”。 单击“确定”,然后“关闭”,回到“文件类型”选项卡,然后单击“关闭”。现在,打开“我的电脑”,右键单击想要整理磁盘碎片的驱动器,在弹出的快捷菜单中选择“快速整理磁盘碎片”即可。
方法二:
使用第三方软件进行碎片整理 例如Windows优化大师或者O&O Defrag,个人推荐使用O&O Defrag.原因是在整理碎片的过程中笔者遇到过无法将碎片整理的情况,也只能将磁盘进行格式化. 为避免出现类似情况,最好的办法就是使用O&O Defrag,对目标盘选择"整理/合并未使用空间"这项就可以对你无法用方法一清理的碎片进行很好的清理. 使用Windows优化大师的好处在于你可以对磁盘的错误进行恢复,不过缺点也是有时无法将很难清理的碎片进行处理.
编辑本段用Ghost来为硬盘进行磁盘碎片整理
原理
此方法的原理是:使用备份再还原,实现数据块恢复到初始时的连续状态,就好比桌面打乱的版,我们直接划拉到一起重新洗牌,而不是一张一张地捡起。
一、 使用ghost进行系统备份
首先运行ghost软件,选择要进行磁盘整理的分区,选择卷标windows XP的分区,然后点击OK,选择备份文件的存放路径,在filename栏中输入备份的文件名,然后点击save保存。弹出选择压缩比的对话框,选择fast,开始备份系统。
二、 使用ghost系统还原系统
备份完系统后,再依次选择Local/partition/From image。选择刚才备份的back.gho文件,然后弹出select source partitiong from image file,点击LK,选择要还原的分区,也就是刚才卷标为xp的分区,确认,执行还原任务。 还原完后重启计算机,打开“磁盘磁片整理程序”选择刚才还原的分区,单击分析按钮,看看是不是数据块全是连续的了?这个速度比传统的要快上千倍吧。
⑷ 文件作修改是不是在磁盘上的原位置
在保存前可能会放到其它缓存区域;
保存时内容覆盖到当前区域;
⑸ 同一个硬盘不同分区之间移动文件,文件的物理位置改变吗
这里我先解释一下文件的移动有几种。
1、同一分区内文件夹间的拖动:文件的物理位置不变,只是把分区表中文件的位置指向改变了,所以我们看到即使是几十G的文件也可以瞬间挪到另一个文件夹内。
2、不同分区文件夹间的拖动:文件的原物理位置不变,在新的分区内重新划分一块儿新地方储存文件,也就是说一共在同一个硬盘中出现两个同样的文件,只不过不在同一分区。
所以明白了这些,我们就可以有一些比较简洁的方法,比如:一般WinRAR的临时解压缩文件夹在C盘,如果解压缩一些数百兆得文件放在D盘或其他分区时就会发现解压完毕以后会弹出文件复制对话框,原因就是文件被解压到了C盘,然后再复制到目标盘。所以我一般这样处理:把WinRAR的临时解压缩文件夹放在目标文件夹所在的硬盘分区中,这样解压完以后直接移动到目标文件夹。
当然如果1-2MB时这么做的好处不显,但是如果800MB呢?2G呢?这能减少5到20分钟的时间,而且关键是可以减少很大一部分不必要的硬盘磨损,爱护我们的盘盘:)
⑹ 文件在磁盘上的存放空间可以以什么为存放单位
硬盘存储原理类似光盘,硬盘最小的记录单位是 比特 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个字节,这是个典型值。
所以你的理想状态是不存在于硬盘这种以速度为最高目标的设备中~~~
⑺ 使用计算机过程中看到的文件是连续的,其在磁盘上实际存储的物理位置____。 选择一项:
先解释下这点: Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。 而Unicode是一个字符解析器的工具,算是软件中的一个载体工具,非硬件层访问程序。所以“汉”的解析成二进制,是通过该应用层进行编译解析的。它只是一个中路转换工具。具体如何定义,你可以查询Unicode编码表。
⑻ 下载的文件在硬盘里以什么物理状态存在
下载的文件在硬盘里以什么物理状储存,这属于物理知识,叫磁性正反。就是硬盘上划分很多单元,每个单元磁性依靠磁头读取,或N或者S,通过电路变成10二进制,通过系统解释为文件,写的时候相反。