文档详情

操作系统第七章 主存管理讲解.pptx

发布:2017-04-08约1.37万字共85页下载文档
文本预览下载声明
第七章 主存管理 在多道批处理系统或分时系统中,要求在主存中同时存放多个作业或用户程序,这就需要引入存储管理。 7.2主存管理的功能 为方便用户使用,系统必须为每个用户提供0~n-1的一组逻辑地址,即用户编译时,程序访问的地址为虚地址或逻辑地址,而主存单元的地址为实地址或物理地址。 如图所示: 0 Mov r1,[500] : : 01EFH : : 逻辑地址 程序1 物理地址 m Mov r1,[500] : : 01EFH : 内存 m+500 思考:为什么用户编程时不直接使用物理地址? 主存管理的主要功能: 逻辑地址到物理地址的映射 主存的分配和回收 存储保护:保护进入主存的各道作业都在自己的存储空间内运行,互不干扰,防止一道作业由于发生错误而破坏其他作业或系统程序。 提高主存利用率:使多道程序能动态共享主存中的信息。如段式系统中,代码段是可共享的。 “扩大”主存容量:借助虚拟存储技术,为用户提供比主存空间大的地址空间。 7.3分区存储管理 分区:是指主存的某一连续空间 分区存储管理是将内存划分为若干分区,除OS占用一个分区外,其余每一个分区容纳一个作业或进程。 固定分区:将内存用户区划分为若干固定大小的区域,每个区域中驻留一道程序。 动态分区:根据用户程序的大小,动态的对内存进行划分,可以提高内存的利用率。 作业1 作业2 作业3 作业1 作业2 作业3 固定分区 活动分区 7.3.1 分区存储管理概述 可以从一下几个方面讨论分区存储管理技术: 存储保护 ①上、下界限保护 ②基址、限长保护 作业 (4KB) 20K → 24K-1 → 20K 下界寄存器 24K-1 上界寄存器 当物理地址D应该满足:20K ≦D <24K或20K ≦D ≦24K-1 ①上、下界限保护 7.3.1 分区存储管理概述 可以从一下几个方面讨论分区存储管理技术: 存储保护 ①上、下界限保护 ②基址、限长保护 作业 (4KB) 20K → 24K-1 → 20K 基址寄存器 4K 限长寄存器 当物理地址D应该满足:20K ≦D <20K+4K或20K ≦D ≦20K+4K-1 ②基址、限长保护 2、地址映射 (基址寄存器)+逻辑地址→物理地址 其中(基址寄存器)存放一个作业在主存所占分区的首地址。 0 Mov r1,[500] : : 01EFH : : 逻辑地址 程序1 物理地址 m Mov r1,[500] : : 01EFH : 内存 m+500 逻辑地址 (500) + 基址寄存器(m) → 物理地址 m+500 7.3.3分区的分配和回收 空闲区队列(自由主存队列)可以按照某种分类方法进行排序。 按分区地址的大小排序 按空闲区的大小排序 1、首次适应算法 空闲区队列中空闲区按地址从小到大排序。 例如: OS 空闲区(30KB) 作业1 空闲区(20KB) 作业2 空闲区(5KB) 作业3 空闲区(46KB) 作业A 申请18KB 自由主存队列(空闲区队列)如下:每个结点记录空闲区的大小和下一个空闲区的 首地址(指针)。 head 30KB 5KB 20KB 46KB 12KB 1、分配一个空闲区: { 扫描空闲区队列; If 申请块﹥所有空闲块,则无法分配(或拼接); If 申请块≤某一空闲块 {①则从空闲块的底部向上分配空闲区; //可以只修改空闲区的大小,而不修改空闲区队列的指针 ②如果分配之后剩余的空闲块<门限值,则将整个空闲块分配出去; } } 2、回收一个空闲块: 设r为回收区,f为空闲区 ①上邻空闲区 ②下邻空闲区 ③上、下邻空闲区 ④上、下不相邻空闲区 f r 作业 作业 r f f1 r f2 作业1 r 作业2 ① ② ③ ④ 空闲区总数不变: ①② 空闲区总数-1: ③ 空闲区总数+1: ④ 2、最佳适应算法 空闲区队列中空闲区按大小从小到大排序 例如: OS 空闲区(30KB) 作业1 空闲区(20KB) 作业2 空闲区(5KB) 作业3 空闲区(46KB) 作业A 申请18KB 自由主存队列(空闲区队列)如下: head 5K
显示全部
相似文档