操作系统概论第3章 存储管理_第1页
操作系统概论第3章 存储管理_第2页
操作系统概论第3章 存储管理_第3页
操作系统概论第3章 存储管理_第4页
操作系统概论第3章 存储管理_第5页
已阅读5页,还剩99页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、重点:各种管理方式下的地址转换;可变分区方式的主存分配算法以及移动技术;页式虚拟存储管理的实现以及页面调度算法存储器的层次结构: RegisterCache和主存和主存磁盘磁盘处理机直接访问I/O控制系统的管理 寄存器寄存器:最贵,最快,最小,每个只存储一个字长,只放临时的工作数据和控制信息 (指令寄存器, 通用寄存器,控制寄存器) 高速缓存高速缓存Cache:少量的、快速、昂贵、易变,以字节为单位编址 内存内存RAM:若干兆字节、中等速度、中等价格、易变 磁盘:磁盘:数百兆或数千兆字节、低速、价廉、不易变的 内存的作用 为什么需要存储管理?帕金森定律:你给程序再多内存你给程序再多内存,程序也

2、会程序也会想尽办法耗光想尽办法耗光 内存管理概述内存管理概述由存储单元(字节或字)组成的一维连续地址空由存储单元(字节或字)组成的一维连续地址空间,用来存放当前正在运行的程序的代码或数据,间,用来存放当前正在运行的程序的代码或数据,是程序中指令本身(程序计数器)所指向的存储是程序中指令本身(程序计数器)所指向的存储空间空间 操作系统的“方便”性便于用户装入程序,无须了解底层细节可实现动态的存储空间伸缩,适应不同程序的需要 操作系统的“合理”性合理分配内存空间,保证多道程序的顺利运行合理保护内存空间,防止各种可能的破坏泄漏 操作系统的“有效性”有效保持内存空间的可用性,防止对资源的浪费有效实现“

3、小空间大容量”,提高计算机的适应性有效配合CPU的调度过程,实现系统运行的稳定内存管理概述内存管理概述 内存空间的管理、分配和回收内存空间的使用情况记录位图、分配表、分区表内存空间的分配与回收定长与不定长、静态与动态 内存空间的地址映射(转换)物理地址与逻辑地址的差别 内存空间的共享和保护内存共享内存保护:如何防止地址越界或操作越权? 内存空间的扩充虚拟存储:如何使用小内存空间来运行大的程序?(1) 逻辑地址(相对地址,虚地址)(2) 物理地址(绝对地址,实地址)(3) 地址映射(重定位)地址映射地址映射BA=1000Load A 200 3456 。 。 1200物理地址空间物理地址空间Lo

4、ad A data1data1 3456源程序源程序Load A 200 34560100200编译连接编译连接逻辑地址空间逻辑地址空间 用户的程序经过汇编或编译后形成目标代码,目标代码通常采用相对地址的形式,其首地址为0,其余指令中的地址都相对于首地址而编址 不能用逻辑地址在内存中读取信息物理地址(绝对地址,实地址)物理地址(绝对地址,实地址)内存中存储单元的地址,可直接寻址以字节为单位进行编址 为了保证CPU执行指令时可正确访问存储单元,需将用户程序中的逻辑地址转换为运行时由机器直接寻址的物理地址,这一过程称为重定重定位位110012001300物理地址空间物理地址空间03456.LOAD

5、 A 200.0100200300.LOAD A 2003456逻辑地址空间逻辑地址空间200VR+1000BR 原因: 当程序装入内存时, 操作系统要为该程序分配一个合适的内存空间,由于程序的逻辑地址与分配到内存物理地址不一致, 而CPU执行指令时,是按物理地址进行的,所以要进行地址转换地址转换 当用户程序被装入内存时,一次性实现逻辑地址到物理地址的转换,以后不再转换(一般在连接装配时由软件完成) 在作业装入过程中随即进行的地址变换方式称为静态重定位或静态地址映射mov r1,500123mov r1,500+m12301005005990mm+100256k-1作业地址空间作业地址空间存储

6、空间存储空间m+500重定位重定位装入程序装入程序 在程序运行过程中要访问数据时再进行地址变换(即在逐条指令执行时完成地址映射。一般为了提高效率,此工作由硬件地址映射机制来完成。硬件支持,软硬件结合完成) 硬件上需要一对寄存器的支持在程序执行期间,随着每条指令和数据的访问自动地连续地进行地址映射mov r1,5001230100500599作业地址空间作业地址空间0 mov r1 , 500 1231000256k-1存储空间存储空间110015001600重定位寄存器重定位寄存器 1000500逻辑地址逻辑地址+ 静态地址映射静态地址映射 动态地址映射动态地址映射 在作业装入过程中 在程序执

7、行期间 进行地址映射 进行地址映射 需软件 需硬件地址变换机构 重定位装入程序 重定位寄存器 需花费较多CPU时间 地址变换快 不灵活 灵活 单用户系统在一段时间内,只有一个进程在内存,故内存分配管理十分简单,内存利用率低 内存分为两个区域,一个供操作系统使用,一个供用户使用 单道运行的计算机系统 存储保护:界限寄存器 分时系统:对换方式 静态定位方式 最简单的管理方式(只有分配与回收)最简单的管理方式(只有分配与回收)操作系统和用户程序共享操作系统和用户程序共享RAMRAM除了嵌入式系统外,其他的计算机不再使用这种方式除了嵌入式系统外,其他的计算机不再使用这种方式内存管理概述内存管理概述用户

8、程序用户程序RAM中的OS用户程序用户程序ROM中的OS用户程序用户程序RAM中的OSROM:DEV早期大型机早期大型机使用的内存使用的内存管理方式管理方式少数掌上电脑少数掌上电脑和嵌入式系统和嵌入式系统使用的内存管使用的内存管理方式理方式早期早期PC使用使用的内存管理方的内存管理方式(式(MS-DOS)系统把内存用户区划分为若干分区,系统把内存用户区划分为若干分区,分区大小可以相等,也可以不等。一分区大小可以相等,也可以不等。一个进程占据一个分区个进程占据一个分区固定分区固定分区可变分区可变分区 每个分区的大小可以相同也可以不同,但分区个数固定不变 每个分区装一个且只能装一个作业 存储分配:

9、如果有一个空闲区, 则分配给进程 如何实现内存的分配与回收?已知内存分区数为已知内存分区数为N N,已知进程数为,已知进程数为M M,如何分配内存?,如何分配内存?关于回收:关于回收:OSOS维护的内存分区表中应该有哪些信息?维护的内存分区表中应该有哪些信息? 内存地址映射与存储保护重定位问题与保护:物理地址和逻辑地址的映射关系重定位问题与保护:物理地址和逻辑地址的映射关系 内存空间的扩充,提高主存空间利用率使用固定分区的形式可以实现内存的扩充吗?使用固定分区的形式可以实现内存的扩充吗? 如何知道那个分区被占用,那个空闲分区分配表分区分配表: :说明各区的分配和使用情况说明各区的分配和使用情况

10、 分区分配表分区号分区号, ,起始位置起始位置, ,长度长度, ,占用标志占用标志 内存的分配和回收修改标志位修改标志位分区号分区号 起始地址起始地址长度长度占用标志占用标志 地址转换:静态重定位(在调入内存时直接修在调入内存时直接修改指令改指令) 存储保护: 引入界限寄存器(下限寄存器,上限寄存器) 下限寄存器=绝对地址上限寄存器 每个作业占用一个分区,且只占用一部分 提高主存利用率: 根据经常出现的作业的大小和数量来划分分区 划分分区时,按分区的大小顺序排列.找到一个能满足作业要求的最小空闲分区分配给作业. 按作业对主存要求排成多个队列:能有效防止小作业进入大分区分区分区4分区分区3分区分

11、区2分区分区1操作系统操作系统多个输入队列多个输入队列单个输入队列单个输入队列分区分区4分区分区3分区分区2分区分区1操作系统操作系统700K400K100K0 可能出现的作业大小 作业频率 划分不当:某个作业队列长期为空,影响分区的使用效率 基本思想: 内存不是预先划分好的 作业装入时,根据作业的需求和内存空间的使用情况来决定是否分配 若有足够的空间,则按需要分割一部分分区给该进程;否则令其等待内存空间- 分区的长度不是预先确定的,按需划分- 分区的个数也不是预先确定的,是由装入的作业数决定的 内存的分配 根据作业对主存的需要量,从空闲区划出一个与作业一致长度的分区来装入作业,剩余部分认为空

12、闲区 当空闲区能满足需求时,作业可装入;超过,作业暂时不能转入 20KB 0 os 作业作业1 作业作业2 作业作业3 作业作业4 52KB66KB130KB230KB256KB 1主存主存20KB 0 os 作业作业1 作业作业2 作业作业3 52KB66KB130KB256KB 1主存主存20KB 0 os 作业作业1 52KB256KB 1主存主存 0 os 256KB 1主存主存20KB20KB 0 os 作业作业1 作业作业2 52KB66KB256KB 1主存主存作业作业1申请申请 32KB作业作业2申请申请 14KB作业作业3申请申请 64KB作业作业4申请申请 100KB作业作

13、业5申请申请 50KB 内存的回收: 当作业结束时,它的占用分区被收回。这个空闲区又可以根据新作业的大小重新用于分配,所以主存中的已占分区和空闲区的数目和大小都是在变化的 可以用 “空闲区表”来记录和管理:记录空闲区的起始地址和长度 20KB 0 os 作业作业1 作业作业2 作业作业3 作业作业4 52KB66KB130KB230KB256KB 1主存主存20KB 0 os 作业作业1 作业作业2 作业作业3 作业作业4 52KB66KB130KB230KB256KB 1主存主存20KB 0 os 作业作业1 作业作业2 作业作业3 作业作业4 52KB66KB130KB230KB256KB

14、 1主存主存作业作业2完成完成作业作业4完成完成 分区的分配与回收分区的分配与回收 1. 分区分配分区分配 用户请求分配一个主存块 分区分配程序在空闲块队列中找一个满足找一个满足用户需要的空闲块;用户需要的空闲块; 若找到,以空闲块与请求的主存块大小之间的关系进行相应的处理,并返回所分配区域的首址; 否则,告之不能满足要求 主存分配策略主存分配策略 首次匹配(最先适应分配算法) 最佳匹配(最优适应分配算法) 最坏匹配(最坏适应分配算法) 首次适应算法首次适应算法 (1) 什么是首次适应算法什么是首次适应算法 首次适应算法是将输入的作业放置到主存里第一个足够装入它的可利用的空闲区中 (2) 特点

15、特点 空闲区地址由低到高排序 尽可能地利用存储器中低地址的空闲区,而尽量保存高地址的空闲区 最佳适应算法最佳适应算法 (1) 什么是最佳适应算法什么是最佳适应算法 最佳适应算法是将输入的作业放置到主存中与它所需大小最接近的空闲区中 (2) 特点特点 空闲区大小由小到大排序 尽可能地利用存储器中小的空闲区,而尽量保存大的空闲区 最坏适应算法最坏适应算法 (1) 什么是最坏适应算法什么是最坏适应算法 最坏适应算法是将输入的作业放置到主存中最不适合它的空闲区中 (3) 特点特点 空闲区大小由大到小排序 尽可能地利用存储器中大的空闲区2. 分区回收分区回收 回收主存块的四种情况回收主存块的四种情况 r

16、 上邻空闲区上邻空闲区rf1作业作业2 r 上下邻空闲区上下邻空闲区rf1f2 r 上下邻已分配区上下邻已分配区r作业作业1作业作业2 r 下邻空闲区下邻空闲区r作业作业1f2 回收分区回收分区r 上邻空闲区上邻空闲区 rf1作业作业2 f1作业作业2r与与 f1 合并合并成为一个大的空闲区成为一个大的空闲区f1 回收分区回收分区r 下邻空闲区下邻空闲区r与与 f2 合并合并成为一个大的空闲区成为一个大的空闲区f2 作业作业1f2 r作业作业1f2SS+LSS 回收分区回收分区r 上、下邻空闲区上、下邻空闲区r与与 f1 、 f1 合并合并成为一个大的空闲区成为一个大的空闲区f1 回收分区回收

17、分区r 上、下邻分配区上、下邻分配区r 成为一个成为一个新的空闲区新的空闲区 f rf1f2 f1 r作业作业1作业作业2 f作业作业1作业作业2 采用动态重定位方式装入作业,也就是每读一条指令,都要变换一次地址 变换要靠硬件支持,主要是两个寄存器:基址寄存器,限长寄存器以及加法线路,比较线路 基址寄存器基址寄存器则存放作业所占分区的起始地址,限长寄存器限长寄存器存放作业所占分区的最大地址,这两个值确定了一个分区的位置和大小 P49 图313 转换时根据将逻辑地址加上基址寄存器中的值就得到了绝对地址 基址寄存器内容绝对地址33级,最外层页表常驻内级,最外层页表常驻内存存 有利于主存的利用 地址

18、转换时,增加访问主存的次数,影响执行速度 使用高速缓存来加速一一. 段式地址空间段式地址空间 1. 什么是段什么是段 分段是程序中自然划分的一组逻辑意义完整的信息集合 分段的例:代码分段、数据分段、栈段 2. 作业地址空间作业地址空间 由若干个逻辑分段组成,每个分段有自己的名字,对于一个分段而言,它是一个连续的地址区 3. 段式地址空间段式地址空间 code_addr4KB10代码分段data_addr3KB10数据分段stack_addr2KB10栈段 段 号 s 段 内 位 移 w二二. 段式地址变换段式地址变换 长度 基址 L B s w -B+w第S段段号段内位移段式地址变换的步骤如下: 取出程序地址(s,w) 用s检索段表 如w0或wL则主存越界 (Bw)即为所需主存地址三三. 页式系统与段式系统的区别页式系统与段式系统的区别 1. 用户地址空间的区别用户地址空间的区别 页式系统中用户地址空间 一维地址空间一维地址空间 段式系统中用户地址空间 二维地址空间维地址空间 2. 分段与页面的区别分段与页面的区别 分段分段 页面页面 信

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论