分区式存储管理c++_内存管理 分区存储管理

目录


单道程序的内存管理

752e57b39a6044162433fe6996b96ff1.png

2979094a304ea474b66d8a216a4228d6.png

多道程序的内存管理

ef3c864a452b5589be317ebf4465d421.png

后面详细讨论固定式分区分配可变式分区分配,它们都是分区存储管理


固定式分区分配

把内存划分为若干个固定大小的连续分区,每个分区装入一个作业,分区可以同等大小,也可以差异不等。面对分区大小的差异,可以用两种方法进行处理:单一队列的分配方式,多队列分配方式

单一队列的分配方式

9d180fed0802ee02bc8a936fa6f873a0.png

多队列分配方式

75912bb1d618ad680039dcb6278486d6.png

固定式分区分配的优劣讨论

1924a367f46d5f8670b8660133370ac1.png

可变式分区分配

469f896a158b64addd973e45de75e201.png

分区初始时,如下:

3621dcf5d3f640e7464fc0cb6d912a0a.png

继续分配,出现如下情况:

41d327dbdf4acdf19b5020040539e1fd.png

此时就需要讨论第一轮内存分配完,存在进程释放空间后的内存分配,即考虑哪些处于两个进程之间的内存空间(通常是进程结束释放空间导致)。

下面提供几种经典的分配算法。

baa59883ebaed5377b58a167d97cfec6.png

说明:首次适应与下次适应算法着眼于搜索可用空间的代价,最佳适应与最坏适应算法着眼于分配后对应残余碎片的大小。


覆盖技术与交换技术

覆盖技术示意图

4c9b8777c64a19a247be346e0be4a9c9.png

大作业的各个模块有时候运行是互斥的,比如图中B和C不可能同时运行,那么就没必要在内存中同时给B和C都预留空间,此时可预留一个20KB空间即可。

交换技术

4fd6b175a02992c172481027d56a6b74.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值