操作系统—(30)固定多分区和动态多分区存储管理

操作系统—(30)固定多分区和动态多分区存储管理单分区存储管理基本原理:把内存的用户区视为一个独立的连续存储区,任何时刻只将它分配给一个作业使用

1.单分区存储管理

基本原理:把内存的用户区视为一个独立的连续存储区,任何时刻只将它分配给一个作业使用。
这种存储管理非常简单,适用于单用户单任务系统(如,MS-DOS操作系统的早期版本)。

因为任何时刻最多只有一个程序独占内存,无论在该程序执行过程中还是CPU等待I/O时都不能让其他用户使用。
CPU的利用率不高
外设利用率较低
进入系统运行的作业所要求的存储空间较小时,剩余较大的空白区未被利用,只能白白浪费。
内存空间浪费严重

2.固定多分区存储管理

基本原理
将内存用户区划分成多个大小相等或不等的固定分区,每一个分区可以装入一个进程。这样,内存中可同时容纳若干个进程。 MAT表可以用静态数组实现

有可能出现的问题

  1. 分区大小可以相等,也可以不等
  2. 每个分区的起始地址和长度是固定的
  3. 大的进程无法装入
  4. 小进程装入大分区出现内部碎片
内碎片

在这里插入图片描述

思考

在这里插入图片描述

固定分区方案的缺陷
  1. 分区的数目在系统生成阶段已经确定,限制了系统中活动进程的数目。
  2. 分区大小在系统生成阶段事先设置,大作业有可能无法装入,小作业不能有效地利用分区空间。
  3. “内碎片”现象降低了内存有效利用率。
固定分区应用案例

早期的IBM主机操作系统OS/MFT
具有固定任务数的多道程序设计系统

3.动态多分区存储管理

在这里插入图片描述

动态分区分配算法可描述如下:

  1. 从头到尾扫描内存分配表,找到一个能满足需求的空闲分区MATi。
  2. 若MATi (长度)==L,则: MATi (占用标志)“已分”,转4。
  3. 若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)(占用标志) =“未分”。
  4. 结束。
    在这里插入图片描述
    在这里插入图片描述
    外碎片: 指的是在使用动态多分区管理方法时,形成的一-些零零星的、因为太小不容易被分配利用的小的空闲区。
    主存分配算法: 采用哪种主存分配算法?Best不是最好的,Worst不是最差的
    装入16MB进程:
    在这里插入图片描述
消除外碎片的方法

主存分配过程中,通过程序浮动将不相邻的空闲区移为相邻的进行合并。
回收过程中,相邻空闲区进行合并。

动态多分区回收算法

在这里插入图片描述

动态多分区地址转换与存储保护

在这里插入图片描述

多对基址/限长寄存器

在这里插入图片描述

动态多分区存储管理小结
  1. 实现了多进程共驻内存,支持多道程序设计技术。
  2. 按照进程所需划分分区,消除了内碎片。
  3. 外碎片的产生和消除加大了系统开销。
  4. 克服了固定多分区的缺点,但是也有明显不足,外部碎片的存在降低了内存利用率,外部碎片的整理加大了系统开销

4.伙伴系统

一种固定分区和可变分区折中的主存管理算法。
伙伴系统分配原理:
在这里插入图片描述
加粗样式**

今天的文章操作系统—(30)固定多分区和动态多分区存储管理分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/64035.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注