0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

系统碎片是什么?是怎么产生的?为什么会产生?

Wildesbeast 来源:悟空问答 作者:雅帆电子 2020-01-21 11:14 次阅读

系统碎片存储器是系统频繁地删除文件再写入文件造成的。理论上,只要删除文件再写入就有碎片,重复的越多,碎片越多。原因如下(为了说明清楚,雅帆用几个步骤作图示意),值得注意的是,碎片是对于机械硬盘来说的,对于固态硬盘则没有影响。

一、空白盘,第一次写文件

因为是空白盘,所有的空白空间都是连续的,所以写入两个文件后,效果是这样的。

图中表示了绿色文件和黄色两种文件,由于是空白盘第一次书写,这两个文件是相邻的且是连续的。

二、删除绿色文件

删除绿色文件后,原来绿色的扇区变成空白,表示没有被占用,可以被再次书写。

三、写入第三个文件

当写入的文件比删除的大时,红色文件会分开存放,这样磁盘在写或读这个文件时,磁头就要大幅度移动,影响速度。

当写的文件比删除的小时,会留有粉色空白,早晚也会产生碎片。

以上就是碎片产生的原理,是文件系统造成的,目前没有办法解决,存在也没什么意义,只会拖读写速度。

至于为什么会存在软件删了,但是并不是所谓完全删除的问题,原理如下:

这是文件系统的机制造成的,我们的硬盘不是以字节为单位管理的,而是以扇区为单位,一个扇区可以有很多字节,常见的有4096字节等,如下图所示:

每个扇区用一个字节管理,等于FF了表示文件结束。等于00了表示当前扇区可以被读写,其它值时,表示与当前值所在扇区级联。

画图表示为:

可见,当我们删除一个文件时,其实是在引导记录里作标记。实际的文件内容并没有删除。还是可以找回来的,当然,如果删除后又写了文件,并且正好占用了释放的空间,那么文件就找不回来了。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 存储器
    +关注

    关注

    38

    文章

    7423

    浏览量

    163485
  • 固态硬盘
    +关注

    关注

    12

    文章

    1439

    浏览量

    57208
  • 机械硬盘
    +关注

    关注

    1

    文章

    220

    浏览量

    25350
收藏 人收藏

    评论

    相关推荐

    嵌入式系统中内存碎片产生过程说明

    在嵌入式系统中,内存是十分有限而且是十分珍贵的,用一块内存就少了一块内存,而在分配中随着内存不断被分配和释放,整个系统内存区域产生越来越多的碎片
    发表于 09-21 12:22 559次阅读
    嵌入式<b class='flag-5'>系统</b>中内存<b class='flag-5'>碎片</b><b class='flag-5'>产生</b>过程说明

    FreeRTOS系统使用xTaskCreate产生的任务与osThreadDef 产生的线程有什么不同?

    请教下是要 FreeRTOS系统, 使用 xTaskCreate 产生的任务 与 osThreadDef产生的线程有什么不同?
    发表于 04-29 07:20

    【电脑日常维护教程】6个磁盘碎片整理技巧

    整理程序时系统自动屏蔽掉屏幕保护,运行完成后自动恢复。4. 改变交换文件的位置 我们知道,如果大量碎片存在于C盘之中,可能影响系统的启动
    发表于 05-18 16:12

    请问mymalloc产生内存碎片吗?

    malloc申请内存在释放后,产生内存碎片,所以UCOSIII内有专门的内存申请。原子哥视频(UCOSIII视频19讲)最后的时候说可以用原子哥自己的mamalloc函数来申请内存。我想问,难道原子哥的mymalloc不会
    发表于 10-16 04:35

    鸿蒙系统对手机市场产生怎样的影响?

    了,二者占据的市场份额高达到99%以上。虽然我们都知道,现在的华为手机已经在国际上的影响很大,占有率达23%,仅次于三星,但是这些都是基于安卓系统而言的。如果华为在手机上搭载自己的鸿蒙系统,能否与安卓、苹果“三分天下”,对未来的手机市场
    发表于 09-14 09:20

    什么是ORE中断?为什么产生

    )。接下来是错误产生原因以及解决方法。 (1)什么是ORE中断?为什么产生产生原因如上所述。ORE标志位在USART_SR寄存器,但值得注意的是,当我们打开串口接收中断时,同时也
    发表于 08-13 07:08

    什么产生HardFault_Handler

    STM32关于我遇到的HardFault_Handler的处理前言关于HardFault_Handler为什么产生HardFault_Handler出现HardFault_Handler怎么办我
    发表于 08-24 07:59

    如何避免内存碎片产生

    内存碎片产生(从内部碎片和外部碎片方面讲述)编程题:第一题:解析头文件,简单来说就是大写字母小写之母通过一些特定的规则进行转换,具体题目要求忘了…(AC)#include #incl
    发表于 12-21 07:50

    长线缆为什么产生静电危害,如何进行规避

    ,还有一种情况容易被忽略,那就是长线缆的电荷积聚。长线缆为什么产生静电危害,在哪些场景下产生静电危害,以及如何进行规避,这些将是本文要重点介绍的内容。 除非特别说明,下文中的线缆都
    的头像 发表于 12-22 17:59 5746次阅读

    风机光伏发电为什么产生谐波

    风机光伏发电是可再生能源发电方式。然而,尽管其具有许多优点,却也存在一些技术难题,其中之一就是谐波产生的问题。本文将深入探讨风机光伏发电为什么产生谐波的原因。
    的头像 发表于 07-19 14:35 2850次阅读

    常见的PLC系统BUG有哪些?如何减少BUG的产生呢?

    PLC系统可能遇到各种不同类型的BUG,以下是一些常见的PLC系统BUG以及如何减少这些BUG的产生的建议
    的头像 发表于 10-31 11:29 834次阅读

    内存泄漏产生哪些后果

    ,只释放了p1,没有释放p2,产生了内存泄漏。 内存泄漏产生哪些后果? 随着程序运行时间越来越久,内存有分配没有释放,会使得进程堆中的内存越来越
    的头像 发表于 11-10 15:06 749次阅读
    内存泄漏<b class='flag-5'>会</b><b class='flag-5'>产生</b>哪些后果

    在电路中,为什么非线性负载产生谐波?非线性负载产生谐波的原因

    在电路中,为什么非线性负载产生谐波?非线性负载产生谐波的原因  非线性负载是指在电路中非线性元件工作时产生的信号失真现象。信号失真是指输入信号与输出信号之间存在不一致的现象。谐波则是
    的头像 发表于 11-17 11:22 1672次阅读

    电力系统谐波的产生与危害

    电力系统谐波的产生与危害  随着电力系统的发展和智能化程度的提高,谐波问题逐渐受到人们的重视。电力系统产生的谐波波形虽然不是正弦波,但是其
    的头像 发表于 12-11 16:44 1082次阅读

    电力系统为什么产生谐振,怎么处理?

    ,电路的总阻抗最小,电流最大,可能导致设备过载。 2、并联谐振 :当电感和电容并联,并且它们的阻抗相等时,也产生谐振。在这种情况下,总阻抗最大,可能会引起电压升高,损坏设备。 谐振通常发生在电力
    的头像 发表于 07-25 14:15 1336次阅读
    电力<b class='flag-5'>系统</b>为什么<b class='flag-5'>会</b><b class='flag-5'>产生</b>谐振,怎么处理?