物理内存管理:连续内存分配
Posted My heart will go ~~
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了物理内存管理:连续内存分配相关的知识,希望对你有一定的参考价值。
1. 计算机体系结构和内存层次
重定位,分段,分页,虚拟存储
重定位:改段寄存器的地址。
分段:程序分为数据、代码、堆栈。
分页:把内存分为最基本的单位
虚拟存储:逻辑地址空间大于物理内存空间
2.地址空间和地址生成
物理地址:硬件支持的地址空间。
逻辑地址:在cpu运行进程看到的地址。
程序加载到内存中,变成进程。
源代码编译,变成指令的汇编指令(汇编的源代码),再次编译,变成二进制代码(机器能认识的指令)。
3.连续内存分配
给进程分配一块不小于指定大小的连续的物理内存区域。
内存碎片:外碎片(两块之间的)、内碎片(分配给进程的无法利用的区域)
动态分区分配:加载执行进程时,为其分配指定的内存。进程结束之后,就会释放内存空间。再次使用这些内存碎片的时候,就进行动态分配:最先匹配、最佳匹配、最差匹配。
最先分配:简单、高地址空间有大块空闲分区;
但外部碎片多,分配大块时较慢。尤其是后面搜索时间会很长,开销变大。
最佳匹配:比他大但大的最少;
简单,外碎片小,但剩余的外碎片基本没用了,
最差匹配:直接找最大的。
中大分配较多时,效果最好,不会出现很多小碎片。但是释放较慢,外部碎片,后续难以分配。
4.碎片整理
碎片整理:调整进程占用的分区位置,减少或避免分区碎片。
碎片紧凑:移动分配给进程的内存,以合并外部碎片。条件是:所有的应用程序可动态重定位。
分区对换:抢占并回收处于等待状态进程的分区,以增大内存空间。
5.伙伴系统
以上是关于物理内存管理:连续内存分配的主要内容,如果未能解决你的问题,请参考以下文章