外部碎片和内部碎片的区别
外部碎片和内部碎片的区别
一、在内存上(使用连续分配算法来管理分配内存时会产生)的外部碎片和内部碎片两个概念
这几天一直看操作系统,看到内存的连续分配时,对于外部碎片和内部碎片时甚是不解:
产生外部碎片的一种情况:
举个例子,在内存上,分配三个操作系统分配的用于装载进程的内存区域A、B和C。假设,三个内存区域都是相连的。故而三个内存区域不会产生外部碎片。现在假设B对应的进程执行完毕了操作系统随即收回了B,这个时候A和C中间就有一块空闲区域了。
总之,在内存上,外部碎片是位于任何两个操作系统分配的用于装载进程的内存区域或页面之间的空闲区域,内部碎片是位于一个操作系统分配的用于装载进程的内存区域或页面内部的空闲区域。
================================
二、在磁盘上的外部碎片和内部碎片两个概念
很多人会把文件碎片跟簇的概念混淆起来。其实对windows系统来说硬盘上的每个分区都是由最小存储单元——簇组成的。就好比,一面墙是由一块块转头组成的。簇的大小可以在分区格式化时由用户定义,一般是数个KB大小,比如是8KB。假设我有一个文件,大小是80MB零1KB(1MB=1000KB),换算一下就是80,001KB,其中的80,000KB正好占用10000个簇,剩下的那1KB,不得以也要占用1个簇,但这最后一个簇还有7KB的空间没用上了。而且这个未完全使用的簇,其他文件也不允许继续使用。这就造成了一点点的空间浪费。
不少人就把这被浪费了的7KB空间就是磁盘上的内部碎片。
而磁盘上的外部碎片(即平时所说的磁盘碎片,磁盘碎片清理工具只能清理磁盘上的外部碎片,清除不了磁盘上的内部碎片,除非改变文件系统的分配单位即簇的大小,使之是一个文件大小的整数倍。)实际上指的是一个文件占据那些簇是不连续的,就相当于文件被分割开来,分别存放在相互间断的几段簇上。文件被分割为几个部分就是几个碎片。所以碎片其实是指文件碎片,可以理解成,文件破碎成片之意。而且文件碎片之间有时候顺序还是错乱的。比如说,有时候“文件里靠后的碎片”所占的簇段在硬盘上反而会排在“文件里位置靠前的碎片”簇段的前面。这样一来,一个文件就会以比较混乱的顺序存放在硬盘上。
显然计算机读取连续的有序的数据肯定要比不连续的乱序的数据来得快。所以整理碎片可能会大幅度提高系统性能。
举个例子,起初硬盘某个分区是空白的,写入三个文件A、B和C。显然这个时候,三个文件都是顺次占用三个簇段(这个说明存放文件所用的文件系统应该是类似FAT这样的文件系统,具体参看注释1)。故而三个文件不会产生碎片。
现在假设你删除了B文件,这个时候A和C中间就有一块空闲簇段了。此时还是不存在文件碎片的,因为每个文件各自占据的簇段都是连续的,没有文件被分割。而如果现在需要写入一个文件D,而且D比刚刚删去的文件B要大。那么A和C之间的空闲簇段就不足以放入D,再假设C后面的空闲簇段也不足以放下D,这个时候D就势必要分割成两块存放,一块放在A和C之间,另一块放在C之后。这样一来,文件碎片就产生了。D文件有两个文件碎片。
磁盘碎片整理要做的工作就是:把C文件前移,一直移到紧接A文件的簇段上去。这样A和C之间就没有空闲簇了,C之后剩下的将是一段完整的空闲簇段,足以放下文件D。这样D就也占据一段连续的簇段。碎片也就消除了。
=====================================
外部碎片的两种理解:
1、在内存上,位于任何两个操作系统分配的用于装载进程的内存区域或页面之间的空闲区域称为外部碎片
2、在磁盘上,将文件分割成几块不相连的分片,这样不相连的分片叫做文件碎片,也即外部碎片。如果将文件分割成几块相连的分片,这样相连的分片则不是文件碎片。
==============================
外部碎片和内部碎片的区别相关推荐
- 内部碎片和外部碎片的区别
转自: 一.在内存上(使用连续分配算法来管理分配内存时会产生)的外部碎片和内部碎片两个概念 这几天一直看操作系统,看到内存的连续分配时,对于外部碎片和内部碎片时甚是不解: 内存碎片分为:内部碎片和外部 ...
- 内存碎片---内部碎片外部碎片
内部碎片的产生:因为所有的内存分配必须起始于可被 4.8 或 16 整除(视处理器体系结构而定)的地址或者因为MMU的分页机制的限制,决定内存分配算法仅能把预定大小的内存块分配给客户.假设当某个客户请 ...
- 内部碎片和外部碎片的理解
关于操作系统存储管理中的外部碎片和内部碎片的理解: 内部碎片: 固定分区存储管理会产生内部碎片 补充概念: 固定分区存储管理将主存发划分为系统区和用户区,系统区存放操作系统驻留代码和数据,用户区划分为 ...
- 反碎片化技术(外部碎片)的原理
主要参考了<深入linux内核>和<Linux内核深度解析>,另外简单浅析了一下相关内容 文章目录 反碎片化技术(外部碎片) 虚拟可移动区域 使用方法 技术原理 解析内核引导参 ...
- 50.什么是内部碎片?什么是外部碎片?
碎片是指内存中不足以用来分配给其他进程的小空间. 内部碎片和外部碎片是在内存连续分配中产生的.内部碎片是因为固定分区分配方式,而外部碎片是由于动态分区分配产生的. 内部碎片:分配给作业的存储空间中未被 ...
- 操作系统内存管理之 内部碎片vs外部碎片
"碎片的内存"描述一个系统中所有不可用的空闲内存.这些资源之所以仍然未被使用,是因为负责分配内存的分配器使这些内存无法使用.这一问题通常都会发生,原因在于空闲内存以小而不连续方式出 ...
- 什么是内部碎片和外部碎片?
什么是内部碎片? 内部碎片就是已经被分配出去(能明确指出属于哪个进程)却不能被利用的内存空间: 内部碎片是处于区域内部或页面内部的存储块.占有这些区域或页面的进程并不使用这个存储块.而在进程占有这块存 ...
- 内部跳转(请求转发)和外部跳转(重定向)的区别?
总结归纳要点: 1.内部跳转的时候实际上是通过服务器端将请求转发到另外的页面或者servlet中,这个时候跳转到的目标页面或者servlet可以获取到请求对象, 也可以获取到请求中的属性和参数.而外部 ...
- 内部表外部表的操作与区别
内部表外部表 未被external修饰的表是内部表(managed table),被external修饰的是外部表(external table) 内部表操作 准备工作: 创建stu.txt 1,zs ...
- 操作系统物理内存管理
这里写目录标题 连续分配管理方式 单一连续存储管理 分区式存储管理 固定分区 动态分区 伙伴系统 内存紧缩(内存碎片化处理) 覆盖技术 交换技术 覆盖与交换的比较 外部碎片和内部碎片的区别 内部碎片 ...
最新文章
- 考考你:输入数字,判定空格和回车
- vs2005格式化代码
- 几个数判断大小_许栩原创2020读书笔记2《魔鬼数学》:极小数的两倍仍然是极小数...
- 【Python】青少年蓝桥杯_每日一题_5.15_打印 99 乘法表
- 前端学习(2286):react之无状态组件
- 34tomcat设置默认页面
- 5.过滤器作为模板——1D 相关、Matlab互相关实战_1
- php 飞鹅云打印机_ThinkPHP飞鹅云打印接口
- 小米开源文件管理器MiCodeFileExplorer-源码研究(1)-2个模型Model
- 多元梯度下降法--machine learning
- irrlicht引擎:实现天龙八部的RPG换装
- 基金指数温度怎么算_指数温度计算方法
- 如何让计算机虚拟出多个桌面,多屏显示算什么?win10自带神技能,桌面秒变多屏幕,创建无上限...
- moment时区处理心得
- 一年之计在于春,一日之计在于晨, 一生之计在于勤,清晨起来修手机
- 三维重建方法--激光or视觉
- 火焰纹章16进制是怎么算_火焰是值得你的时间
- 教你制作第一个C++游戏!#1 引入
- 被修饰成单栋的倾斜摄影处理思路
- jquery点击图片放大效果
热门文章
- 黑苹果smbios机型选择_黑苹果注入三码洗白教程
- 【图像增强】基于matlab直方图均衡化图像增强【含Matlab源码 960期】
- OC门与OD门以及线与逻辑
- 计算机组成及工作原理课件,计算机组成与工作原理电子教案课件.ppt
- 【两步稀疏表示法】基于两步稀疏表示法的小波变换的图像重建算法的MATLAB仿真
- 2370. 最长理想子序列(每日一难phase2--day6)
- 批处理常用DOS命令简述
- eclipse查看代码git历史_Eclipse使用教程 : 利用Eclipse中git的插件来查看项目状态 - Break易站...
- 7. namp工具的基础了解
- .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上