存储管理1-分区管理,伙伴系统

本文为笔记总结

多道程序存储管理:


分区程序管理:分为系统区,用户区(再分为若干分区)


一 固定分区存储管理(分区大小个数确定不变);

管理:内存分配表:记录分区号,起始地址,空间大小,状态及占用进程名

特点:简单,开销小,内部碎片浪费,分区总数固定,缺乏内存保护;程序大小不超过分区大小


二 可变分区管理

从用户区动态创建,不预先分区;

最后会形成占用区与空闲区相间布局,

管理:分区表(已占用,空闲分区表)

      分区链(表):起始地址递增顺序

特点:灵活,无内部碎片,有外部碎片


分区分配算法:

1.首次适应分配算法:顺序查找空闲分区表,选择第一个满足空间要求的分区,一部分分给作业,剩余部分仍为空闲分区。性能最好

2下次适应分配算法:第二个进程从第一个进程落脚分区开始查找,到达结尾返回开头;使得空闲分区更均匀,性能略逊

3.最佳适应分配算法:找到满足作业空间要求的最小空闲分区,外部碎片会非常零散;

性能最差

4.最坏适应分配算法:满足作业空间需求的最大空闲分区进行分割,外部碎片不会太小,有利于中小进程

 

分区回收:

将上下邻空闲区(如果有的话)合并,合并或插入空闲分区表;

 

碎片问题:

分区回收解决了一部分,

内存紧缩技术:另外所有进程占用空间尽可能往地址一端移动(如低端),高端形成新的空闲大分区;花费时间长注意地址重定位问题;

 

地址重定位:地址映射---逻辑地址转化为物理地址

物理地址:内存地址,绝对地址,实地址;只有通过物理地址,才可对内存单元进行直接访问;

逻辑地址:相对地址,虚地址;编译后目标代码,首地址为0;

还有后面的虚拟地址,注意区分;

 

静态重定位:程序装入内存时,直接对代码修改,完成转换;简单,无需硬件支持,缺点:装入内存,不可移动;

动态重定位:程序装入内存时,不修改,运行访问内存单元时,进行地址转换;由硬件完成(设置基地址寄存器,装入进程的分区起始地址,访问内存时,相对地址加之)

 

存储保护:

上下界寄存器保护模式

基址寄存器+限长寄存器

 

三 伙伴系统:

对固定,可变分区的折中;

已分配,空闲分区,大小均是2的k次方;

找到或分割得到满足进程要求空间的最小分区(和伙伴分区),分区满足pow(2,i-1)<k<=pow(2,i)

合并时,伙伴分区空闲,一直合并下去;

特点:存在内部碎片,外部碎片极少;搜索空闲块速度快,找到满足要求的第一个即可;合并简单

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值