首页计算机计算机软件操作系统 08 第八章 实存储器管理技术.pptx

08 第八章 实存储器管理技术.pptx

页数:19页文件大小:159.3 KB来源: 操作系统ppt课件

本课件讲解实存储器管理技术。先介绍多级存储器管理与主存管理的研究课题;随后依次展开固定分区存储管理及其存储分块表与分配算法、可变分区多道管理技术的双表数据库与分配释放算法、碎片问题与存储器紧缩、动态重定位的可变分区多道管理、多重分区管理;最后讲解用于扩充内存的覆盖技术与交换技术。

第八章实存储器管理技术章节页,列出固定分区、可变分区、多重分区与覆盖交换技术
多级存储器管理页,说明主存物理组织的容量速度价格与主存管理的四项研究课题
固定分区基本概念页,说明主存划分为若干固定大小存储区并分给单个作业专用
查看本课件的文字版(共 19 页,供检索与复制)

第1页:第八章 实存储器管理技术

第八章 实存储器管理技术

  • 固定分区存储管理
  • 可变分区的多道存储管理
  • 多重分区存储管理
  • 覆盖技术、交换技术

第2页:多级存储器管理与主存管理课题

多级存储器管理

  • 主存储器的物理组织:容量、速度、价格
  • 高速缓冲存储器
  • 主存
  • 外存:大、慢、便宜

主存管理的研究课题

  • 主存分配
  • 地址映象和重定位
  • 存储保护和主存共享
  • 存储器扩充

第3页:8.1 固定分区

基本概念
主存分成若干个固定大小的存储区(存储块),每个存储区分给某一个作业使用,直到该作业完成后才把该存储区归还系统
单用户固定分区
以 CP/M-80、CP/M-86 为例,高地址依次安排 BIOS(1.5K)、引导监控程序(8K)、操作系统 BDOS(3.5K)等固定区域

第4页:多用户固定分区与存储分块表MBT

多用户固定分区

  • 分区数固定;操作系统各分区大小固定,但可不等
  • 主存分配:给每个作业分配一个足够大的主存分区,不允许两个作业放于同一个分区
  • 数据库:存储分块表 MBT(记录存储分区情况及存储区使用状况的信息),表项含区号(存储键)、大小 size、位置与状态

第5页:存储分配算法

存储分配算法(固定分区、可变分区均适用)

  • 最佳适应法
  • 最先适应法
  • 最坏适应法

固定分区存储分配最佳方案:最佳适应法和最先适应法的结合(MBT 中各分区按照分区大小排列,最小分区放在表头)。

存储保护和重定位:存储保护用一对界地址寄存器界定作业的主存范围,重定位则把程序中的相对地址转换为绝对地址。

第6页:8.2 可变分区的多道管理技术

策略
主存事先并未划分成一块块分区,而是在作业进入主存时按作业大小建立分区,分给作业使用
特点
分区个数、分区大小均可变;主存中分布着个数、大小均是变化的自由分区或碎片
课题
如何管理已分配的和自由分区?如何实现可变分区存储的分配与释放?

第7页:可变分区的数据库组织方法

存储分块表
表长难定,查表速度慢
双表
已使用分区表(UBT)、自由分区表(FBT),可减少存储分配和释放时查找表格的长度,提高查找速度
自由存储块链
用链指针把所有自由分区链接在一起,构成一条自由存储块链,管理维护简单

第8页:双表组织的可变分区数据库

已使用分区表 UBT
区号大小位置状态
18K512K已分
232K520K已分
3——空表目
4120K584K已分
5——空表目
自由分区表 FBT
区号大小位置状态
132K552K自由
2——空表目
3520K704K自由
4——空表目
5——空表目

状态取值:空表目、已分、自由。

第9页:分配和释放算法

分配和释放算法

  • 分配:选取 size ≥ 作业大小的自由分区,分两部分——前面部分作业用,后面部分作为自由块
  • 释放:与前后自由块合并
  • 数据库:分配和释放模块对表格访问应互斥进行;数据库(临界资源)用互斥信号量 Mut,初值为 1;主存资源用进程同步信号量管理

第10页:分配示例:分配3K给新作业

分配示例:主存中操作系统占 0~4K,作业 1 占 6K~10K,作业 2 占 18K~28K,20K~28K 区间内的 3K 自由块被分给新作业,剩余部分仍为自由块。

注:本页源文本为图片抽取,分区地址与大小列为粘连文本,表格结构无法安全还原,数值以原课件图片为准。

第11页:释放示例:释放作业1

释放示例:作业 1 释放后其占用的分区归还为自由区,并与前后相邻的自由块合并,形成更大的自由分区,主存中保留作业 2、作业 3 及其余自由块。

注:本页源文本为图片抽取,分区地址与大小列为粘连文本,表格结构无法安全还原,数值以原课件图片为准。

第12页:碎片问题和存储器的紧缩

碎片问题:小的自由分区不方便再利用。以某时刻主存分布为例:操作系统占 0~60K,其后依次为作业 3(8K)、自由区(20K)、作业 4(36K)、自由区(8K)、作业 1(120K)、自由区(4K)、作业 5(478K)。

解决办法是把分散的小自由区紧缩成一大块,即存储器紧缩。

第13页:程序的浮动

程序浮动
为紧缩主存,用户程序在主存中移动
由 OS 完成
一般机器无法识别主存中程序哪些项与地址有关,无重定位词典;某些机器用硬件设施自动为每个字加上两位来指示值的类型才可以
由连接装入程序完成(静态重定位)
重新装入,但无法再记录断点,必须重新执行

第14页:8.3 动态重定位的可变分区多道管理

动态重定位

  • 将用户按相对地址编址的目标程序原封不动地装入主存分给它的分区
  • 当分配处理机时,OS 自动将该作业所在分区起址由作业表中取出,减去用户目标程序的相对基地址,得值装入定位寄存器 RR
  • 当处理机访问主存时,由地址转换器把相对地址加上 RR 中的值转换为绝对地址

第15页:动态重定位的硬件支持与紧缩时机

硬件支持

  • 定位寄存器 RR(可用一对界地址寄存器中的基址寄存器)
  • 加法器

何时进行存储器紧缩

  • 在某个分区被释放后立即进行紧缩(主动方法)
  • 当“请求分配模块”找不到足够大的自由分区分给用户时再进行紧缩(被动方法)

优点:可以消除碎片,有效利用主存空间,提高主存的利用率。

第16页:8.4 多重分区(多对界地址)管理

单分区存储管理技术
一对界地址寄存器,每个作业只占用一个分区。缺点:为解决碎片问题而进行存储器紧缩需硬件支持;不便于在进程间共享数据
多重分区存储管理技术
设置多(3~4)对界地址寄存器,并且为每个作业(或进程)分配主存的多个分区,便于共享数据、减少紧缩需求

第17页:8.5 覆盖技术

问题
当用户作业大于主存可用空间时,该作业无法运行;在多道程序环境中,为提高并行性和多道程度,每个作业所用空间往往有限
扩充内存
把进程地址空间中的信息(指令和数据)主要放在外存上,把当前需执行的程序段和数据段放在内存中
内存与外存信息交换
由操作系统或用户按覆盖结构在内存与外存之间调入调出程序段

第18页:覆盖结构示例

覆盖结构示例:本页以图示方式展示程序划分为 main(20K)与覆盖段 0、覆盖段 1、覆盖段 2,其中覆盖段 0 含 A0(30K)、B0(40K),覆盖段 1 含 A1、A2、B1,覆盖段 2 含 A3(30K)、A4(40K)等;同一覆盖段内的程序段互斥使用同一内存区域。

覆盖技术用户负担很重,且程序不宜过长,一般用于早期的操作系统。

第19页:8.6 交换技术

应用
用于小型分时系统,协调多用户多作业
方法
调度程序从进程就绪队列中挑选到某一个进程运行时,就把该进程调入主存运行一个时间片;一旦时间片到或进程因等待事件而不能运行时,它不但让出 CPU,而且也要释放出其所占有的主存空间,并把该进程的程序和数据写到外存
顶部目录