欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    操作系统课件-第3章存储管理.ppt

    • 资源ID:6438026       资源大小:1.90MB        全文页数:112页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    操作系统课件-第3章存储管理.ppt

    第三章 存储管理,什么是存储管理?存储器介绍连续存储空间管理固定分区存储管理可变分区存储管理分页式存储管理分段式存储管理虚拟存储管理,存储空间的分类与性质,讲在前面存储管理目的,操作系统的“方便性”便于用户装入程序,无须了解底层细节可实现动态的存储空间伸缩,适应不同程序的需要操作系统的“合理性”合理分配内存空间,保证多道程序的顺利运行合理保护内存空间,防止各种可能的破坏泄漏操作系统的“有效性”有效保持内存空间的可用性,防止对资源的浪费有效实现“小空间大容量”,提高计算机的适应性有效配合CPU的调度过程,实现系统运行的稳定,讲在前面存储管理功能,内存的管理、分配与回收内存空间的使用情况记录位图、分配表、分区表内存空间的分配与回收定长与不定长、静态与动态地址重定位(地址映射)物理地址与逻辑地址的差别实模式与保护模式共享与保护内存共享:进程与线程、中间件应用内存保护:如何防止地址越界或操作越权?内存的扩充虚拟存储:如何使用小内存空间来运行大的程序?,讲在前面地址空间,程序的名空间用户编程所用的地址称为逻辑地址(或程序地址,或虚地址)。由逻辑地址组成的空间称为逻辑地址空间(或程序地址空间)。内存的每个存储单元都有一个编号,这种编号称为内存地址(或称为物理地址,绝对地址)。内存地址的集合称为内存空间(或物理地址空间)。,源程序经过汇编或编译后,形成目标程序,每个目标程序都是以0为基址顺序进行编址的,原来用符号名访问的单元用具体的数据单元号取代.这样生成的目标程序占据一定的地址空间,称为作业的逻辑地址空间,简称逻辑空间。在逻辑空间中每条指令的地址和指令中要访问的操作数地址统称为逻辑地址。,讲在前面地址空间,把内存分成若干个大小相等的存储单元,每个单元给一个编号,这个编号称为内存地址(物理地址、绝对地址、实地址),存储单元占8位,称作字节(byte)。物理地址的集合称为物理地址空间(主存地址空间),它是一个一维的线性空间。逻辑地址物理地址基址,3.1 程序的装入与链接,程序的执行过程编译:源代码形成(多个)目标模块链接:链接相关库函数,形成装入模块装入:装入内存运行,3.1.1 程序的装入,绝对装入方式可重定位装入方式动态运行时装入方式,逻辑地址与实际内存地址一致适用于单道程序环境,3.1.1 程序的装入,绝对装入方式可重定位装入方式动态运行时装入方式,把用户程序装入内存时对有关指令的地址部分的修改定义为从程序地址到内存地址的地址映射,或称为地址重定位。,静态地址映射,动态地址映射,3.1.1 程序的装入,静态地址映射(静态重定位)程序被装入内存时,由操作系统的连接装入程序完成程序的逻辑地址到内存地址的转换。假定程序装入内存的首地址为BR,程序地址为VR,内存地址为MR,则地址映射按下式进行:MR=BR+VR。例如,程序装入内存的首地址为1000,则装配程序就按MR=1000+VR对程序中所有地址部分进行修改,修改后指令Load A,200就变为Load A,1200,优点:不需要硬件的支持。缺点:程序必须占用连续的内存空间,一旦程序装入后不能移动。,3.1.1 程序的装入,动态地址映射(动态重定位)动态地址重定位是在程序执行的过程中,每次访问内存之前,将要访问的程序地址转换为内存地址。一般来说这种转换是由专门的硬件机构来完成的。最简单的硬件机构是重定位寄存器。在地址重定位机构中,有一个基地址寄存器BR和一个程序地址寄存器VR,一个内存地址寄存器MR。,3.1.1 程序的装入,动态地址映射(动态重定位)过程描述:程序装入内存后,它所占用的内存区的首地址由系统送入基地址寄存器BR中。在程序执行的过程中,若要访问内存,将访问的逻辑地址送入VR中。地址转换机构把VR和BR中的内容相加,并将结果送入MR中,作为实际访问的地址。,3.1.1 程序的装入,动态地址映射(动态重定位)优点:程序占用的内存空间是动态可变的,当程序从某个存储区移到另一个区域时,只需要修改相应的寄存器BR的内容即可。一个程序不一定要求占用一个连续的内存空间。可以部分地装入程序运行。便于多个进程共享同一个程序的代码。,3.1.1 程序的装入,动态地址映射(动态重定位)缺点:需要硬件的支持。实现存储管理的软件算法较为复杂。,存储保护,上、下界存储保护:上、下界保护是一种简单的存储保护技术。系统可为每个作业设置一对上、下界寄存器,分别用来存放当前运行作业在内存空间的上、下边界地址,用它们来限制用户程序的活动范围。基址限长存储保护:上、下界保护的一个变种是采用基址-限长存储保护。,上下界保护,基址限长保护,连续存储空间管理,每个程序(作业)占据主存中连续的空间,按管理方式的不同分为:单用户连续存储管理固定分区存储管理可变分区存储管理,3.2.1 单用户连续存储管理,又称单分区模式,适用于单用户情况,任何时刻主存储器中最多只有一道程序主存空间划分为系统区和用户区地址转换与存储保护:地址转换:物理地址=界限地址+逻辑地址多采用静态重定位,采用栅栏寄存器进行存储保护动态重定位,采用定位寄存器进行存储保护单用户连续存储管理的缺点:同单道程序的缺点,系统利用率低,3.2.2 固定分区存储管理,单用户存储方式每次只能装一个作业,浪费大把整个内存划分为若干大小不等的区域,操作系统占用一个区域,其它区域供系统中的多个进程共享,这种方法称为分区存储管理,可满足多道程序设计。这是最简单的一种存储管理,按分区划分的时机可分为:固定分区分配动态分区分配,3.2.2 固定分区分配,早期支持多道程序的管理方式将用户可使用内存区划分为固定大小,根据作业长度分配内存(分区大小可相等也可不等)支持多道程序的大型机使用,目前几乎不再使用,3.2.2 固定分区分配,有n个分区,则可同时装入n个作业/任务。分区大小:相等不相等,利用率较高(为什么?)内存分配:数据结构 将分区按大小排序,并将其地址、分配标识作记录特点:简单有碎片(内零头),3.2.2 固定分区分配,100K,180K,300K,350K,分配情况,500K,分区说明表,0,课本 P106,性能分析 在作业大小和出现频率均已知的情况下,固定分区是合适的。在这种情况下分区的大小选择与作业大小相当,这样内存的使用效率较高。但是若作业的大小和出现的频率不知道时,势必造成分区的大小和作业的大小相差甚远,这样就会造成存储空间的浪费,从而影响整个系统的效率。,3.2.2 固定分区分配,内存分配与回收多队列最优适配、最小适配、合理适配(种种变化)内存回收机制非常简单,只需要进行分区表操作内存地址的重定位与保护最简单的策略:在调入内存时直接修改指令最严格的办法:密码校验,PSW的使用最普遍的做法:引入硬件基址和界限存储器,3.2.2 固定分区分配,比较适合已知程序(作业)大小和出现频率的情形缺点:实际系统运行时,往往无法预知分区大小(太大,等同于“单用户分区模式”)主存空间利用率仍然较低无法适应动态扩充主存分区数目预先确定,限制了多道运行程序的数量,3.2.3 动态分区分配(可变分区),在系统运行的过程中建立分区,并使分区的大小刚好与作业的大小相等。系统在作业装入主存执行之前并不建立分区。可解决固定分区严重浪费内存的问题。是一种较为实用的存储管理方法。要解决的问题数据结构分区分配算法分区分配操作,3.2.3 动态分区分配,可变分区存储管理示例,OS(8K),Job1(15K),Job2(40K),Job3(10K),Job4(30K),Job1到达内存,Job2到达内存,Job3到达内存,Job2完成,Job4到达内存,8k,23k,53k,63k,73k,3.2.3 动态分区分配,数据结构在动态分区存储管理中,要有相应的数据结构来登记空闲区的说明信息,它包括空闲区的大小和位置。不同系统根据设计要求采用不同的结构。常用的有表结构和队列结构。系统还要设置了等待分区队列,当系统中无空闲区或无满足要求的空闲区时,则把申请者送入等待队列中,等待别的进程释放内存之后再唤醒队列中的进程。,3.2.3 动态分区分配,采用的数据结构分配表用于记录主存的动态分配信息,由“已分配区表”和“未分配区表”组成。,已分配区表,未分配区表,3.2.3 动态分区分配,分配算法在采用分区存储管理的系统中,系统初启后。除操作系统占用一个分区外,其余存储区为一个大的空闲区。分区的分配是指系统根据用户的请求,在空闲区表或空闲区队列中寻找一个满足用户要求的空闲区,把这个空闲区分配给用户。以空闲区表为例,当用户要求一个大小为SIZE的存储空间时,系统查询空闲区表,找一个大于或等于SIZE的空闲区。,3.2.3 动态分区分配,分配算法空闲区表或队列的排序按空闲区首址递增的次序按空闲区大小的递增或递减次序,3.2.3 动态分区分配,分区分配的三种情况,系统中无满足要求的空闲区,则分配失败。,空闲区大小与SIZE相等,则修改空闲区表相应表目,向用户返回该空闲区首址,表示此空闲区已分给了要求的用户。,空闲区大于SIZE,这时将空闲区一分为二。,策略一:从空闲区的上部开始划出SIZE大小的空闲区给用户;策略二:从空闲区的底部开始向上划出SIZE大小的空闲区给用户。一般常采用第二种办法,因为这样划分时,余下的部分在空闲区表中的首地址不变,只需要修改一下大小就行了。,3.2.3 动态分区分配,分区分配的算法,首次适应算法FF:原理、优点、缺点要求空闲区按首址递增的次序组织空闲区表(队列),循环首次适应算法:原理、优点、缺点,最佳适应算法:原理、优点、缺点要求按空闲区大小从小到大的次序组成空闲区表(队列)。,最坏适应算法:原理、优点、缺点要求空闲区按大小递减的顺序组织空闲区表(或队列)。,3.2.3 动态分区分配,分区分配的算法:首次适应法(地址递增顺序)分配:当进程申请大小为SIZE的内存时,系统从空闲区表的第一个表目开始查询,直到首次找到等于或大于SIZE的空闲区。从该区中划出大小为SIZE的分区分配给进程,余下的部分仍作为一个空闲区留在空闲区表中,但要修改其首址和大小。回收:按释放区的首址,查询空闲区表,若有与释放区相邻的空闲区,则合并到相邻的空闲区中,并修改该区的大小和首址,否则,把释放区作为一个空闲区,将其大小和首址按照首地址大小递增的顺序插入到空闲区表的适当位置。,3.2.3 动态分区分配,分区分配的算法:首次适应法(地址递增顺序)注意:每次分配和回收后空闲区表或空闲区队列都要按首址递增的次序排序。首次适应法的优点:释放某一存储区时,若与空闲区相邻则合并到相邻空闲分区中去,这种情况并不改变该区在表中的位置,只要修改其大小或首址。尽可能地利用低地址空间,保证高地址空间有较大的空闲区。,3.2.3 动态分区分配,分区分配的算法:首次适应法(地址递增顺序)首次适应法的缺点:造成较多的主存“碎片”循环首次适应算法:每次分配时,是从上次分配的空闲区的下一条记录开始顺序查找空闲分区表,3.2.3 动态分区分配,分区分配的算法:最佳适应法(长度递增顺序)分配:当进程申请一个存储区时,系统从表头开始查找,当找到第一个满足要求的空闲区时,停止查找,并且这个空闲区是最佳的空闲区。所谓最佳即选中的空闲区是满足要求的最小空闲区。回收:按释放区的首址,查询空闲区表(队列),若有与释放区相邻的空闲区,则合并到相邻的空闲区中,并修改该区的大小和首址,否则,把释放区作为一个空闲区插入空闲区表(队列)。分配和回收后要对空闲区表(队列)重新排序。,3.2.3 动态分区分配,分区分配的算法:最佳适应法(长度递增顺序)优点:在系统中若存在一个与申请分区大小相等的空闲区,必定会被选中,而首次适应法则不一定。若系统中不存在与申请分区大小相等的空闲区,则选中的空闲区是满足要求的最小空闲区,而不致于毁掉较大的空闲区。缺点:空闲区的大小一般与申请分区大小不相等,因此将其一分为二,留下来的空闲区一般情况下是很小的,以致无法使用。随着时间的推移,系统中的小空闲区会越来越多,从而造成存储区的大量浪费。,3.2.3 动态分区分配,分区分配的算法:最坏适应法(长度递减顺序)分配:把空闲区按长度递减的次序登记在空闲表中,每次分配时挑选一个最大的空闲区给作业使用。回收:按释放区的首址,查询空闲区表(队列),若有与释放区相邻的空闲区,则合并到相邻的空闲区中,并修改该区的大小和首址,否则,把释放区作为一个空闲区插入空闲区表(队列)。分配和回收后要对空闲区表(队列)重新排序。,3.2.3 动态分区分配,分区分配的算法:最坏适应法(长度递减顺序)最坏适应法看起来公似乎有些荒唐,但在更加严密地考察后,还是有它的优点:当程序装入内存中最大的空闲区后,剩下的空闲区还可能相当大,还能装下较大的程序。另一方面每次仅作一次查询工作。,3.2.3 动态分区分配,分配算法的分析分配算法各有利弊,到底哪种最好不能一概而论,而应针对具体作业序列来分析。对于某一作业序列来说,某种算法能将该作业序列中所有作业安置完毕,那么我们说该算法对这一作业序列是合适的。对于某一算法而言,如它不能立即满足某一要求,而其它算法却可以满足此要求,则这一算法对该作业序列是不合适的。,3.2.3 动态分区分配,例1:有作业序列:作业A要求18K;作业B要求25K,作业C要求30K。系统中空闲区按不同算法组成的空闲区队列经分析可知:最佳适应法对这个作业序列是合适的,而其它算法对该作业序列是不合适的。,3.2.3 动态分区分配练习,有作业序列:作业A要求21K;作业B要求30K,作业C要求25K。,3.2.3 动态分区分配,碎片问题由于空闲区的大小与申请内存的大小相等的情况是很少的,绝大多数情况是从一个空闲区中切去一块,剩下的部分作为一个空闲区仍留在空闲区表中,随着时间的推移,空闲区的发展趋势是越来越小,直至不能满足任何用户要求。这种不能被任何用户使用的极小的空闲区称为碎片。碎片的出现造成了存储空间的浪费。,解决方案 规定门限值(由操作系统规定,如1K),分割空闲区时,若剩余部分小于门限值,则不再分割此空闲区。定期压缩存储空间,将所有空闲区集中到内存的一端,但这种方法的系统开销太大。,3.2.3 分区回收,当一个作业运行结束后,在已分分区表中找到该作业,根据该作业所占主存的始址和大小,修改空闲分区表中相应的记录。其修改情况分为4种:(1)上邻空闲区:合并,改大小(2)下邻空闲区:合并,改大小,首址。(3)上、下邻空闲区:合并,改大小。(4)不邻接,则建立一新表项。课本P112 图3-14,3.2.4 动态分区存储管理实现,地址转换和存储保护设置两个专门的寄存器基址寄存器,存放分区的起始地址限长寄存器,存放分区的长度移动技术将分散的空闲区“拼接”成一个较大的空闲区,以利于大作业的执行移动技术实现复杂,不可避免地导致管理开销增大对换技术把暂时不用的某个程序及数据的一部分或全部从内存移到外存中去,或把指定的程序或数据从外存读到相应的内存中整体对换、页面对换,习题,1、下表给出了某系统的空闲分区表,系统采用可变分区存储管理策略,现有作业序列:96k,20k,200k。若用首次适应算法和最佳适应算法处理该作业序列,那种可以满足该序列的请求?,2、存储分配解决多道作业()的划分问题。为了解决静态和动态存储分配,需采用地址重定位,即把()变换成(),静态重定位由()实现,动态重定位由()实现。:地址空间 符号名空间 主存空间 虚拟空间、:页面地址 段地址 逻辑地址 物理地址 外存地址 设备地址:硬件地址变换机构 执行程序 汇编程序 连接装入程序 调试程序 编译程序 解释程序,3、提高主存利用率主要是通过()功能实现的。()的基本任务是为每道程序做();使每道程序能在不受干扰的环境下运行,主要是通过()功能实现的。、:主存分配 主存保护 地址映射 对换 主存扩充:逻辑地址到物理地址的变换;内存与外存间的交换;允许用户程序的地址空间大于内存空间;分配内存,4、静态重定位是在作业的()中进行的,动态重定位是在作业的()中进行的。、:编译过程;装入过程;修改过程;执行过程5、由固定分区方式发展为分页存储管理方式的主要推动力是();由分页系统发展为分段系统,进而以发展为段页式系统的主要动力分别是()和()。:提高主存的利用率;提高系统的吞吐量;满足用户需要;更好地满足多道程序运行的需要;既满足用户要求,又提高主存利用率。,3.3 分页存储管理,连续存储分配方式,每道程序要求占用连续的空间,会形成很多碎片离散分配方式允许将作业分配到不相邻的分区中,既可免去移动内存信息而产生的工作量,又可充分利用主存空间,尽量减少主存碎片。离散分配方式分为:分页式存储分段式存储段页式存储,3.3.1 分页存储管理基本原理,基本原理:页框:主存空间按物理地址分成多个大小相等区,每个区称为块(又称页框page frame)页面:程序(作业)按逻辑地址分成多个大小相等的区,每个区称为一个页面(page),大小与页框大小相等。页面的典型大小为1k,从0开始编号逻辑地址格式:页号和页内地址,页号,页内地址,地址结构确定了主存储器的分页大小,也决定了页面大小,思考为什么?,3.3.1 分页存储管理基本原理,5,10,2,5,32(页),2,10,1024(每页1024字节),在分配存储空间时,是以页面为单位来分配.例如,一个作业的地址空间有M页,那么只需要分配给他M个页面的存储空间,每一页分别装入一个存储页面即可.并不需要这些页面是连续的.以上这些问题需要一个地址映射.,若给定一个逻辑地址空间中的地址为A,页面大小为L,则页号P和页内地址w可按下式求得:P=INTA/L W=A MOD L 其中,INT是整除函数,MOD是取余函数。例:系统页面大小为KB,设A2170B,则P=2,W=122,3.3.1 分页存储管理基本原理,3.3.2 主存空间的分配和回收,采用的数据结构(1)页表:实现从页号到物理块号的地址转换(2)位示图:记录主存的分配情况,一个系统只有一张 参考课本P119,图3-21(3)主存分配表:记录主存中各作业的情况,包括作业名、页表始址和页表长度.参考课本P120,表3-9 系统必须知道每个作业或进程页表起始地址和长度,以进行内存分配和地址变换,页表,页表:由页号和页面号组成,指出逻辑地址中页 号与主存中块号的对应关系 页号-作业地址空间的页序号(从“0”开始)块号-内存空间的物理块序号(从“0”开始),页 表,用户程序,内 存,01234567,地址转换和存储保护,逻辑地址的表示方式:用32位数据表示。011位为页内地址,共12位数,212=4096=4KB,表示每页内的地址最多为4096,也即每页的大小是4KB。1231位共20位数,表示页号,可表示1024*1024个页号,即1M个页面号。,页号 P 页内地址 D,31 12 11 0,系统中设置地址变换机构实现地址映射。实际是利用页表将逻辑地址中的页号转换为物理块号地址转换步骤如下(已知逻辑地址):1、页号=逻辑地址/页长 页内地址=逻辑地址 mod 页长 2、从页表中查找该页对应的块号 3、物理地址=块号*块长+块内地址思考:块长和块内地址分别为多少?,地址变换图(牢记),思考:CPU存取数据需要访问内存几次?,虚拟地址,物理地址,8644,1024*8+452=8644,对分页存储管理的改进,相联存储器和快表通常页表存放在主存中,因此按逻辑地址访问某个主存地址内容时,需要涉及二次主存访问,效率较低联想存储器,一个专用的高速缓冲存储器,用于存放最近被访问的部分页表,是分页式存储管理的重要组成部分。快表,存放在联想存储器中的部分页表内容联想存贮器的存取速度比主存高,但造价也高。因此只能采用少量,整个系统通常只要用816个寄存器即可使程序执行速度大大提高。快表的格式见下图:,其中,“页号”是程序访问过的地址空间的页号,“块号”是该页所对应的主存块号;访问位指示该页最近是否被访问过。“0”表示没有被访问,“1”表示访问过;“状态”位指示该寄存器是否被占用。通常“0”表示空闲,“1”表示占用。,具有快表的地址变换机构,两级和多级页表,现代的大多数计算机系统,都支持非常大的逻辑地址空间(232264)。在这样的环境下,页表就变得非常大,要占用相当大的内存空间。例如,对于一个具有32位逻辑地址空间的分页系统,规定页面大小为4 KB即212 B,则在每个进程页表中的页表项可达1兆个之多。又因为每个页表项占用4个字节,故每个进程仅仅其页表就要占用4 MB的内存空间,而且还要求是连续的。可以采用这样两个方法来解决这一问题:采用离散分配方式来解决难以找到一块连续的大内存空间的问题:只将当前需要的部分页表项调入内存,其余的页表项仍驻留在磁盘上,需要时再调入。,两级页表逻辑地址机构,两级页表结构,具有两级页表的地址变换机构,页的共享和保护,多个作业同时运行相同的程序时,可以使它们共享页面。办法是使这些相关进程的逻辑空间的页指向相同的内存块。产生的问题:有的页面可以共享,有的不能解决的办法:在页表中设置读写控制字段来进行页面保护。分页系统中实现页面保护具有一定困难:程序页面划分对用户是透明的,可共享与不能共享的程序有可能划分到同一个页面中。,课堂练习题,1、某虚拟存储器的用户编程空间共 321KB,内存为16KB,页面大小为1KB。假定某时刻一用户页表中已调入内存的页面的页号和物理块号的对照表如下:页号 物理块号 1 5 2 10 3 4 4 7 则逻辑地址 0A5C(H)所对应的物理地址是什么?,课堂练习题,2、在一分页存储管理系统中,逻辑地址长度为16位,页面大小为4096字节,现有一逻辑地址为2F6AH,且第0,1,2页依次存放在物理块5,10,11中,问相应的物理地址为多少?,逻辑地址2F6AH的二进制表示如下:0010 1110 0110 1010由此可知,逻辑地址2F6AH的页号为2,该页存放在第11号物理块中,用十六进制表示块号为B,所以物理地址为BF6AH,课堂练习题,3、某虚拟存储器的用户编程空间共个页面,每页,主存为。假定某时刻该用户页表中已调入主存的页面的虚页号和物理页号对照表如下:虚页号 物理页号 则下面与虚地址相对应的物理地址为(若主存中找不到,即为页失效)虚地址物理地址0A5C(H)()1A5C(H)()这里,()表示十六进制。虚拟存储器的功能 由()完成。在虚拟存储器中,采用()提高()的速度。、:页失效;1E5C(H);2A5C(H);165C(H);125C(H);1A5C(H)。:硬件;软件;软硬件结合。:高速辅助存储器;高速光盘存储器;快速通道;高速缓冲存储器。:连接编辑;虚空间分配;动态地址翻译;动态链接,5,1,3,1,3,课堂练习题,4、在采用页式存储管理的系统中,某作业J的逻辑地址空间为4页(每页2048字节),且已知该作业的页面映像表(即页表)如下:页号 块号 0 2 1 4 2 6 3 8 试借助地址变换图(即要求画出地址变换图)求出有效逻辑地址4865所对应的物理地址。,练习题,5.在一系统中采用分页存储管理,页大小为4KB,允许用户进程的存储映像最大为16页,物理内存共有512内存块。试问,虚地址寄存器和内存地址寄存器的长度各是多少位?,(1)虚地址寄存器的位数是12+4=16位。(2)内存地址寄存器的长度是12+9=21位,3.4 分段式存储管理,为提高主存空间的利用率,存储管理方式 固定分区动态分区分页方式为满足程序设计和开发的要求(为模块为单位的装配、共享和保护),出现了分段式存储管理每个段可有其逻辑意义及功能,使得便于(1)方便编程;(2)分段共享;(3)分段保护;(4)动态链接;(5)动态增长;(如数据段的增长),3.4 分段式存储管理,基本概念,1、分段:一组逻辑信息的集合将一个作业按照逻辑意义分段,如主程序、子程序、数据段、栈段等组成的段的长度由该段所包含的逻辑信息长度决定,因而各段长度不等2、程序地址结构:逻辑地址由段号 s 和段内地址d来表示规定每个作业的段号从0开始顺序编排。3、内存分配 内存以段为单位进行分配,每个段独占一块连续的内存区域,各分区的大小由对应段的大小决定。一个作业或进程的各个段可以离散地放在不同的分区中,段号 S 段内地址 d,31,16,15,0,3.4 分段式存储管理,采用的数据结构段表空闲分区表主存分配表,3.4 分段式存储管理,段表:记录每个作业的每个段在主存中所占分区的起始地址和大小。(系统为每个进程建立一个段表)主存分配表:记录主存中各作业的作业名、段表始址和段表长度(整个系统只有一张),始址,长度,100k,8k,256k,16k,段表,第0段,第1段,作业名,Job1,段表始址,0,段表长度,2,主存分配表,3.4 分段式存储管理,利用段表实现地址映像,3.4 分段式存储管理,地址转换,段共享段式系统易于共享通过不同作业段表中的项指向同一个段基址来实现。段的保护存取控制段表本身可起保护作用保护环,段共享,分页和分段的区别,分页,是信息的物理单位,与源程序的逻辑结构无关,用户不可见,页长由系统确定,每个页大小一样,页面只能以页大小的整倍数地址开始,地址空间一维的分段,是信息的逻辑单位,由源程序的逻辑结构所决定,用户可见,段长由用户确定,大小不等,段起始地址可以从任何主存地址开始,地址空间二维的另外,分段具有便于动态链接、便于动态增长等优势,但给系统管理带来一定的难度和开销,3.5 段页式存储,工作原理将分段与分页技术结合起来的存储管理技术。在分段的基础上再在段内分页。基本原理:(1)等分内存(2)作业或进程的地址空间划分成段(3)段内分页(4)逻辑地址结构:段号s、页号p、页内地址d.(5)段表、页表和段表地址寄存器(6)面向用户的地址划分是段式划分,面向物理实现的地址空间是页式划分。用户程序划分成若干段,每段又分成若干页面,内存划分成对应大小的块,段页式作业地址空间和地址结构,页,段页式地址转换,段页式系统中的地址转换机构,段号=段表长度,段页式特点,优点:便于实现、分段共享、易于保护能像页式一样很好的解决碎片问题为各个分段离散的分配内存缺点段表和页表的管理,系统开销大,思考:若段表和页表都在主存,为了访问主存中的一条指令或数据,至少需要访问主存几次?为了提高访问主存的速度,应考虑使用什么?,3.8 虚拟存储管理方式,引入1.常规存储管理的特征:一次性(指全部装入)、驻留性(指驻留在内存不换出)2、程序的局部性原理时间局部性:如程序的循环执行空间局部性:如程序的顺序执行。3、虚拟存储器的定义仅把作业的一部分装入主存便可以运行的存储器系统。具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储系统。实质:以时间换空间,但时间牺牲不大。虚拟存储器的大小由地址寄存器的位数决定。,虚拟存储器=虚拟内存-成立吗?,虚拟存储器特性,1离散性:部分装入(若连续则不可能提供虚存),无法支持大作业小内存运行2多次性:局部装入,多次装入。3对换性:允许作业在运行过程中换进、换出4虚拟性:用户看到的主存容量远大于实际主存容量,虚拟存储器的实现方式,页式虚拟存储管理-基于页式存储管理系统段式虚拟存储管理-基于段式存储管理系统段页式虚拟存储管理-基于段页式存储管理系统,虚拟存储器的实现方式(一),一、页式虚拟存储管理允许只装入用户程序和数据的部分页便可运行,以后再通过调页功能和置换功能,陆续地把即将要运行的页面调入内存,把暂不运行的页换出到外存以页为单位进行置换需硬件:(1)请求分页的页表机制(2)缺页中断机构(3)地址变换机构,虚拟存储器的实现方式(二),二、段式虚拟存储管理只装入程序和数据的若干段即可运行以段为单位进行置换需硬件:(1)请求分段的段表机构(2)缺段中断(3)地址变换机构,3.8.2 请求分页存储管理,请求分页中的数据结构及硬件支持一、页表机制页表项:二、缺页中断机构:可在指令执行期间产生转入缺页中断处理程序。三、地址变换机构比较简单分页机制,增加了中断处理,缺页中断,缺页中断与一般中断的不同产生中断时间不同一般中断:执行完一条指令后缺页中断:指令执行期间中断次数不同一般中断:在执行一条指令后只产生一次中断缺页中断:在一条指令执行期间可以产生多次中断,内存空间的分配和回收,内存空间的分配过程1.确定每个作业能够运行的最小物理块数M2.判断是否M位示图中空闲块数3.装入一部分作业,建立页表并初始化页表中数据4.程序运行时,访问到哪个页面在将其装入内存空间的回收过程与分页式存储管理类似思考:当作业运行结束时,需要修改位示图和主存分配表的数据吗?如果要,如何修改?,地址转换和存储保护,地址转换过程与页式存储管理完全相同吗?存储保护与页式存储管理相似,页面分配和置换策略,1固定分配局部置换物理块分配算法:平均分配算法按比例分配算法优先权分配算法(重要的实时控制系统)缺点:难以确定固定分配的页数.(少:置换率高 多:浪费)2.可变分配全局置换(最易于实现、但影响其他作业)3.可变分配局部置换根据进程的缺页率进行页面数调整,进程之间相互不会影响。缺页率:进程在一次运行中所产生的缺页次数/该进程运行一次共访问的页面数,页面置换算法(重点),页面置换算法:用来确定应该淘汰哪一页目的:减少对换量,提高系统性能 如果算法选择不当,会出现“抖动”现象。根据缺页率判断算法的好坏,1.先进先出算法FIFO 选择在内存中驻留时间最长的一页调出 实现简单,但效率不高,2.最佳置换算法(OPT)选择最长时间内不需要访问的一页调出 不实际,3.最近最久未用算法(LRU)将“最近的过去”,作为“最近的将来”。选择最近一段时间内最长时间没有被访问的一页调出LRU算法需硬件支持:(用来记录谁最近最久未访问),3.8.3 请求分段存储管理,段表:段名 段长 段基址 存取方式 访问字段A 修改字段M 存在位P 增补位 外存起址二、缺段中断机构:段不定长,处理起来比缺页中断复杂。三、地址变换机构,课堂练习,在一个请求分页存储管理系统中,一个作业的页面走向为4、3、2、1、4、3、5、4、3、2、1、5.当分配给该作业的物理块数分别为3、4时,试计算采用下述页面淘汰算法时的缺页率,(假设开始执行时主存中没有页面)并比较所得结果。(1)最佳置换算法(2)先进先出算法(3)LRU算法,课堂练习,在一个分页式虚拟存储管理系统中,一个程序页面走向为2、4、1、2、5、0、6、3、0、4、2、3,设分配给该程序的存储块数M=3,每调进一个新页就发生一次缺页中断。当分别采用最佳置换算法、先进先出算法、LRU算法时,求缺页的次数和缺页中断率。,补充:谈谈windows 内存管理技术,包括Vista在内的Windows操作系统都一直在利用虚拟内存技术。内存页面文件的交换需要系统许多额外支出,Windows XP 的 Prefetch技术,预取是操作系统实际需要之前,从磁盘向内存中导入关键数据和代码段的进程为了让整个预取操作切实地提高性能,Windows XP缓存管理器在系统启动过程中以及在各种应用程序被导入的时候,监视数据在磁盘和RAM之间以及在RAM和虚拟内存之间的移动。并构造目录和每个应用程序或进程引用的所有文件的映射。这些映射被保存到WindowsPrefetch文件夹扩展名为.pf的文件中 映射文件被创建之后,缓存管理器将在系统启动以及导入应用程序的时候使用它们以提高效率,Windows XP 的 Prefetch技术,为了进一步提高这个预取操作的效率,Windows XP会定期地分析映射文件的内容,编辑一个目录和文件列表,以导入的顺序组织它们,并且将这些信息保存在WindowsPrefetch文件夹的名为Layout.ini的文件中。它会安排磁盘碎片整理程序定期运行并且使用Layout.ini文件中的信息以重新部署所有目录文件,让它们排列在磁盘中临近的区域。,Vista 的Superfetch 技术,Superfetch不但继承了Windows XP预取技术的全部优点,还进一步具备监视程序运行时状况,时间等详细情况的功能可以根据用户的使用习惯,自动预先将存放在硬盘的交换文件转换到内存页面中去,使用户经常运行的程序启动时的速度得到进一步的加快,举例说明:,比如我们在工作的午休时间运行杀毒软件,此时,如果使用的是Windows XP,那么操作系统会将工作程序所占用的内存页面写入硬盘交换文件中,并读取杀毒软件的文件载入内存。午休过后,杀毒软件已经运行完毕,但是你在重新开始使用工作程序的时候,系统仍然需要经历杀毒软件和工作程序的硬盘交换文件与内存页面的交换过程,此时程序的响应速度明显降低。而使用了SuperFetch技术后,系统自动预先将存放在硬盘的工作文件转换到内存页面中去,使工作程序启动时的速度得到大大提高。,Superfetch技术的中心思想是:“过分空余的内存空间即是浪费”。的确,如果一个操作系统总是保留着过多的空余物理内存耗费电能,却不能够利用这些多余的内存空间提高系统性能的话,为什么不更好地利用这些多余的内存空间呢?将这些多余的物理内存作为缓存使用,就是Superfetch技术的本质。而也正是由于采用了这种以内存为缓存的策略,才造成了Vista对内存容量的饥渴,在一些慢速硬盘的设备,例如笔记本,使用superfetch技术反而会导致系统启动慢或关机慢,关闭它,反而会提高运行速度关闭方法:superfetch的注册表键值在HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory ManagementPrefetchParameters关闭 prefetch 或者 superfetchPrefetch的键名为 EnablePrefetcher,键值设置同上。您可以将两者或者其中一个设置为 0,即关闭它们以减少磁盘读写。,课堂练习题,1.段表表目主要内容包括_、_和_2.页表表目的主要内容包括_和_3.在段页式存储管理系统中,每道程序都有一个_表和一组_表4.页是信息的单位,进行分页是出于的需要;段是信息的单位,进行分段是出于的需要。5.在段页式系统中(无快表),为获得一条指令或数据,都需三次访问内存。第一次从内存中取得,第二次从内存中取得,第三次从内存中取得。,练习题,5.一个计算机系统的虚拟存储器的最大容量是由()确定的,其实际容量是由()确定的。、:计算机字长;内存容量;硬盘容量;内存和硬盘容量之和;计算机的地址结构。6.由固定分区方式发展为分页存储管理方式的主要推动力是();由分页系统发展为分段系统,进而以发展为段页式系统的主要动力分别是()和()。:提高主存的利用率;提高系统的吞吐量;满足用户需要;更好地满足多道程序运行的需要;既满足用户要求,又提高主存利用率。,练习题,7.某段表内容如下:段号 段首地址 段长度 0 120K 40K 1 760K 30K 2 480K 20K 3 370K 20K 一逻辑地址为(2,154)的实际物理地址为多少?,THE END,

    注意事项

    本文(操作系统课件-第3章存储管理.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开