内存管理(一)

一、地址重定位
逻辑地址:用户程序经过编译、汇编之后形成的目标代码,目标代码通过相对地址的形式,其首地址为0,其余地址都相对于首地址而编址。


物理地址:内存中存储单元的地址。


地址重定位定义:将用户程序中的逻辑地址转换为运行时可由机器直接寻址的物理地址。


分类:
1、静态重定位:将用户程序一次性实现逻辑地址到物理地址的转换。
2、动态重定位:逐条指令执行时完成地址转换。


二、内存分配方法
1、首次适配:在空闲区表中找到第一个满足进程要求的空闲区
2、下次适配:从上次找到的空闲区处接着查找
3、最佳适配:查找整个空闲区,找到能满足进程要求的最小空闲区
4、最差适配:总是分配满足进程要求的最大空闲区


三、内存回收方法
当某一块归还后,前后空闲控件合并,修改内存空闲表。

四种合并情况:上相邻、下相邻、上下相邻、上下不相邻


四、伙伴系统
主要思想是将内存按2的幂进行划分,组成若干空闲块链表。查找该链表找到能满足进程需求的最佳匹配块。


五、内存管理方案1
1、单一连续区
特点:一段时间内只有一个进程在内存,内存利用率低。


2、固定分区
特点:把内存空间分割成若干区域。每个分区的大小可以相同可以不同。分区大小固定不变。每个分区装一个进程


3、可变分区
特点:根据内存需要,把内存空闲空间分割成一个分区,分配给该进程。剩余部分成为新的空闲区。
碎片问题:很小的不易利用的空闲区。
解决方案:在内存移动程序,将所有小的空闲区合并为较大的空闲区。成为压缩技术。


六、内存管理方案2
1、页式存储
设计思想:
用户进程地址空间被划分为大小相等的部分,成为页。从0开始编号。
内存空间按同样大小划分,成为页框。

内存分配:以页为单位进行分配,并按进程需要的页数来分配。逻辑相邻的页,物理上不一定相邻。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值