1.单分区存储管理
基本原理:把内存的用户区视为一个独立的连续存储区,任何时刻只将它分配给一个作业使用。
这种存储管理非常简单,适用于单用户单任务系统(如,MS-DOS操作系统的早期版本)。
因为任何时刻最多只有一个程序独占内存,无论在该程序执行过程中还是CPU等待I/O时都不能让其他用户使用。
CPU的利用率不高
外设利用率较低
进入系统运行的作业所要求的存储空间较小时,剩余较大的空白区未被利用,只能白白浪费。
内存空间浪费严重
2.固定多分区存储管理
基本原理
将内存用户区划分成多个大小相等或不等的固定分区,每一个分区可以装入一个进程。这样,内存中可同时容纳若干个进程。 MAT表可以用静态数组实现
有可能出现的问题
- 分区大小可以相等,也可以不等
- 每个分区的起始地址和长度是固定的
- 大的进程无法装入
- 小进程装入大分区出现内部碎片
内碎片
思考
固定分区方案的缺陷
- 分区的数目在系统生成阶段已经确定,限制了系统中活动进程的数目。
- 分区大小在系统生成阶段事先设置,大作业有可能无法装入,小作业不能有效地利用分区空间。
- “内碎片”现象降低了内存有效利用率。
固定分区应用案例
早期的IBM主机操作系统OS/MFT
具有固定任务数的多道程序设计系统
3.动态多分区存储管理
动态分区分配算法可描述如下:
- 从头到尾扫描内存分配表,找到一个能满足需求的空闲分区MATi。
- 若MATi (长度)==L,则: MATi (占用标志)“已分”,转4。
- 若MATi (长度) >L,则:
(3)-1 L, =MATi (长度) – L。
(3)-2 MATi (长度) =L; MATi (占用标志) =“已分”。
(3)-3在内存分配表的下一个位置插入新行MAT1。
(3)-4 MAT+ (起始地址) =MATi (起始地址) +L。
(3)-5 MAT(i+1)(长度) =Lq。
(3)-6 MAT(i+1)(占用标志) =“未分”。 - 结束。
外碎片: 指的是在使用动态多分区管理方法时,形成的一-些零零星的、因为太小不容易被分配利用的小的空闲区。
主存分配算法: 采用哪种主存分配算法?Best不是最好的,Worst不是最差的
装入16MB进程:
消除外碎片的方法
主存分配过程中,通过程序浮动将不相邻的空闲区移为相邻的进行合并。
回收过程中,相邻空闲区进行合并。
动态多分区回收算法
动态多分区地址转换与存储保护
多对基址/限长寄存器
动态多分区存储管理小结
- 实现了多进程共驻内存,支持多道程序设计技术。
- 按照进程所需划分分区,消除了内碎片。
- 外碎片的产生和消除加大了系统开销。
- 克服了固定多分区的缺点,但是也有明显不足,外部碎片的存在降低了内存利用率,外部碎片的整理加大了系统开销
4.伙伴系统
一种固定分区和可变分区折中的主存管理算法。
伙伴系统分配原理:
**
今天的文章操作系统—(30)固定多分区和动态多分区存储管理分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/64035.html