版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章存储管理6.1主存管理的功能6.2分区存贮管理6.3分页存储管理6.4分段存储管理6.5段页式存储管理6.6覆盖技术与交换技术6.7虚拟存储2023/9/3第六章存储管理第六章存储管理6.1主存管理的功能2023/8/3第六章6.1主存管理的功能
6.1.1地址映射
6.1.2主存分配
6.1.3存储保护
6.1.4主存扩充(虚拟内存)2023/9/3第六章存储管理6.1主存管理的功能6.1.1地址映射2023/8/6.1.1地址映射(地址重定位)内存的每个存储单元都有一个编号,这种编号称为内存地址(或称为物理地址,绝对地址)。内存地址的集合称为内存空间(或物理地址空间)。2023/9/3第六章存储管理6.1.1地址映射(地址重定位)内存的每个存储单元都有一个要求用户用内存地址编程是非常困难的,尤其是在多道程序设计的环境中。用户编程所用的地址称为逻辑地址(或程序地址,或虚地址),由逻辑地址组成的空间称为逻辑地址空间(或程序地址空间)。2023/9/3第六章存储管理要求用户用内存地址编程是非常困难的,尤其是在多道程序设计的环
地址映射LoadA2003456。。1200物理地址空间LoadAdata1data13456源程序LoadA20034560100200编译连接逻辑地址空间BA=10002023/9/3第六章存储管理地址映射1200物理地址空间源程序0100200编译逻辑地地址映射的方式我们把用户程序装入内存时对有关指令的地址部分的修改定义为从程序地址到内存地址的地址映射,或称为地址重定位。地址映射的方式:1、静态地址映射2、动态地址映射2023/9/3第六章存储管理地址映射的方式我们把用户程序装入内存时对有关指令的地址部分的1、静态地址映射程序被装入内存时由操作系统的连接装入程序完成程序的逻辑地址到内存地址的转换。2023/9/3第六章存储管理1、静态地址映射程序被装入内存时由操作系统的连接装入程序完成映射方法假定程序装入内存的首地址为BR,程序地址为VR,内存地址为MR,则地址映射按下式进行:MR=BR+VR。例如,程序装入内存的首地址为1000,则装配程序就按MR=1000+VR对程序中所有地址部分进行修改,修改后指令LoadA,200就变为LoadA,12002023/9/3第六章存储管理映射方法假定程序装入内存的首地址为BR,程序地址为VR,内存优缺点优点:不需要硬件的支持。
缺点:程序必须占用连续的内存空间;一旦程序装入后不能移动。
2023/9/3第六章存储管理优缺点优点:不需要硬件的支持。2023/8/3第六章存2、动态地址映射动态地址重定位是在程序执行的过程中,每次访问内存之前,将要访问的程序地址转换为内存地址。一般来说这种转换是由专门的硬件机构来完成的。
2023/9/3第六章存储管理2、动态地址映射动态地址重定位是在程序执行的过程中,每次访问映射方法最简单的硬件机构是重定位寄存器。在地址重定位机构中,有一个基地址寄存器BR和一个程序地址寄存器VR,一个内存地址寄存器MR。2023/9/3第六章存储管理映射方法最简单的硬件机构是重定位寄存器。2023/8/3第六
03456......LOADA200......0100200300.........LOADA2003456110012001300200VR+1000BR2023/9/3第六章存储管理03456LOADA20001地址映射的具体过程程序装入内存后,它所占用的内存区的首地址由系统送入基地址寄存器BR中。在程序执行的过程中,若要访问内存,将访问的逻辑地址送入VR中。地址转换机构把VR和BR中的内容相加,并将结果送入MR中,作为实际访问的地址。2023/9/3第六章存储管理地址映射的具体过程程序装入内存后,它所占用的内存区的首地址由动态地址映射的优缺点优点:程序占用的内存空间是动态可变的,当程序从某个存储区移到另一个区域时,只需要修改相应的寄存器BR的内容即可。一个程序不一定要求占用一个连续的内存空间。可以部分地装入程序运行。便于多个进程共享同一个程序的代码。动态地址重定位的代价:需要硬件的支持。实现存储管理的软件算法较为复杂。2023/9/3第六章存储管理动态地址映射的优缺点优点:2023/8/3第六章存储管理6.1.2主存分配与回收
要完成内存的分配和回收工作,要求设计者选择和确定以下几种策略和结构:调入策略放置策略置换策略分配结构2023/9/3第六章存储管理6.1.2主存分配与回收 要完成内存的分配和回收工作,调入策略用户程序在何时调入内存的策略。目前有请调和预调两种2023/9/3第六章存储管理调入策略用户程序在何时调入内存的策略。2023/8/3第六章放置策略用户程序调入内存时,确定将其放置在何处的策略。2023/9/3第六章存储管理放置策略用户程序调入内存时,确定将其放置在何处的策略。202置换策略当需要将某个用户程序调入内存而内存空间又不够时,就要确定哪个或哪些程序可以从内存中移走。2023/9/3第六章存储管理置换策略当需要将某个用户程序调入内存而内存空间又不够时,就要分配结构分配结构是用来登记内存使用情况的数据结构。如空闲区表、空闲区队列等。2023/9/3第六章存储管理分配结构分配结构是用来登记内存使用情况的数据结构。如空闲区表引起内存分配和回收的原因进程的开始的结束。进程运行的过程中,它所占用的内存也可能发生变化。如栈的变化。进程映像在内存和外存之间传递。由于内存有限,系统中不可能容纳所有进程,有些进程的映像可以存放在外存,当要运行这些进程时,必须把它们调入内存。系统为了充分利用内存空间,有时可能对内存空间进行调整。2023/9/3第六章存储管理引起内存分配和回收的原因进程的开始的结束。2023/8/3第6.1.3存储保护 保证在内存中的多道程序只能在给定的存储区域内活动并互不产生干扰。包括:防止地址越界防止越权(对共享区有访问权)2023/9/3第六章存储管理6.1.3存储保护 保证在内存中的多道程序只能在给定的存储存储保护的硬件支持界地址寄存器(界限寄存器)存储键2023/9/3第六章存储管理存储保护的硬件支持界地址寄存器(界限寄存器)2023/8/3界地址寄存器(界限寄存器)界地址寄存器被广泛使用的一种存储保护技术机制比较简单,易于实现2023/9/3第六章存储管理界地址寄存器(界限寄存器)界地址寄存器被广泛使用的一种存储保实现方法在CPU中设置一对下限寄存器和上限寄存器存放用户作业在主存中的下限和上限地址也可将一个寄存器作为基址寄存器,另一寄存器作为限长寄存器(指示存储区长度)每当CPU要访问主存,硬件自动将被访问的主存地址与界限寄存器的内容进行比较,以判断是否越界如果未越界,则按此地址访问主存,否则将产生程序中断——越界中断(存储保护中断)2023/9/3第六章存储管理实现方法在CPU中设置一对下限寄存器和上限寄存器存放用户作业图示2023/9/3第六章存储管理图示2023/8/3第六章存储管理6.1.4主存扩充(虚拟内存)为了使程序员在编程时不受内存的结构和容量的限制,系统为用户构造一种存储器,其结构可能与内存结构不同,容量可能远远超过内存的实际容量。这种面向编程的存储器称为虚拟存储器。由虚存构成的存储空间称为虚存空间。或称虚地址空间。2023/9/3第六章存储管理6.1.4主存扩充(虚拟内存)为了使程序员在编程时不受内存实现虚拟内存的基本原理将程序正在使用的部分内容放在内存,而暂时不用的部分放在外存,在需要时由系统调入内存,并将不需要(或暂不需要)的部分调出内存。由于程序在执行时,在一段时间内一般仅使用它的程序的一部分(或一小部分),所以程序仅有部分装入内存完全能够正确执行。要由操作系统结合相关硬件来完成上述工件,这样计算机好象为用户提供了一个容量远大于内存的存储器,这个存储器称为虚拟存储器。
2023/9/3第六章存储管理实现虚拟内存的基本原理将程序正在使用的部分内容放在内存,而暂6.2分区存贮管理
把整个内存划分为若干大小不等的区域,操作系统占用一个区域,其它区域供系统中的多个进程共享,这种方法称为分区存储管理。 这是最简单的一种存储管理,按分区划分的时机可分为6.2.1、固定分区6.2.2、动态分区2023/9/3第六章存储管理6.2分区存贮管理 把整个内存划分为若干大小不等的区域6.2.1固定分区固定分区就是把内存固定地划分为若干个大小不等的区域。分区的划分由计算机的操作员或者由操作系统给出,并给出分区说明表。早期的IBM的OS/360MFT(具有固定任务数的多道程序系统)采用了这种固定分区的方法。2023/9/3第六章存储管理6.2.1固定分区固定分区就是把内存固定地划分为若干个大小举例某系统的内存容量为256K,操作系统占用低地址的20K,其余空间划分成4个固定大小的分区。如下图2023/9/3第六章存储管理举例某系统的内存容量为256K,操作系统占用低地址的20K,图示2023/9/3第六章存储管理图示2023/8/3第六章存储管理分区说明表分区号大小(KB)始址状态1820已分配23228已分配36460已分配4132124未分配2023/9/3第六章存储管理分区说明表分区号大小(KB)始址状态1820已分配23228固定分区性能分析在作业大小和出现频率均已知的情况下,固定分区是合适的。在这种情况下分区的大小选择与作业大小相当,这样内存的使用效率较高。但是若作业的大小和出现的频率不知道时,势必造成分区的大小和作业的大小相差甚远,这样就会造成存储空间的浪费,从而影响整个系统的效率。2023/9/3第六章存储管理固定分区性能分析在作业大小和出现频率均已知的情况下,固定分区6.2.2动态分区动态分区是指在系统运行的过程中建立分区,并使分区的大小刚好与作业的大小相等。这种存储管理的方法解决了固定分区严重浪费内存的问题。是一种较为实用的存储管理方法。2023/9/3第六章存储管理6.2.2动态分区动态分区是指在系统运行的过程中建立分区,实现动态分区需要的数据结构在动态分区存储管理中,要有相应的数据结构来登记空闲区的说明信息,它包括空闲区的大小和位置。不同系统根据设计要求采用不同的结构。常用的有表结构和队列结构。系统还要设置了等待分区队列,当系统中无空闲区或无满足要求的空闲区时,则把申请者送入等待队列中,等待别的进程释放内存之后再唤醒队列中的进程。2023/9/3第六章存储管理实现动态分区需要的数据结构在动态分区存储管理中,要有相应的数空闲区表和空闲区队列举例2023/9/3第六章存储管理空闲区表和空闲区队列举例2023/8/3第六章存储管理动态分区的分配和回收1、分区的分配
在采用分区存储管理的系统中,系统初启后。除操作系统占用一个分区外,其余存储区为一个大的空闲区。
分区的分配是指系统根据用户的请求,在空闲区表或空闲区队列中寻找一个满足用户要求的空闲区,把这个空闲区分配给用户。以空闲区表为例,当用户要求一个大小为SIZE的存储空间时,系统查询空闲区表,找一个大于或等于SIZE的空闲区。2023/9/3第六章存储管理动态分区的分配和回收1、分区的分配2023/8/3第六章存分配时的三种情况其一是系统中无满足要求的空闲区,则分配失败。其二是空闲区大小与SIZE相等,则修改空闲区表相应表目,向用户返回该空闲区首址,表示此空闲区已分给了要求的用户。2023/9/3第六章存储管理分配时的三种情况其一是系统中无满足要求的空闲区,则分配失败。
其三是空闲区大于SIZE,这时将空闲区一分为二。 将一个空闲区分成二部分有两种办法: 一是从空闲区的上部开始划出SIZE大小的空闲区给用户; 二是从空闲区的底部开始向上划出SIZE大小的空闲区给用户。 一般常采用第二种办法,因为这样划分时,余下的部分在空闲区表中的首地址不变,只需要修改一下大小就行了。2023/9/3第六章存储管理其三是空闲区大于SIZE,这时将空闲区一分为二。2023/2、分区的回收
当某个进程释放某存储区时,系统首先检查释放区是否与系统中的空闲区相邻,若相邻则把释放区合并到相邻的空闲区中去,否则把释放区作为一个空闲区插入到空闲区表的适当位置。2023/9/3第六章存储管理2、分区的回收当某个进程释放某存储区时,系统首先检查释放区释放区与空闲区相邻的四种情况2023/9/3第六章存储管理释放区与空闲区相邻的四种情况2023/8/3第六章存储管理说明释放区与前空闲区相邻:将释放区与前空闲区合并为一个空闲区。其首址仍为前空闲区首址,大小为释放区大小与空闲区大小之和。释放区与前后两个空闲区相邻:将这三个区合为一个空闲区,其首址为前空闲区首址,大小为这三个区大小之和,并取消原后空闲区表目。释放区与后空闲区相邻:则把释放区合并到后空闲,首地址为释放区首地址,大小为二者大小之和。释放区不与任何空闲区相邻:将释放区作为一个空闲区,将其大小和首址插入到空闲区表的适当位置。2023/9/3第六章存储管理说明释放区与前空闲区相邻:将释放区与前空闲区合并为一个空闲区三种放置策略1、空闲区表或队列的排序2、首次适应法3、最佳适应法4、最坏适应法5、三种策略比较2023/9/3第六章存储管理三种放置策略1、空闲区表或队列的排序2023/8/3第六章1、空闲区表或队列的排序按空闲区首址递增的次序归类组织空闲区表或空闲区队列按空闲区大小的递增或递减次序组织空闲区表或队列
2023/9/3第六章存储管理1、空闲区表或队列的排序按空闲区首址递增的次序归类组织空闲区2、首次适应法要求空闲区按首址递增的次序组织空闲区表(队列)。
2023/9/3第六章存储管理2、首次适应法要求空闲区按首址递增的次序组织空闲区表(队列)分配:当进程申请大小为SIZE的内存时,系统从空闲区表的第一个表目开始查询,直到首次找到等于或大于SIZE的空闲区。从该区中划出大小为SIZE的分区分配给进程,余下的部分仍作为一个空闲区留在空闲区表中,但要修改其首址和大小。2023/9/3第六章存储管理分配:当进程申请大小为SIZE的内存时,系统从空闲区表的第一回收:按释放区的首址,查询空闲区表,若有与释放区相邻的空闲区,则合并到相邻的空闲区中,并修改该区的大小和首址,否则,把释放区作为一个空闲区,将其大小和首址按照首地址大小递增的顺序插入到空闲区表的适当位置。2023/9/3第六章存储管理回收:按释放区的首址,查询空闲区表,若有与释放区相邻的空闲区分析注意:每次分配和回收后空闲区表或空闲区队列都要按首址递增的次序排序。首次适应法的优点:释放某一存储区时,若与空闲区相邻则合并到相邻空闲分区中去,这种情况并不改变该区在表中的位置,只要修改其大小或首址。这种算法是尽可能地利用低地址空间,从而保证高地址空间有较大的空闲区。
2023/9/3第六章存储管理分析注意:每次分配和回收后空闲区表或空闲区队列都要按首址递增最佳适应法要求按空闲区大小从小到大的次序组成空闲区表(队列)。2023/9/3第六章存储管理最佳适应法要求按空闲区大小从小到大的次序组成空闲区表(队列)分配:当进程申请一个存储区时,系统从表头开始查找,当找到第一个满足要求的空闲区时,停止查找,并且这个空闲区是最佳的空闲区。所谓最佳即选中的空闲区是满足要求的最小空闲区。2023/9/3第六章存储管理分配:当进程申请一个存储区时,系统从表头开始查找,当找到第一回收:按释放区的首址,查询空闲区表(队列),若有与释放区相邻的空闲区,则合并到相邻的空闲区中,并修改该区的大小和首址,否则,把释放区作为一个空闲区插入空闲区表(队列)。分配和回收后要对空闲区表(队列)重新排序。2023/9/3第六章存储管理回收:按释放区的首址,查询空闲区表(队列),若有与释放区相分析优点:在系统中若存在一个与申请分区大小相等的空闲区,必定会被选中,而首次适应法则不一定。若系统中不存在与申请分区大小相等的空闲区,则选中的空闲区是满足要求的最小空闲区,而不致于毁掉较大的空闲区。缺点:空闲区的大小一般与申请分区大小不相等,因此将其一分为二,留下来的空闲区一般情况下是很小的,以致无法使用。随着时间的推移,系统中的小空闲区会越来越多,从而造成存储区的大量浪费。
2023/9/3第六章存储管理分析优点:2023/8/3第六章存储管理最坏适应法要求空闲区按大小递减的顺序组织空闲区表(或队列)。2023/9/3第六章存储管理最坏适应法要求空闲区按大小递减的顺序组织空闲区表(或队列)。分配:进程申请一个大小为SIZE的存储区时,总是检查空闲区表的第一个空闲区的大小是否大于或等于SIZE。若空闲区小于SIZE,则分配失败;否则从空闲区中分配SIZE的存储区给用户,然后修改和调整空闲区表。2023/9/3第六章存储管理分配:进程申请一个大小为SIZE的存储区时,总是检查空闲区表回收:按释放区的首址,查询空闲区表(队列),若有与释放区相邻的空闲区,则合并到相邻的空闲区中,并修改该区的大小和首址,否则,把释放区作为一个空闲区插入空闲区表(队列)。分配和回收后要对空闲区表(队列)重新排序。2023/9/3第六章存储管理回收:按释放区的首址,查询空闲区表(队列),若有与释放区相分析最坏适应法看起来公似乎有些荒唐,但在更加严密地考察后,还是有它的优点:当程序装入内存中最大的空闲区后,剩下的空闲区还可能相当大,还能装下较大的程序。另一方面每次仅作一次查询工作。2023/9/3第六章存储管理分析最坏适应法看起来公似乎有些荒唐,但在更加严密地考察后,还三种策略比较上述三种放置策略各有利弊,到底哪种最好不能一概而论,而应针对具体作业序列来分析。对于某一作业序列来说,某种算法能将该作业序列中所有作业安置完毕,那么我们说该算法对这一作业序列是合适的。对于某一算法而言,如它不能立即满足某一要求,而其它算法却可以满足此要求,则这一算法对该作业序列是不合适的。
2023/9/3第六章存储管理三种策略比较上述三种放置策略各有利弊,到底哪种最好不能一概而举例例1:有作业序列:作业A要求18K;作业B要求25K,作业C要求30K。系统中空闲区按三种算法组成的空闲区队列经分析可知:最佳适应法对这个作业序列是合适的,而其它两种对该作业序列是不合适的。2023/9/3第六章存储管理举例例1:有作业序列:作业A要求18K;作业B要求25K,作练习有作业序列:作业A要求21K;作业B要求30K,作业C要求25K。2023/9/3第六章存储管理练习有作业序列:作业A要求21K;作业B要求30K,作业C要碎片问题由于空闲区的大小与申请内存的大小相等的情况是很少的,绝大多数情况是从一个空闲区中切去一块,剩下的部分作为一个空闲区仍留在空闲区表中,随着时间的推移,空闲区的发展趋势是越来越小,直至不能满足任何用户要求。这种不能被任何用户使用的极小的空闲区称为碎片。碎片的出现造成了存储空间的浪费。2023/9/3第六章存储管理碎片问题由于空闲区的大小与申请内存的大小相等的情况是很少的,在分区存储管理中解决碎片的办法规定门限值(由操作系统规定,如1K),分割空闲区时,若剩余部分小于门限值,则不再分割此空闲区。定期压缩存储空间,将所有空闲区集中到内存的一端,但这种方法的系统开销太大。
2023/9/3第六章存储管理在分区存储管理中解决碎片的办法规定门限值(由操作系统规定,如6.3分页存储管理
6.3.1分页存储管理基本思想6.3.2页地址映射6.3.3页式存储管理方案小结2023/9/3第六章存储管理6.3分页存储管理6.3.1分页存储管理基本思想2026.3.1分页存储管理基本思想在分区存储管理中,不论采用什么办法都会出现碎片问题,从而降低了内存的利用率。虽然采用压缩存储区的方法可以解决碎片问题,但系统开销太大,而无实用价值,必须寻求新的技术来解决这一问题,于是分页技术产生了。分页技术是由曼彻斯特大学提出,并于1960年前后在Atlas计算机上实现。这种技术对操作系统的发展产生了深远影响。2023/9/3第六章存储管理6.3.1分页存储管理基本思想在分区存储管理中,不论采用什用户程序划分
把用户程序按逻辑页划分成大小相等的部分,称为页(page)
。从0开始编制页号,页内地址是相对于0编址2023/9/3第六章存储管理用户程序划分2023/8/3第六章存储管理逻辑地址
用户程序的划分是由系统自动完成的,对用户是透明的。一般,一页的大小为2的整数次幂,因此,地址的高位部分为页号,低位部分为页内地址页号页内地址0111231页号P页内位移量W编号0~1048575相对地址0~40952023/9/3第六章存储管理逻辑地址页号页内地址0111231内存空间按页的大小划分为大小相等的区域,称为块或内存块(物理页面,页框)2023/9/3第六章存储管理内存空间2023/8/3第六章存储管理内存分配以页为单位进行分配,并按作业的页数多少来分配。逻辑上相邻的页,物理上不一定相邻2023/9/3第六章存储管理内存分配2023/8/3第六章存储管理...01234560123456作业的地址空间页框(物理块)页号页表主存中页框(物理块).......2023/9/3第六章存储管理...01234560123456作业的页框页号页表主存中页6.3.2页地址映射1、页表
2、页大小的选择
3、页地址映射
4、分页存储管理中的信息保护
5、快表和联想存储器6、两级页表和多级页表
2023/9/3第六章存储管理6.3.2页地址映射1、页表2023/8/3第六章存储1、页表将页号和页内地址转换成内存地址,必须要有一个数据结构,用来登记页号和块的对应关系和有关信息。这样的数据结构称为页表。2023/9/3第六章存储管理1、页表将页号和页内地址转换成内存地址,必须要有一个数据结构系统为每个进程建立一个页表,页表的长度和首地址存放在该进程的进程控制块(PCB)中。占用处理机的现行进程的页表必须驻留在内存,其首地址和长度由地址映射机构的页表起址和长度寄存器指示。2023/9/3第六章存储管理系统为每个进程建立一个页表,页表的长度和首地址存放在该进程的页表内容页表包含以下几个表项:页号:登记程序地址空间的页号。块号:登记相应的页所对应的内存块号其它:登记与存储信息保护有关的信息。页号块号其它05…165…213…2023/9/3第六章存储管理页表内容页表包含以下几个表项:页号块号其它05…165…21例如图,作业1有2页分别装入内存的第5、6块;作业2有3页装入内存的第2、4、7块;作业3有1页装入内存的第8块。2023/9/3第六章存储管理例如图,作业1有2页分别装入内存的第5、6块;作业2有3页装2、页大小的选择太大:浪费;太小:页表过长。IBMAS/400VAXNS32032:512字节Intel80386Motorola680304096字节页的大小是2K,k:9-12。2023/9/3第六章存储管理2、页大小的选择太大:浪费;太小:页表过长。2023/8/33、页地址映射分页中的地址映射其实与通常的地址映射的概念是一样的,即把程序地址转换成内存地址,这个转换过程是在程序执行过程中完成的,是动态地址映射。在现代计算机系统中,由系统提供的地址映射硬件来完成地址映射工作。2023/9/3第六章存储管理3、页地址映射分页中的地址映射其实与通常的地址映射的概念是一例设页长为1K,程序地址字长为16位,用户程序空间和页表如图。
2023/9/3第六章存储管理例设页长为1K,程序地址字长为16位,用户程序空间和页表如图说明在执行指令MOVr1,[2500]时,地址转换步骤如下:取出程序地址字2500送虚地址寄存器VR,然后由硬件分离出页号P和页内地址W,实际上分离出页号和页内地址是一件很简单的事,因为页长为1K,所以页内地址占10位(0-9位),页号占6位(10-15位),所以硬件只要简单地取出VR寄存器中的高6位即为页号,低10位即为页内地址。当然我们通过计算可以得到P=2,W=452。2023/9/3第六章存储管理说明在执行指令MOVr1,[2500]时,地址转换步骤如下根据页号P=2,硬件自动查该进程的页表,找到第2页对应的块号为7,将块号送到内存地址寄存器MR的高10位中。将VR中的W的值452复制到MR的低10位中,从而形成内存地址。系统就以MR中的地址访问内存硬件能自动分离出页号和页内地址,但我们只能通过计算才能得到。2023/9/3第六章存储管理根据页号P=2,硬件自动查该进程的页表,找到第2页对应的块号计算时要注意:若给出的地址字为16进制,则将其转换为二进制,然后,根据页长及程序地址字的长度,分别取出程序地址字的高几位和低几位就得到页号及页内地址。如页长为2K,程序地址字为16位,则高5位为页号,低11位为页内地址。2023/9/3第六章存储管理计算时要注意:2023/8/3第六章存储管理若给出的地址字为10进制,则用公式: 程序地址字/页长商为页号,余数为页内地址。如程序地址为8457,
页长为4KB,则8457/4096可得:商为2,余数为256。2023/9/3第六章存储管理若给出的地址字为10进制,则用公式:2023/8/3第六章4、分页存储管理中的信息保护分页存储管理中的存储信息保护从两个方面来实现。一、在分离程序地址字的页号和页内地址时判别访问是否合法,若产生的页号满足下式为合法: 0<=页号<程序地址空间的页数 上述判断由硬件自动做,若不合法,硬件产生越界中断,由操作系统的越界中断处理程序进行处理。2023/9/3第六章存储管理4、分页存储管理中的信息保护分页存储管理中的存储信息保护从两二、在页表中增加用于存取控制和存储保护的信息,当要访问某页时系统要根据该页的存取控制和存储保护信息检查访问是否合法。(主要用来判断访问是否越权)
2023/9/3第六章存储管理二、在页表中增加用于存取控制和存储保护的信息,当要访问某页时5、快表和联想存储器在前述的页地址变换过程中有一个严重的问题,那就是每一次对内存的访问都要访问页表,页表是放在内存中的,也就是说每一次访问内存的指令至少要访问两次内存,运行速度要下降一半。若不解决这一问题是不能令人忍受的。2023/9/3第六章存储管理5、快表和联想存储器在前述的页地址变换过程中有一个严重的问题解决这个问题的一种方法是把页表放在一组快速存储器中(Cache),从而加快访问内存的速度。我们把这种快速存储器组成的页表称为快表,把存放在内存中的页表称为慢表。快表又叫相联(联想)存储器(associativememory)
或TLB(Translationlookasidebuffers)2023/9/3第六章存储管理解决这个问题的一种方法是把页表放在一组快速存储器中(Cach讨论深入一点的讨论: 一个程序可能会很大,如1M,若页长为1K,则该程序有1000个页,则该程序的页表就需要1000个表项,当程序更大时,页表会更大,那么我们应该有一个多大的快速存储器才能满足要求呢?这会遇到两个问题:可能快速存储器多大都是不够的,因为程序可能会更大。快速存储器是非常非常昂贵的。
2023/9/3第六章存储管理讨论深入一点的讨论:2023/8/3第六章存储管理实际上我们并不需要一个很大的快速存储器,有一个能存放16个页表表目的快速存储器就够了。硬件根据需要将页表中当前需要的少量表目读入快表,其它表目仍留在内存的页表中,当需要时读入新的表目,并淘汰适当的表目。快表表项:页号;内存块号;标识位;淘汰位2023/9/3第六章存储管理实际上我们并不需要一个很大的快速存储器,有一个能存放16个页p’页表地址越界
L比较P>=Lpp’...快表
b+页号p
页内地址dP’d物理地址页表地址寄存器页表长度寄存器逻辑地址地址映射机制2023/9/3第六章存储管理页表地址越界L比较P>=Lpp’...快表b+页号p分析当调度合理时,可以达到97%的效率。也就是说访问页表的速度大致相当了访问快表的速度,考虑到快表的速度是内存速度的数倍或数十倍,那么相对于内存速度,访问页表的时间可以忽略不计。也就是说页地址变换不会造成进程运行速度的下降。2023/9/3第六章存储管理分析当调度合理时,可以达到97%的效率。也就是说访问页表的速6、两级页表和多级页表当页表项很多时,仅采用一级页表需要大片边续空间,可将页表也分页,并对页表所占的空间进行索引形成外层页表。由此构成二级页表。更进一步可形成多级页表。
2023/9/3第六章存储管理6、两级页表和多级页表当页表项很多时,仅采用一级页表需要大片二级页表结构及地址映射页目录地址目录位移页表位移页位移虚拟地址页表地址...页目录(每进程一个)块号...页表代码或数据...内存块++2023/9/3第六章存储管理二级页表结构及地址映射页目录地址目录位移页表位移页位移虚拟地图:三级页表结构及其地址映射过程2023/9/3第六章存储管理图:三级页表结构及其地址映射过程2023/8/3第六章存6.3.3页式存储管理方案小结优点:解决了碎片问题便于管理缺点:不易实现共享不便于动态连接2023/9/3第六章存储管理6.3.3页式存储管理方案小结优点:解决了碎片问题20236.4分段存储管理
6.4.1分段存储管理基本思想
6.4.2段地址映射
6.4.3段式存储管理方案小结2023/9/3第六章存储管理6.4分段存储管理6.4.1分段存储管理基本思想206.4.1分段存储管理基本思想用户程序划分按程序自身的逻辑关系划分为若干个程序段,每个程序段都有一个段名,且有一个段号。段号从0开始,每一段段内也从0开始编址,段内地址是连续的逻辑地址段号段内地址2023/9/3第六章存储管理6.4.1分段存储管理基本思想用户程序划分段号内存划分内存空间被动态的划分为若干个长度不相同的区域,称为物理段,每个物理段由起始地址和长度确定内存分配
以段为单位分配内存,每一个段在内存中占据连续空间(内存随机分割,需要多少分配多少),但各段之间可以不连续存放2023/9/3第六章存储管理内存划分2023/8/3第六章存储管理...0S工作区段[B]主程序段[M]......0EP子程序段[X]0K...CALL[X][E].........CALL[Y][F]CALL[A]116......0FL子程序段[Y]0116N数组[A]12345...2023/9/3第六章存储管理...0S工作区段[B]主程序段[M]0EP子程操作系统.....B0SA0NY0LX0PM0K逻辑段号01234作业1的地址空间10003200500060008000PKSLN主存K3200P1500L6000N8000S5000段号段地址01234操作系统2023/9/3第六章存储管理操作系统B0SA0NY0LX0PM0K逻辑段号016.4.2段地址映射1、地址映射数据结构
段地址映射的数据结构有段表、段表首址指针和段表的长度。段表首址指针和段表长度存放在进程自己的PCB中。段表一般包括有段的长度、段的首址和存取状态等信息。 每一进程有个段表,程序的每一个段在段表中占用一个表目。段号012段首址段长度58K20K100K110K260K140K2023/9/3第六章存储管理6.4.2段地址映射1、地址映射数据结构段号012段首址2、内存的分配空闲块管理空闲块表(队列)内存分配算法(三种) 首次最佳最坏与动态分区管理相同2023/9/3第六章存储管理2、内存的分配空闲块管理2023/8/3第六章存储管理3、段地址变换 段地址变换由硬件地址变换机构完成2023/9/3第六章存储管理3、段地址变换 段地址变换由硬件地址变换机构完成2023/8说明段地址映射过程为:程序地址字送入虚地址寄存器VR中。取出段号S和段内位移W。根据段表首址指针找到段表,查找段号为S的表目,得到该段的首地址。把段首地址与段内位移相加,形成内存地址送入MR中,并以此地址访问内存。2023/9/3第六章存储管理说明段地址映射过程为:2023/8/3第六章存储管理4、快表同页地址变换一样,在段地址变换过程中,也有两次访问内存的问题。为了加快访问内存的速度也可采用快速存储器组成快表。2023/9/3第六章存储管理4、快表同页地址变换一样,在段地址变换过程中,也有两次访问内
Cl
Cb+段号S段内地址d比较比较b
+d段表S>=Cl快表物理地址段表始址寄存器段表长度寄存器逻辑地址Lb...SLb地址越界d>=Ld>=L地址映射及存储保护机制地址越界地址越界比较2023/9/3第六章存储管理ClCb+段号S段内地址d比较比较b+d段5、分段与分页技术的比较
分段与分页主要有以下差别:段是依据程序的逻辑结构划分的,页是按内存线性空间物理划分的。段式技术中程序地址空间是二维的,分页技术中程序地址空间是一维的。段是面向用户的,页对用户而言是透明的。2023/9/3第六章存储管理5、分段与分页技术的比较分段与分页主要有以下差别:2023段长由用户决定,且各段的大小一般不相等,唯一的限制是最大长度。面页长是由系统决定的,各页的长度必须相等。段的共享比页的共享更容易。2023/9/3第六章存储管理段长由用户决定,且各段的大小一般不相等,唯一的限制是最大长度6.4.3段式存储管理方案小结优点:便于动态申请内存管理和使用统一化便于共享便于动态链接缺点:产生碎片思考:与可变分区存储管理方案的相同点与不同点?2023/9/3第六章存储管理6.4.3段式存储管理方案小结优点:2023/8/3第六6.5段页式存储管理方式产生背景:结合页式段式优点,克服二者的缺点6.5.1段页式存储管理基本思想6.5.2地址映射2023/9/3第六章存储管理6.5段页式存储管理方式产生背景:2023/8/3第六章6.5.1段页式存储管理基本思想用户程序划分 按段式划分(对用户来讲,按段的逻辑关系进行划分;对系统讲,按页划分每一段)逻辑地址内存划分 按页式存储管理方案内存分配 以页为单位进行分配段号段内地址页号页内地址2023/9/3第六章存储管理6.5.1段页式存储管理基本思想用户程序划分段号段内地址段表:记录了每一段的页表始址和页表长度页表:记录了逻辑页号与内存块号的对应关系(每一段有一个,一个程序可能有多个页表)内存分配管理:同页式管理6.5.2地址映射2023/9/3第六章存储管理段表:记录了每一段的页表始址和页表长度6.5.2地址映射图示2023/9/3第六章存储管理图示2023/8/3第六章存储管理思考在具有快表的段页式存储管理方案中,如何实现地址变换?2023/9/3第六章存储管理思考在具有快表的段页式存储管理方案中,如何实现地址变换?206.6覆盖技术与交换技术6.6.1、为什么引入?在多道环境下扩充内存的方法,用以解决在较小的存储空间中运行较大程序时遇到的矛盾覆盖技术主要用在早期的操作系统中交换技术被广泛用于小型分时系统中,交换技术的发展导致了虚存技术的出现2023/9/3第六章存储管理6.6覆盖技术与交换技术6.6.1、为什么引入?2023/交换技术与覆盖技术共同点:进程的程序和数据主要放在外存,当前需要执行的部分放在内存,内外存之间进行信息交换不同点:如何控制交换?2023/9/3第六章存储管理交换技术与覆盖技术共同点:2023/8/3第六章存储管理6.6.2覆盖技术把程序划分为若干个功能上相对独立的程序段,按照其自身的逻辑结构将那些不会同时执行的程序段共享同一块内存区域程序段先保存在磁盘上,当有关程序段的前一部分执行结束,把后续程序段调入内存,覆盖前面的程序段(内存“扩大”了)覆盖:一个作业的若干程序段,或几个作业的某些部分共享某一个存储空间一般要求作业各模块之间有明确的调用结构,程序员要向系统指明覆盖结构,然后由由操作系统完成自动覆盖2023/9/3第六章存储管理6.6.2覆盖技术把程序划分为若干个功能上相对独立的程序段A8KE4KF10KC10KB8KD12K作业X的调用结构作业X的常驻区
A(8K)覆盖区0(10K)覆盖区1(12K)
BC
D
E
F图示2023/9/3第六章存储管理AEFCBD作业X的调用结构作业X的常驻区覆盖区0覆盖区1缺点:对用户不透明,增加了用户负担
例子:目前这一技术用于小型系统中的系统程序的内存管理上,MS-DOS的启动过程中,多次使用覆盖技术;启动之后,用户程序区TPA的高端部分与COMMAND.COM暂驻模块也是一种覆盖结构分析2023/9/3第六章存储管理缺点:分析2023/8/3第六章存储管理6.6.3交换技术为什么引入交换技术?当内存空间紧张时,系统将内存中某些进程暂时移到外存,把外存中某些进程换进内存,占据前者所占用的区域,这种技术是进程在内存与外存之间的动态调度多用于分时系统中2023/9/3第六章存储管理6.6.3交换技术为什么引入交换技术?2023/8交换技术实现中的几个问题选择原则
即:将哪个进程换出内存?例子:分时系统,时间片轮转法或基于优先数的调度算法,在选择换出进程时,换出要长时间等待的进程。2023/9/3第六章存储管理交换技术实现中的几个问题选择原则2023/8/3第六章存储交换时机的确定
何时需发生交换?例子:只要不用就换出(或很少再用)只在内存空间不够或有不够的危险时换出2023/9/3第六章存储管理交换时机的确定何时需发生交换?2023/8/3第六章交换时需要做哪些工作?
需要一个盘交换区:必须足够大以存放用户程序的内存映像的拷贝;必须对这些内存映像直接存取。2023/9/3第六章存储管理交换时需要做哪些工作?需要一个盘交换区:2023/8换入回内存时位置的确定
换出后再换入的内存位置一定要在换出前的原来位置上吗?受地址映射技术的影响,即绝对地址产生时机的限制
2023/9/3第六章存储管理换入回内存时位置的确定换出后再换入的内存位置一定要在换分析与覆盖技术相比,交换技术不要求用户给出程序段之间的逻辑覆盖结构;交换发生在进程或作业之间,而覆盖发生在同一进程或作业内。覆盖只能覆盖那些与覆盖段无关的程序段2023/9/3第六章存储管理分析与覆盖技术相比,交换技术不要求用户给出程序段之间的逻辑覆6.7虚拟存储 以CPU时间和外存空间换取昂贵内存空间,这是操作系统中的资源转换技术6.7.1概述6.7.2虚拟页式存储管理6.7.3虚拟段式存储管理2023/9/3第六章存储管理6.7虚拟存储 以CPU时间和外存空间换取昂贵内存空间,这6.7.1概述程序局部性原理时间局部性一条指令被执行了,则在不久的将来它可能再被执行空间局部性若某一存储单元被使用,则在一定时间内,与该存储单元相邻的单元可能被使用2023/9/3第六章存储管理6.7.1概述程序局部性原理2023/8/3第六章存储管6.7.2、虚拟页式存储管理1、基本思想在进程开始运行之前,不是装入全部页面,而是装入几个或零个页面,之后根据进程运行的需要,动态装入其它页面;当内存空间已满,而又需要装入新的页面时,则根据某种算法淘汰某个页面,以便装入新的页面2023/9/3第六章存储管理6.7.2、虚拟页式存储管理1、基本思想2023/8/3第六XXXX7X5XXX34061260K-64K56K-60K52K-56K48K-52K44K-48K40K-44K36K-40K32K-36K28K-32K24K-28K20K-24K16K-20K12K-16K8K-12K4K-8K0K-4K28K-32K24K-28K20K-24K16K-20K12K-16K8K-12K4K-8K0K-4K虚地址空间物理地址空间}虚页页框2023/9/3第六章存储管理XXXX7X5XXX34061260K-64K56K-60K2、页表表项页号、内存块号、驻留位、外存地址、访问位、修改位 驻留位(中断位):表示该页是在内存还是在外存访问位:根据访问位来决定淘汰哪页(由不同的算法决定)修改位:查看此页是否在内存中被修改过页号中断位内存块号外存地址访问位修改位2023/9/3第六章存储管理2、页表表项页号、内存块号、驻留位、外存地址、访问位、修改位151413121110
9
87
654321000000000000000011110000101100000000000001111001000111010011010100010000000000100011000000000100110在/不在内存页表虚地址8196物理地址245802023/9/3第六章存储管理1514131211109876543、缺页中断(PageFault)处理在地址映射过程中,在页表中发现所要访问的页不在内存,则产生缺页中断。操作系统接到此中断信号后,就调出缺页中断处理程序,根据页表中给出的外存地址,准备将该页调入内存此时应将缺页的进程挂起(调页完成唤醒)2023/9/3第六章存储管理3、缺页中断(PageFault)处理在地址映射过程中,在如果内存中有空闲块,则分配一个块,将要调入的页装入该块,并修改页表中相应页表项目的驻留位及相应的内存块号若此时内存中没有空闲块,则要淘汰某页(若被淘汰页在内存期间被修改过,则要将其写回外存)2023/9/3第六章存储管理如果内存中有空闲块,则分配一个块,将要调入的页装入该块,并修思考缺页中断同一般中断的区别?2023/9/3第六章存储管理思考缺页中断同一般中断的区别?2023/8/3第六章存储管缺页中断同一般中断都是中断,相同点是:保护现场中断处理恢复现场不同点:一般中断是一条指令完成后中断,缺页中断是一条指令执行时中断一条指令执行时可能产生多个缺页中断。如指令可能访问多个内存地址,这些地址在不同的页中。2023/9/3第六章存储管理缺页中断同一般中断都是中断,相同点是:2023/8/3第六章4、页面淘汰算法先进先出页面淘汰算法(FIFO)
选择在内存中驻留时间最长的页并淘汰之第二次机会淘汰算法(SCR)
按照先进先出算法选择某一页面,检查其访问位,如果为0,则淘汰该页,如果为1,则给第二次机会,并将访问位置0理想淘汰算法—最佳页面算法(OPT)
淘汰以后不再需要的或最远的将来才会用到的页面2023/9/3第六章存储管理4、页面淘汰算法先进先出页面淘汰算法(FIFO)2023/8最近最久未使用页面淘汰算法(LRU)
选择最后一次访问时间距离当前时间最长的一页并淘汰之即淘汰没有使用的时间最长的页实现代价很高软件方法或硬件方法2023/9/3第六章存储管理最近最久未使用页面淘汰算法(LRU)2023/8/3第六章LRU的硬件解法:
系统为每页设置一个寄存器R,每当访问这一页时,将该页对应的寄存器R置1,以后每个时间间隔将所有的R左移一位,当淘汰一页时就选择R值最大的页。也就是说R值越大,对应的页未被使用的时间越长。所以淘汰的是最久未使用的页。显然,R的位数越多越精确。但系统硬件成本也就越高。2023/9/3第六章存储管理LRU的硬件解法:2023/8/3第六章存储管理LRU软件解法:
设置一个页号栈,当一个页面被访问时,就立即将它的页号压入页号栈,并检查页号栈中是否有与刚压入栈顶的相同的页号,若有,则从页号栈中抽出,以保证页号栈中无相同的页号。当系统要淘汰一节时,总是从页号栈底取出一个页号淘汰,即淘汰的页是最久未使用的。2023/9/3第六章存储管理LRU软件解法:2023/8/3第六章存储管理LRU近似算法:
在页表中增加一访问位,每当访问一页时,将该页的访问位由硬件置1,软件周期(T)性地将所有访问位置0。在时间T内,访问过的页其访问位为1,反之为0,淘汰为0的页。缺点:T难定。太小,访问位为0的页相当多,所选的不一定是最久未用的。太大,所有页的引用位可能都为1,找不到合适的淘汰页。
2023/9/3第六章存储管理LRU近似算法:2023/8/3第六章存储管理最不经常使用(LFU)
选择访问次数最少的页面淘汰之与LRU的硬件解法类似。
2023/9/3第六章存储管理最不经常使用(LFU)2023/8/3第六章存储管理某程序在内存中分配三个块,访问页的走向为4,3,2,1,4,3,5,4,3,2,1,5,按FIFO、
LRU、OPT算法分别计算缺页次数假设开始时所有页均不在内存例12023/9/3第六章存储管理某程序在内存中分配三个块,访问页的走向为4,3,2,1FIFO432143543215页1432143555211页243214333522页34321444355
xxxxxxx
xx
共缺页中断9次FIFO2023/9/3第六章存储管理FIFO43214354
LRU432143543215页1432143543215页243214354321页34321435432
xxxxxxx
xxx共缺页中断10次
LRU2023/9/3第六章存储管理LRU43214354
OPT432143543215页1432111555211页243333333555页34444444444
xxxx
x
xx
共缺页中断7次OPT2023/9/3第六章存储管理OPT4321435练习某程序在内存中分配四个块,访问页的走向为4,3,2,1,4,3,5,4,3,2,1,5,按LRU、OPT算法分别计算缺页次数假设开始时所有页均不在内存2023/9/3第六章存储管理练习某程序在内存中分配四个块,访问页的走向为4,3,2,1,LRU432143543215页1432143543215页243214354321页34321435432页4432111543
xxxx
x
xxx共缺页中断8次2023/9/3第六章存储管理LRU43214OPT432143543215页1432111555511页243222222255页34333333333页4444444444
xxxx
x
x
共缺页中断6次2023/9/3第六章存储管理OPT43214有一虚拟存储系统,采用先进先出的页面淘汰算法。在内存中为每个进程分配3块。进程执行时使用页号的顺序为432143543215(1) 该进程运行时总共出现几次缺页。(2) 若每个进程在内存有4块,又将产生几次缺页。(3) 如何解释所出现的现象。
例22023/9/3第六章存储管理有一虚拟存储系统,采用先进先出的页面淘汰算法。在内存中为每个FIFO432143543215页1432143555211页243214333522页34321444355
xxxxxxx
xx
共缺页中断9次m=32023/9/3第六章存储管理FIFO43214354FIFO432143543215页1432111543215页243222154321页34333215432页4444321543
xxxx
xx
xxxx共缺页中断10次m=42023/9/3第六章存储管理FIFO43214354m=3时,缺页中断9次m=4时,缺页中断10次FIFO页面淘汰算法会产生异常现象(Belady现象),即:当分配给进程的物理页面数增加时,缺页次数反而增加2023/9/3第六章存储管理m=3时,缺页中断9次2023/8/3第六章存储管理(1)分配给进程的物理块
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年大班幼儿节日说课稿
- 2026年淄博市临淄区事业单位人员招聘笔试参考题库及答案详解
- 2026年北京市海淀区公务员人员招聘笔试备考题库及答案详解
- 2026年山东省济南市公务员人员招聘笔试参考题库及答案详解
- 2026海南屯昌县机关事务中心公益性岗位招聘1人笔试模拟试题及答案解析
- 2026年阜阳市颍泉区公务员人员招聘考试模拟试题及答案详解
- 2026年保山市隆阳区事业单位人员招聘笔试备考试题及答案详解
- 2025-2026学年关于花朵健康说课稿
- 2026年塔城地区事业单位人员招聘笔试参考题库及答案详解
- 2025-2026学年大班拼音r说课稿
- 5.2.2 维护生态安全课件(共25张+内嵌视频3个)人教版(2024)八年级上册
- T∕CEA 0061-2025 电梯门机规范
- 部编版小学一年级语文单韵母aoeiuu课件
- 第六章人体生命活动的调节测试卷2026-2027学年人教版八年级上册生物
- 谐音梗挑战课件
- GB/T 36213-2026船舶和海上技术船舶系泊和拖带设备系泊导缆孔
- 2026年安徽省中考数学试卷(含答案及解析)
- 2026年8上物理1单元试卷及答案
- 《JBT 13298-2017YE3系列(IP23)三相异步电动机技术条件(机座号160~355)》专题研究报告
- 面包厂检验室工作制度
- 新课堂、新课堂、新高考++2025年版《普通高中语文课程标准》解读
评论
0/150
提交评论