内部碎片和外部碎片
2016-03-13 21:30
281 查看
内部碎片:
内部碎片就是已经被分配出去(能明确指出属于哪个进程)却不能被利用的内存空间;
内部碎片是处于区域内部或页面内部的存储块。占有这些区域或页面的进程并不使用这个存储块。而在进程占有这块存储块时,系统无法利用它。直到进程释放它,或进程结束时,系统才有可能利用这个存储块。
为了有效的利用内存,使内存产生更少的碎片,要对内存分页,内存以页为单位来使用,最后一页往往装不满,于是形成了内部碎片。
由于被装入的数据块小于分区大小,从而导致分区内部有空间浪费,这种现象成为内部碎片。
外部碎片:
外部碎片指的是还没有被分配出去(不属于任何进程),但由于太小了无法分配给申请内存空间的新进程的内存空闲区域。
外部碎片是出于任何已分配区域或页面外部的空闲存储块。这些存储块的总和可以满足当前申请的长度要求,但是由于它们的地址不连续或其他原因,使得系统无法满足当前申请。
分区外的存储空间会出现很多不能使用的碎片。
单道连续分配,多道固定连续分配产生的是内部碎片; 多道可变连续分配产生外碎片。
解决外部碎片的方式是:紧凑
内部碎片就是已经被分配出去(能明确指出属于哪个进程)却不能被利用的内存空间;
内部碎片是处于区域内部或页面内部的存储块。占有这些区域或页面的进程并不使用这个存储块。而在进程占有这块存储块时,系统无法利用它。直到进程释放它,或进程结束时,系统才有可能利用这个存储块。
为了有效的利用内存,使内存产生更少的碎片,要对内存分页,内存以页为单位来使用,最后一页往往装不满,于是形成了内部碎片。
由于被装入的数据块小于分区大小,从而导致分区内部有空间浪费,这种现象成为内部碎片。
外部碎片:
外部碎片指的是还没有被分配出去(不属于任何进程),但由于太小了无法分配给申请内存空间的新进程的内存空闲区域。
外部碎片是出于任何已分配区域或页面外部的空闲存储块。这些存储块的总和可以满足当前申请的长度要求,但是由于它们的地址不连续或其他原因,使得系统无法满足当前申请。
分区外的存储空间会出现很多不能使用的碎片。
单道连续分配,多道固定连续分配产生的是内部碎片; 多道可变连续分配产生外碎片。
解决外部碎片的方式是:紧凑
相关文章推荐
- [LeetCode]313 超级丑数
- YII2笔记
- #import "C:\Program Files\CommonFiles\System\ado\msado15.dll" no_namespace rename("EOF","adoEOF")问题
- 学习进度条
- HDU 2073 无限的路
- Crontab定时任务
- MySql 初步了解
- ps命令详解
- HDOJ1241
- 蓝桥杯历届- 熊怪吃核桃
- 如何获取元素
- 欢迎使用CSDN-markdown编辑器
- 最短路之SPFA算法
- Dede修改文章默认标题长度,让标题全显示
- 数据库元数据MetaData
- Java编程思想学习(十六) 并发编程
- Java学习第二周学习笔记
- asdfsadfs
- NoClassDefFoundError: org/json/JSONException解决方法
- Android四大组件之一内容提供者