操作系统内存管理---连续内存分区

本文深入探讨了操作系统中采用的主要内存管理技术,包括重定位、分段、分页和虚拟存储等概念。同时介绍了连续内存分配及其带来的内存碎片问题,并讨论了解决方案如动态分配、碎片整理技术和伙伴系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

操作系统中采用的内存管理方式:
(1)重定位(relocation)
(2)分段(segmentation)
(3)分页(paging)
(4)虚拟存储(virtual memory)
地址空间定义:
物理地址空间—硬件支持的地址空间
连续内存分配:给进程分配一块不小于制定大小的连续的物理内存区域。
内存碎片:空闲内存不能被利用—外碎片和内碎片
动态分配:当程序被加载执行时,分配一个进程指定大小可变的分区。(连续的)
操作系统需要维护的数据结构:所有进程的已分配分区和未分配的空间。
分配方式:最先匹配(first fit allocation),最佳匹配(Best fit Allocation),最差匹配(worst fit allocation)。
碎片的整理:紧凑(compaction)移动进程的内存分区,以合并外部碎片(条件:所有应用程序可以动态重定位),分区对换(swapping in/put):抢占并回收等待状态进程分区,以增大可用内存空间。
伙伴系统(Buddy System):整个可分配的分区大小2^U,需要的分区大小为2^U-1< s <=2^U.
实现:数据结构:空闲快按大小和起始地址组织成二维数组。初始状态只有一个大小为2^U的空闲块。
分配过程:由小到大在空闲快中找最小可用空闲快。可以二等分。
合并条件:大小相同,地址相邻,其实地址较小的块的起始地址必须是2^(i+1)的倍数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值