操作系统原理 第四章 存储器管理.ppt_第1页
操作系统原理 第四章 存储器管理.ppt_第2页
操作系统原理 第四章 存储器管理.ppt_第3页
操作系统原理 第四章 存储器管理.ppt_第4页
操作系统原理 第四章 存储器管理.ppt_第5页
免费预览已结束,剩余121页可下载查看

下载本文档

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

文档简介

2007-8-1515:26,操作系统|内存管理,1,第4章内存管理,内存管理机制分区管理页面管理段管理虚拟内存请求页面管理的概念页面替换算法请求段管理,2007-8-1515:26,操作系统|内存管理,2,4.1内存管理概述,内存管理分配的目的和主内存的恢复记住每个内存位置的状态。当应用系统程序或用户作业时,分配被实现并且分配记录被修改。接受系统或用户释放的存储区域,或主动撤回不再使用的存储区域,并相应修改分配记录表。2007-8-1515:26,操作系统|内存管理,3,提高内存利用率“扩展”内存容量信息保护,4.1内存管理概述,2007-8-1515:26,操作系统|内存管理,4,内部和外部数据传输的控制用户程序控制操作系统交换:操作系统将等待在内存中的进程和就绪进程交换到内存中。Ondemand and Onprefetch),4.1存储管理概述,2007-8-1515:26,操作系统|内存管理,5,内存管理的内容分发结构:放置策略:交换策略:调入策略:回收策略:4.1存储管理概述,2007-8-1515:26,操作系统|内存管理,6,共享和保护内存信息保护上限和下限保护密钥方法为每个受保护的内存块分配单独的保护密钥。相应的开关字段在程序状态字中设置。不同的过程值是不同的,只有匹配时才能执行访问。边界寄存器与用户模式和中央处理器的核心模式相结合。用户模式进程只能访问边界寄存器指定范围内的存储器部分,而核心模式进程可以访问整个存储器地址空间。4.1存储管理概述,2007-8-1515:26,操作系统|内存管理,7,4.2程序的加载和链接,2007-8-1515:26,操作系统|内存管理,8,绝对编程编译器生成绝对地址目标代码,加载程序根据加载模块中的地址将程序和数据加载到内存中。2007-8-1515:26,操作系统|内存管理,9,2。可重定位加载模式重定位:在加载过程中修改目标程序中指令和数据地址的过程。4.2程序的加载和链接,Load1,12500,2007-8-1515:26,操作系统|内存管理,10,静态地址重定位:指作业加载后立即进行的地址转换模式,由汇编程序完成。优点:无需添加硬件地址转换机制;实现很简单。缺点:程序在找到地址后无法移动;程序只能在存储空间中连续分配。多个用户很难共享存储在内存中的同一个程序。4.2程序加载和链接,2007-8-1515:26,操作系统|内存管理,11,3。动态加载在程序执行期间,当访问指令或数据时,地址转换方法被称为动态重定位。它是通过硬件地址转换机制实现的。基址寄存器(重定位寄存器)虚拟地址寄存器虚拟地址地址。它为实现虚拟存储提供了基础。这有利于节目片段的共享。4.2程序加载和链接,2007-8-1515:26,操作系统|内存管理,12,4.2程序加载和链接,2007-8-1515:26,操作系统|内存管理,13,程序链接静态链接:将每个模块和库功能链接到一个汇编模块中,并且将来不会被拆卸。加载期间的动态链接:当每个目标模块加载到内存中时,在加载时链接。运行时动态链接:仅在程序执行期间链接模块。4.2程序加载和链接,2007-8-1515:26,操作系统|内存管理,14,4.3连续分配内存管理模式,单个连续分配内存分配和恢复策略优点简单管理,不需要特殊硬件支持;为了防止操作系统被损坏,设置了一个限制寄存器;这很容易实现。2007-8-1515:26,操作系统|内存管理,15,缺点低内存利用率和缺乏灵活性,程序需要更少的内存,否则提供覆盖。一些系统的安全性很差。非共享信息的CPU利用率低,周转时间长。4.3连续分配存储管理模式,2007-8-1515:26,操作系统|内存管理,16,固定分区原则当系统生成时,内存被分成几个分区,每个分区的大小可以不同,一旦划分,就不能改变。系统管理和控制内存,并通过分区描述表解释每个区域的区号、大小、起始地址和状态。功能允许多个作业共享内存,但是管理简单,内存利用率太低,并且它适用于工作负载明确的作业。4.3连续分配存储管理模式,2007-8-1515:26,操作系统|内存管理,17,4.3连续分配存储管理模式,2007-8-1515:26,操作系统|内存管理,18,4.3连续分配存储管理模式,2007-8-1515:26,操作系统|内存管理,19,动态分区工作原理存储空间的分区在加载期间执行数据结构自由分区表:序列号、大小、起始地址、状态自由分区链:附加表信息、状态(0,1)、大小、指针(仅适用于空白分区),4.3连续分配存储管理模式,2007-8-1515:26,操作系统|存储管理,20,4.3连续分配存储管理模式,2007-8-1515:26,操作系统|内存管理,21,4.3连续分配内存管理模式,2007特点:尽量使用低端地址,以保持高地址部分的大空闲区域;在低地址部分有许多小的空白区域,这增加了搜索时间的成本。循环优先自适应算法从最后搜索位置的下一个空闲分区进行搜索。空闲分区分布均匀,搜索时间缩短,但是系统缺少大的空闲分区。4.3存储管理模式的连续分配,2007-8-1515:26,操作系统|存储管理,23,最佳适应算法空白区域按大小递增顺序链接在一起。变量FREE中的开始指针总是指向最小的空白区域。特点:平均搜索时间少;选择最合适的空白区域。形成许多小碎片;找到一个大的空白区域要慢一些。恢复需要时间和时间;首先拼接,然后将该区域插入适当的位置。最坏情况自适应算法的空白区域按容量降序排列。特点:时间分配快;剩余的空白分区仍然可用;每个空白区域相对均匀地减少,并且经过一段时间的工作,它不能满足大空白区域的要求。恢复困难。4.3连续分配存储管理模式,2007-8-1515:26,操作系统|存储管理,24,算法分析功能:帮助多渠道编程;存储保护只需要边界地址寄存器;该算法简单易行。但是它会产生碎片并降低内存的利用效率。分区的大小受内存容量的限制。几种算法的比较:搜索速度、释放速度和自由区域利用率。4.3连续分配存储管理模式,2007-8-1515:26,操作系统|存储管理,25,分区分配在未分配表中找到足够大的空白分区;如果它大于工艺要求,它分为两部分;4.3连续分配存储管理模式,2007-8-1515:26,操作系统|存储管理,26,分区回收检查回收的分区是否与空白区域相邻,如果是,合并,上相邻,下相邻,上和下相邻。2007-8-1515:26,操作系统|内存管理,27,伙伴系统,4.3连续分配内存管理,2007-8-1515:26,操作系统|内存管理,28,4.3连续分配内存管理,2007-8-1515:26,操作系统|内存管理,29,可重定位分区分配,4.3连续分配内存管理模式,2007-8-8这些单元号被称为逻辑加法实现动态重定位技术:当访问指令或数据时,通过重定位寄存器来自动修改要访问的存储器的地址。2007-8-1515:26,操作系统|内存管理,31,2007-8-1515:26,操作系统|内存管理,32,动态重定位分区分配算法,2007-8-1515:26,操作系统|内存管理,33,压缩内存当一个分区被回收时,如果它不与空白区域相邻,它将立即压缩内存。当找不到足够大的空间进行作业分配时,就会出现紧凑内存。4.3连续分配存储管理模式,2007-8-1515:26,操作系统|内存管理,34,交换技术将内存中暂时不活动的进程或暂时未使用的数据交换(swap)到外部存储,将已经具备操作条件的进程或进程所需的数据和程序交换到内存中,并将控制权转移到内存。全交换(process swap):用于分时系统,解决内存不足的问题。部分交换(页面交换、段交换):基于请求分页和请求段存储管理,用于支持虚拟存储系统。4.3存储管理模式的连续分配,2007-8-1515:26,操作系统|存储管理,35,交换空间的管理文件区:提高存储空间利用率的离散分配;交换区:连续分配以提高交换速度。交换空间的分配和恢复:注意自由区域拼接交换区域的分配算法:优先自适应算法、循环自适应算法和最优自适应算法。2007-8-1515:26,操作系统|内存管理,36,换入和换出消息M包括:分区号I,基本基I,长度大小I,方向和外部内存交换区中的分区起始地址。SWAPINBeginlocalmm.base=baseim .上限=basei sizeim.direction= inm.source=backupstorebasei发送(m,I),设备队列);结束,4.3连续分配存储管理模式,2007-8-1515:26,操作系统|存储管理,37,交换(I)开始本地数据库=基础;m .上限=basei sizeim.direction= outm . destination=baseoffreeareonswaparea;backup store basei=m . destination;发送(m,I),设备队列);结束,4.3连续分配存储管理模式,2007-8-1515:26,操作系统|存储管理,38,4.4基本分页存储管理,基本原理实现方法每个进程的地址空间被分成大小相同的页面,内存的存储空间也被分成大小相同的页面,称为物理块。分配存储空间时,以块为单位进行分配。页面大小:2i(1K、2K、4K等。),2007-8-1515:26,操作系统|内存管理,39,2007-8-1515:26,操作系统|内存管理,40,分页管理内存地址结构,页号p,偏移量W,0,12,11,31。如果逻辑空间地址为a,页大小为l,则:页号p:页内地址d:2007-8-1515:26,操作系统|内存管理,41,4.4基本分页存储管理,2007-8-1515:26,操作系统|内存管理,42,4.4基本分页存储管理,2007-8-1515:26,操作系统|内存管理,43,4.4地址转换页表使用动态重定位技术为作业的每一页设置重定位寄存器。这些寄存器组成一个称为页表的组。其中一个条目是主存中页面的块号。一些存储单元专门分配在主存储器中以存储页表。页表起始地址和长度存储在控制寄存器中。大小页表页表起始地址的选择为了根据页表起始地址和页码快速找到所需的相应条目,页表的起始地址应为2的幂。4.4 basic paging storage management,2007-8-15153:26,operating system | memory management,46,address translation page number p page address W3112110 find address translation(p,w) 3354 (b,w) 3354(实际地址)当开始(或恢复)操作时,系统将页表起始地址和页表长度放入控制寄存器。4.4基本分页存储管理,2007-8-1515:26,操作系统|内存管理,47,地址映射机制,页号块号访问控制,页描述符,如果页号页表长度,中断,否则继续。如果访问非法,中断,否则继续。页号偏移量、虚拟地址LA、块号偏移量、物理地址、页表起始地址长度、页表寄存器PTR、页表、块号访问控制、页描述符、页号01、块号、偏移量、2007-8-1515:26、操作系统|内存管理,48根据从页表获得的逻辑地址100的物理地址:指令地址=2*1024 100=2148执行:2500=2500页码页码帧号(块号)021328指令:100加载1 1,2500地址转换过程为:2007-8-1515:26,操作系统|内存管理,49,快速表关联内存用于加速表查找。在地址转换机制中增加了一个具有并行查询能力的高速、小容量的关联存储器,以形成一个快速表来存储运行进程的当前页号和块号。在快速表中找到它,并直接执行地址转换。如果没有找到,继续在内存页主表中查找,并将找到的页码和块号放入关联内存的空闲单元中,如果没有找到,先删除加载的页码。4.4基本分页存储管理,2007-8-1515:26,操作系统|内存管理,50,在缓存中查找页面描述符,并在找到时提取它。快速手表的命中率可高达80%-90%。物理地址是通过使用页描述符和位移来计算的,位移在缓存中找不到,从页表中读取并存储在缓存中。使用页面描述符和偏移量计算物理地址,页面号偏移量,虚拟地址,275382。首先,访问缓存以确定其中是否有所需的页面描述符,如果没有,则访问内存中的页面表。同时,从页面表中读取的

温馨提示

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

评论

0/150

提交评论