操作系统存储管理之分区存储管理

一、单连续分区存储管理

【单连续分区存储管理】

  • 每个进程占用一个物理上完全连续的存储空间(区域),可分为三种:
    #单用户连续分区存储管理
    #固定分区存储管理
    #可变分区存储管理

【单用户连续分区存储管理】

  • 适用于单用户单任务操作系统,如DOS
  • 主存区域划分为系统区与用户区,系统区用来存放操作系统的程序与数据,用户区则用来存放这一个用户的进程
  • 设置一个栅栏寄存器界分两个区域,硬件用它在执行时进行存储保护
  • 一般采用静态重定位进行地址转换
  • 硬件实现代价低

【单用户连续分区存储管理示意】

  • 静态重定位:在装入一个作业时,把该作业中程序的指令地址和数据地址全部转换成绝对地址
    在这里插入图片描述

【固定分区存储管理的基本思想】

  • 支持多个分区
  • 分区数量固定
  • 分区大小固定
  • 可用静态/动态重定位
  • 硬件实现代价低
  • 早期OS采用
    在这里插入图片描述

【固定分区方式的主存分配】

  • 主存分配表
    在这里插入图片描述
  • 主存的分配与去配

【固定分区方式的地址转换】

  • 硬件实现机制与动态重定位
    在这里插入图片描述

【可变分区存储管理概述】

  • 固定分区存储管理不够灵活,既不适应大尺寸程序,又存在内存内零头,有浪费
  • 能否按照进程实际内存需求动态划分分区,并允许分区个数可变
  • 这就是可变分区存储管理

二、可变分区存储管理

【可变分区存储管理】

  • 按进程的内存需求来动态划分分区
  • 创建一个进程时,根据进程所需主存量查看主存中是否有足够的连续空闲空间
    #若有,则按需要量分割一个分区
    #若无,则令该进程等待主存资源
  • 由于分区大小按照进程实际需求量来确定,因此分区个数是随机变化的

【可变分区方式的内存分配示例】
在这里插入图片描述

【可变分区方式的主存分配表】

  • 已分配区表与未分配区表,采用链表
    在这里插入图片描述

【可变分区方式的内存分配】

  • 最先适应分配算法
  • 邻近时应分配算法
  • 最优适应分配算法
  • 最坏适应分配算法

【可变分区方式的内存回收】
在这里插入图片描述

【地址转换与存储保护】

  • 硬件实现机制与动态重定位
    在这里插入图片描述

【可变分区方式的内存零头】

  • 固定分区方式会产生内存内零头
  • 可变分区方式也会随着进程的内存分配产生一些小的不可用的内存分区,称为内存外零头
  • 最优适配算法最容易产生外零头
  • 任何适配算法都不能避免产生外零头

【移动技术(程序浮动技术)】

  • 移动分区以解决内存外零头
  • 需要动态重定位支撑
    在这里插入图片描述

【移动技术的工作流程】
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值