操作系统之内存管理:2、内存管理的功能(内存分配回收、扩充、地址转化、存储保护)


看几个问题

在这里插入图片描述在这里插入图片描述

功能1:内存空间的分配与回收

在这里插入图片描述

连续分配管理:

方法1:单一连续分配

在这里插入图片描述

方法2:固定分区分配

在这里插入图片描述
问题:如何对每一块分区进行记录呢?
在这里插入图片描述

方法3:动态分区分配

1、什么是动态分区分配?

在这里插入图片描述
一个接一个的放入。

2、系统用什么样的数据结构记录内存使用情况?

在这里插入图片描述

3、当很多个空闲分区都能满足需求时,应该选择哪个分区进行分配?(首次适应、最佳适应、最坏适应、临近适应)

在这里插入图片描述

4、如何进行分区的分配与回收操作?

能合并就合并

5、如何解决动态分区分配碎片化问题?

采用“拼凑”技术,就是将使用的存储空间拼接到一起,闲散的存储空间拼接到一起。例如现在内存中有互不相邻的三块空间:1K,3K,5K;现在有一个7K的程序要运行,但是由于内存空间不连续而无法运行,此时就需要将三块空间拼接。

非连续分配管理方式

见下篇:
操作系统之内存管理:3、基本分页存储管理

功能2:内存空间的扩充

方法1、覆盖技术

在这里插入图片描述

在这里插入图片描述

看上图:
假设现在B、C不能同时放入内存,D、E、F不能同时放入内存;
所以:
可以将A放入固定区;(8K)
将B、C设置一个覆盖区用于存放B、C(只需10K)
将D、E、F设置一个覆盖区用于存放D、E、F(只需12K)
从而从逻辑上达到内存扩充的目的,以淘汰

方法2、交换技术

在这里插入图片描述

方法3、虚拟存储技术

功能3:地址转化

方法1、绝对装入

在这里插入图片描述

方法2、可重定位装入

在这里插入图片描述

装入后可执行文件中的地址都被修改为了物理地址,地址变换在装入时一次性完成

方法3、动态重定位

在这里插入图片描述

在装入后通过重定位寄存器和逻辑地址计算数据存放地址,即使程序移动后,也可以通过再次计算得到新的物理地址

功能4:存储保护

方法1:上下限寄存器法

在这里插入图片描述

用物理地址设置俩个上下界寄存器,CPU访问存储单元时判断是否在上下界寄存器地址范围内

方法2:重定位寄存器(基址寄存器)和界地址寄存器法(限长寄存器)

在这里插入图片描述

重定位寄存器:存放起始物理地址
界地址寄存器:存放最大逻辑地址
此时,CPU想要访问逻辑地址80,首先要与界地址寄存器比较判断是否越界,未越界则访问物理地址:80+100=180.

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值