新第4章存储器管理课件

上传人:m**** 文档编号:569172459 上传时间:2024-07-27 格式:PPT 页数:79 大小:836.51KB
返回 下载 相关 举报
新第4章存储器管理课件_第1页
第1页 / 共79页
新第4章存储器管理课件_第2页
第2页 / 共79页
新第4章存储器管理课件_第3页
第3页 / 共79页
新第4章存储器管理课件_第4页
第4页 / 共79页
新第4章存储器管理课件_第5页
第5页 / 共79页
点击查看更多>>
资源描述

《新第4章存储器管理课件》由会员分享,可在线阅读,更多相关《新第4章存储器管理课件(79页珍藏版)》请在金锄头文库上搜索。

1、第第第第4 4章章章章存储器管理存储器管理存储器管理存储器管理本章要点存储器管理的有关概念存储器管理的有关概念内存的覆盖和交换技术内存的覆盖和交换技术存储器的具体管理方法存储器的具体管理方法4.1 4.1 存储管理的有关概念存储管理的有关概念内存的分配和回收提高内存的利用率实现地址映射“扩充”主存容量存储保护4.1.14.1.1、存储器管理的目的和功能、存储器管理的目的和功能、存储器管理的目的和功能、存储器管理的目的和功能1 1、内存的分配和回收、内存的分配和回收、内存的分配和回收、内存的分配和回收按用户要求,把适当的存储空间分配给相应的作业按用户要求,把适当的存储空间分配给相应的作业按用户要

2、求,把适当的存储空间分配给相应的作业按用户要求,把适当的存储空间分配给相应的作业 记录内存使用情况记录内存使用情况记录内存使用情况记录内存使用情况: 哪些是已分配的,哪些是未分配的 实施分配实施分配实施分配实施分配 在系统程序或用户提出申请时,分配相应的空间,同时修改内存记录表 接受系统或用户释放的存储区域接受系统或用户释放的存储区域接受系统或用户释放的存储区域接受系统或用户释放的存储区域,并相应地修改分配记录表2 2 2 2、提高内存的利用率、提高内存的利用率、提高内存的利用率、提高内存的利用率3 3 3 3、实现地址映射、实现地址映射、实现地址映射、实现地址映射 用户作业使用的逻辑地址 装

3、入内存按照实际的地址空间 所以需要有从逻辑地址到实际地址的转换机制4 4 4 4、“扩充扩充扩充扩充”主存容量主存容量主存容量主存容量 扩种不是物理的增大内存容量,而是对内存空间的逻辑扩充(通过软件的方法),即:用户感受到的内存容量,比实际的内存容量大5 5 5 5、存储保护、存储保护、存储保护、存储保护确保各道作业都在所分配的存储区诶操作,互不干扰直接指定方式直接指定方式直接指定方式直接指定方式程序员在编写程序时,或编译程序对源程序进行编译时,所用的是实际存储地址,为用户分配内存就按照这个实际地址进行分配前提:存储器的可用容量是固定且可知的4.1.24.1.2、存储器分配的方式、存储器分配的

4、方式、存储器分配的方式、存储器分配的方式 存储分配所要解决的问题是:什么时候,以什什么时候,以什什么时候,以什什么时候,以什么方式,为一个作业分配主存空间,并使这些操作么方式,为一个作业分配主存空间,并使这些操作么方式,为一个作业分配主存空间,并使这些操作么方式,为一个作业分配主存空间,并使这些操作对多用户来说是透明的对多用户来说是透明的对多用户来说是透明的对多用户来说是透明的静态分配(静态分配(静态分配(静态分配(Static AllocationStatic Allocation)1、程序在装入的时候才确定实际地址2、一个作业装入时必须分配其要求的全部存储量3、存储空间不够,不能装入该作业

5、4、作业退出系统前,一直占用它的存储空间动态分配(动态分配(动态分配(动态分配(Dynamic AllocationDynamic Allocation)1、程序在装入的时候才确定实际地址2、一个作业无需全部一次性装入3、在其执行过程中可根据需要申请存储空间 4、作业的占用的存储空间,可以在不需要的时候,归还给系统逻辑地址空间逻辑地址空间逻辑地址空间逻辑地址空间(用户编写程序所用的地址空间,又称用户编写程序所用的地址空间,又称用户编写程序所用的地址空间,又称用户编写程序所用的地址空间,又称逻辑地址逻辑地址逻辑地址逻辑地址):任何一个程序的逻辑地址空间都是以地以地以地以地址址址址0 0起始起始起

6、始起始的逻辑地址的集合,逻辑地址空间的地址称为逻辑地址。逻辑地址又称为相对地址,程序中的逻辑地址,相对于地址0 4.1.34.1.3、重定位(、重定位(、重定位(、重定位(RelocationRelocation)LOAD A,10hLOAD A,20h000H200H000H230H作业作业作业作业A A A A作业作业作业作业B B B B物理存储空间物理存储空间物理存储空间物理存储空间(主存中一系列存储单元的编号,又称主存中一系列存储单元的编号,又称主存中一系列存储单元的编号,又称主存中一系列存储单元的编号,又称物理地址物理地址物理地址物理地址) :一个程序在执行时所占用的内存空间称作它

7、的物理存储空间,不同程序的存储空间不能冲突LOAD A,10hLOAD A,20h000H200H000H230H作业作业作业作业A A A A作业作业作业作业B B B BLOAD A,10hLOAD A,20h作业作业作业作业A A A A作业作业作业作业B B B B作业编译后的目的程序逻辑地址空间存储空间作业的逻辑地址空间作业的实际地址空间装入内存一个编译好的程序,存在于它自己的逻辑空间内,装入内存时,才把它装入内存空间重定位:重定位:重定位:重定位:在一般情况下,一个作业在装入时,分配到的实际存储空间地址和它的逻辑地址空间是不一致的。 由于一个作业装入到与其逻辑地址空间不一致的存储空

8、间所引起的对有关地址部分的调整过程有关地址部分的调整过程有关地址部分的调整过程有关地址部分的调整过程,就是我们所说的地址重定位LOAD A,220h000H200H作业作业作业作业A A A A2345220HA=2345LOAD A,220h220h作业作业作业作业A A A A87650220H0000H1200H1000H23451220H地址重定位,实际上就是一个地址变换过程,是地址重定位,实际上就是一个地址变换过程,是地址重定位,实际上就是一个地址变换过程,是地址重定位,实际上就是一个地址变换过程,是把逻辑地址变成物理地址的过程。这种地址变换,把逻辑地址变成物理地址的过程。这种地址变

9、换,把逻辑地址变成物理地址的过程。这种地址变换,把逻辑地址变成物理地址的过程。这种地址变换,又称为地址映射。又称为地址映射。又称为地址映射。又称为地址映射。重定位类型重定位类型重定位类型重定位类型 作业在装入过程中在装入过程中在装入过程中在装入过程中由装配程序进行的地址变换方式,称为静态重定位。静态重定位。静态重定位。静态重定位。 当访问指令或数据时(作业执行时作业执行时作业执行时作业执行时),由附加的地址变换机构进行的地址变换方式,称为动动动动态重定位。态重定位。态重定位。态重定位。(1 1 1 1)静态重定位)静态重定位)静态重定位)静态重定位LOAD A,150015001、地址映射是在

10、程序装入的时候,集中一次性完成2、由编译程序将程序中出现的逻辑地址改成实际的物理地址主要缺点:主要缺点:主要缺点:主要缺点:1 1、不能有效地利用内存;、不能有效地利用内存;、不能有效地利用内存;、不能有效地利用内存;2 2、作业必须连续存放,若作业所需的存储量超过可用、作业必须连续存放,若作业所需的存储量超过可用、作业必须连续存放,若作业所需的存储量超过可用、作业必须连续存放,若作业所需的存储量超过可用的存储空间,用户必须考虑覆盖结构;的存储空间,用户必须考虑覆盖结构;的存储空间,用户必须考虑覆盖结构;的存储空间,用户必须考虑覆盖结构;3 3、用户之间难以共享主存中的同一程序。、用户之间难以

11、共享主存中的同一程序。、用户之间难以共享主存中的同一程序。、用户之间难以共享主存中的同一程序。(2 2 2 2)动态重定位)动态重定位)动态重定位)动态重定位1、地址映射是在程序执行的时候,由硬件地址映射机构完成2、采用基地址寄存器BR,存放现行程序的内存空间的起始地址只要改变基地址寄存器BR的内容,便可把程序定位在新的内存空间。主要优点:主要优点:主要优点:主要优点:1 1、主存的使用更加灵活有效;、主存的使用更加灵活有效;、主存的使用更加灵活有效;、主存的使用更加灵活有效;一个用户的作业不一定要一个用户的作业不一定要一个用户的作业不一定要一个用户的作业不一定要分配一个连续的存储区。作业在开

12、始之前,也不一定把分配一个连续的存储区。作业在开始之前,也不一定把分配一个连续的存储区。作业在开始之前,也不一定把分配一个连续的存储区。作业在开始之前,也不一定把他的地址空间全部装入内存他的地址空间全部装入内存他的地址空间全部装入内存他的地址空间全部装入内存2 2、几个作业共享一程序段的单个副本比较容易;、几个作业共享一程序段的单个副本比较容易;、几个作业共享一程序段的单个副本比较容易;、几个作业共享一程序段的单个副本比较容易;3 3、系统来负责全部的存储管理。、系统来负责全部的存储管理。、系统来负责全部的存储管理。、系统来负责全部的存储管理。虚拟存储器管理的基本思想是利用大容量的外存空大容量

13、的外存空大容量的外存空大容量的外存空间间间间来逻辑扩充内存,产生一种不受实际内存容量限不受实际内存容量限不受实际内存容量限不受实际内存容量限制的逻辑存储器制的逻辑存储器制的逻辑存储器制的逻辑存储器,通过对这种虚拟存储器的管理,充分发挥内存资源的利用率,使系统能够有效地支持多道程序的并发运行以及解除对用户作业大小的限制,从而增强系统的处理能力。4.1.44.1.4、虚拟存储器概念、虚拟存储器概念、虚拟存储器概念、虚拟存储器概念虚拟存储器虚拟存储器是指对内存的虚拟一级存储器概念作业地址空间概念虚拟存储器的实现条件要有相当容量的辅存要有一定容量的主存要使用动态分配和动态重定位要有交换技术的支持交换技

14、术 交换技术使得一个作业同时被分配到内存和外存两部分运行成为可能,所以只有使用了交换技术才能实现虚拟存储4.2 4.2 单用户单任务系统的存储器管单用户单任务系统的存储器管理理1 1、存储器的分配、存储器的分配、存储器的分配、存储器的分配一个区域供操作系统占用,另一个区域则为用户的应用程序所使用。采用静态分配技术,作业一次性装入内存一旦进入内存,等该作业结束后才能释放内存空间当作业需求的空间大于实际可用空间时,系统会出现内存不足的错误致使作业无法运行2 2、覆盖技术(、覆盖技术(、覆盖技术(、覆盖技术(OverlayOverlay)把一个大的程序划分成一系列的覆盖覆盖覆盖覆盖。每个覆盖是一个相

15、对独立的程序单位。把程序执行时并不要求同时装入主存的覆盖组,组成一组,称为覆盖段(覆盖段(覆盖段(覆盖段(P94P94,图,图,图,图4.54.5)通常,一个大作业的覆盖结构要求编程人员事先给出;为了实现覆盖管理,则需要得到相应的编译程序和连接装配程序的协助。3 3、存储保护、存储保护、存储保护、存储保护只需要考虑对操作系统程序区域的保护自动地址修改 若操作系统位于低端(如低4KB区域),则对用户的存储访问,地址自动加上4K。高端同理。0页、1页寻址 用户程序和操作系统各占一半空间(不同页)界限寄存器 又称隔离寄存器(上、下限寄存器)4 4、DOSDOS的存储管理的存储管理的存储管理的存储管理

16、内存分配内存分配 1)对地址空间进行分段方法 2)覆盖技术4.3 4.3 多用户系统存储器管理多用户系统存储器管理分区式分配分区式分配基本思想:把内存划分成若干个连续区域,称为分区,每个分区装入一个作业运行。4.3.14.3.1、固定分区分配、固定分区分配、固定分区分配、固定分区分配1、系统初始化时,把存储空间划分成若干个固定大小若干个固定大小若干个固定大小若干个固定大小的区域,作业运行时,为其选择一个合适的区域2、存储区域是在系统启动时划定的,在用户作业装入及运行过程中,其区域的大小和边界是不能改变的3、为了实现这种固定分区的分配,系统需要建立一张 分区说明表分区说明表分区说明表分区说明表。

17、在每个分配的分区中,通常都有一部分未被作业占用而浪费掉。这种分配给用户而未被利用的部分,称作存储区的“内碎片”(Internal Fragmentation)。分区号分区号分区号分区号大小大小大小大小起始地址起始地址起始地址起始地址状态状态状态状态112K20K已分配232K32K已分配364K64K已分配4128K128K未分配操作系统作业A作业B作业C空分区可变分区是指系统不预先划分固定分区,而是在装入作业时划分,使分区的大小正好适应作业的需求量,且分区的个数是可变的。一个可变分区分配和回收的示例4.3.24.3.2、可变分区分配、可变分区分配、可变分区分配、可变分区分配减少存储区的“内碎

18、片”,提高主存的利用率1 1 1 1、可变分区管理的基本原理、可变分区管理的基本原理、可变分区管理的基本原理、可变分区管理的基本原理操作系统作业A(16K)空闲区10K作业B(90K)作业C(30K)作业D(70K)空闲区24K操作系统作业A(16K)空闲区10K作业B(90K)作业C(30K)空闲区94K作业作业D(70k)和作业)和作业E(50k)请求装入)请求装入操作系统作业A(16K)空闲区10K作业B(90K)作业C(30K)作业D(70K)空闲区24K操作系统空闲区26K作业B(90K)空闲区30K作业D(70K)空闲区24K作业作业A和作业和作业C完成完成作业作业E仍然不能分配仍

19、然不能分配主存分配表主存分配表主存分配表主存分配表描述主存分配信息的表格一般用两张表格:“已分配区表”和“空闲区表”可变分区的分配(装入作业)从空闲区表中找一个区域分配,修改“空闲区表”修改“已分配区表”,加入新装入的作业可变分区的回收(作业结束)“空闲区表”的修改有下面三种情况:归还区有下邻空闲区下邻空闲区下邻空闲区下邻空闲区归还区有上邻空闲区上邻空闲区上邻空闲区上邻空闲区归还区既有上邻空闲区又有下邻空闲上邻空闲区又有下邻空闲上邻空闲区又有下邻空闲上邻空闲区又有下邻空闲区2 2 2 2、可变分区分配和回收、可变分区分配和回收、可变分区分配和回收、可变分区分配和回收归还区有下邻空闲区下邻空闲区

20、下邻空闲区下邻空闲区起始地址长度标志7001000未分配2300800未分配40002000未分配80001000未分配起始地址:起始地址:起始地址:起始地址:1900 1900 长度:长度:长度:长度:400 400 待回收的作业区域:待回收的作业区域:待回收的作业区域:待回收的作业区域:23001900190012001200未分配未分配未分配未分配归还区有上邻空闲区上邻空闲区上邻空闲区上邻空闲区起始地址长度标志7001000未分配2300800未分配40002000未分配80001000未分配起始地址:起始地址:起始地址:起始地址:1700 1700 长度:长度:长度:长度:400 40

21、0 待回收的作业区域:待回收的作业区域:待回收的作业区域:待回收的作业区域:170070070014001400未分配未分配未分配未分配归还区有上、下邻空闲区上、下邻空闲区上、下邻空闲区上、下邻空闲区起始地址长度标志7001000未分配2300800未分配40002000未分配80001000未分配起始地址:起始地址:起始地址:起始地址:1700 1700 长度:长度:长度:长度:600 600 待回收的作业区域:待回收的作业区域:待回收的作业区域:待回收的作业区域:170070070024002400未分配未分配未分配未分配2300最佳适应算法(最佳适应算法(最佳适应算法(最佳适应算法(Be

22、st FitBest Fit) 为一作业选择分区时总是寻找其大小其大小其大小其大小最接近于作业所要求的存储区域。换句话:分配作业后,剩下的空白区最小缺点:1、回收时,插入到空白区链比较麻烦2、容易产生一些较小的无法再分配的碎片3 3 3 3、可变分区的分配策略、可变分区的分配策略、可变分区的分配策略、可变分区的分配策略如何从空闲区中选择一个区域分配给作业?有三种不同的分配算法有三种不同的分配算法有三种不同的分配算法有三种不同的分配算法: : : :最坏适应算法最坏适应算法最坏适应算法最坏适应算法 为作业选择存储区域时,总是寻找最大空白区。为了支持这个算法的实现,空白块应以大小递减的顺序链接起来

23、。首次适应算法首次适应算法首次适应算法首次适应算法首次适应算法是对它们进行折中考虑后设计出来的算法思想:空白区按照地址从小到大链接,为作业分配空间,从空白区链空白区链空白区链空白区链中查找,找到第一个足以满足该作业的空白区,分配给作业。最佳适应算法不一定是最佳的,最坏适应算法也最佳适应算法不一定是最佳的,最坏适应算法也最佳适应算法不一定是最佳的,最坏适应算法也最佳适应算法不一定是最佳的,最坏适应算法也不一定是最坏的不一定是最坏的不一定是最坏的不一定是最坏的随着分配和回收次数的增加,必然导致“碎片”的出现。通过重新安排作业在内存中的位置将所有空闲碎将所有空闲碎将所有空闲碎将所有空闲碎片合并片合并

24、片合并片合并成一个大的空闲区。必须有动态重定位的支持。采用移动技术时必须注意下列问题:移动会增加系统开销移动是有条件的4 4 4 4、移动技术、移动技术、移动技术、移动技术P118,习题7:在用可变分区方式管理主存时,假定主存中按地址顺序依次有五个空闲区五个空闲区五个空闲区五个空闲区,空闲区的大小依次为32K,10K,5K,228K,100K。现有五个作业J1,J2,J3,J4和J5,它们各需主存1K,10K,108K,28K和115K。若采用最先适应分配算法最先适应分配算法最先适应分配算法最先适应分配算法能把这五个作业按J1J1J5J5的顺序全部装入主存吗?按怎样的次序装入这按怎样的次序装入

25、这按怎样的次序装入这按怎样的次序装入这五个作业五个作业五个作业五个作业可使主存空间利用率最高。5k10k32k100k228k初始时,空闲区按从小到大排成链初始时,空闲区按从小到大排成链初始时,空闲区按从小到大排成链初始时,空闲区按从小到大排成链4k4k10k32k100k228k分配作业分配作业分配作业分配作业J1J1(1k1k)后的链)后的链)后的链)后的链4k32k100k228k分配作业分配作业分配作业分配作业J2J2(10k10k)后的链)后的链)后的链)后的链4k32k100k120k120k分配作业分配作业分配作业分配作业J3J3(108k108k)后的链)后的链)后的链)后的链

26、4k4k4k100k120k分配作业分配作业分配作业分配作业J4J4(28k28k)后的链)后的链)后的链)后的链作业作业作业作业J5J5分配到最后一个空闲区分配到最后一个空闲区分配到最后一个空闲区分配到最后一个空闲区按怎样的次序装入这五个作业可使主存空间利用率最高?答:上图分配结果,存在两个4k和1个5k的碎片,若再来三个5k的作业,分配不下。更改次序,使得最后的空闲区链表中有多于3个5k空闲区,则内存利用率会提高。本题,只要J4在J1之前进入内存,利用率就会提高4k4k4k100k5k5k把主存的存储空间,分成相同大小的块,这些块称为物理页面(物理块),将这些存储块编号,称为页面号设内存容

27、量为16MB,假如每4KB为一块,可分成4096个块,页面号为0-4095同理,将每个作业的地址空间,分成与内存大小相等的片,并称为页(Page),其编号为逻辑页号逻辑页号逻辑页号逻辑页号 在为一个作业分配内存空间时,总是以块(页)为单位,将每一个作业的页,放到一个内存的物理块中4.4 4.4 分页式存储器管理分页式存储器管理4.4.14.4.1、静态分页系统、静态分页系统、静态分页系统、静态分页系统1 1、基本原理、基本原理、基本原理、基本原理分页系统中,作业的逻辑地址格式:分页系统中,作业的逻辑地址格式:分页系统中,作业的逻辑地址格式:分页系统中,作业的逻辑地址格式:页号页号页号页号P P

28、页内地址(块内位移量)页内地址(块内位移量)页内地址(块内位移量)页内地址(块内位移量)设作业大小为设作业大小为设作业大小为设作业大小为1MB1MB,假如每,假如每,假如每,假如每4KB4KB为一块,可分成为一块,可分成为一块,可分成为一块,可分成256256个块,逻辑页个块,逻辑页个块,逻辑页个块,逻辑页号为号为号为号为0-2550-255第第第第00H00H页页页页第第第第01H01H页页页页第第第第FFHFFH页页页页指令在页内的偏移量为指令在页内的偏移量为指令在页内的偏移量为指令在页内的偏移量为000H-FFFH000H-FFFH指令在页内的偏移量为指令在页内的偏移量为指令在页内的偏移

29、量为指令在页内的偏移量为000H-FFFH000H-FFFH指令在页内的偏移量为指令在页内的偏移量为指令在页内的偏移量为指令在页内的偏移量为000H-FFFH000H-FFFH 所谓静态分页系统,就是在调度一个作业时,使用的是静态分配的方法,必须把它的所有页一次必须把它的所有页一次必须把它的所有页一次必须把它的所有页一次装入到主存的块内装入到主存的块内装入到主存的块内装入到主存的块内; ;如果当时空闲块数不足,则该如果当时空闲块数不足,则该如果当时空闲块数不足,则该如果当时空闲块数不足,则该作业必须等待作业必须等待作业必须等待作业必须等待,系统调度另外的作业运行.为了实现逻辑地址到物理地址的映

30、射,系统需要如下三个表目: 页表页表页表页表 进程表进程表进程表进程表 存储页面表存储页面表存储页面表存储页面表逻辑页号物理块号0 151 232 7033 68页表页表页表页表(体现逻辑页号和物理块号之间的关系)(体现逻辑页号和物理块号之间的关系)(体现逻辑页号和物理块号之间的关系)(体现逻辑页号和物理块号之间的关系)进程运行时,每当要访问逻辑地址时,动态地址映动态地址映动态地址映动态地址映射机构射机构射机构射机构先将逻辑地址分离成页号页号页号页号P P和页内地址页内地址页内地址页内地址d d,然后查页表,得到P所对应的物理块号物理块号物理块号物理块号F F,将物理块号F F和和和和d d相

31、连相连相连相连(F块长+d),得到逻辑地址对应的物理地址。地址映射过程如下:由指令产生逻辑地址由逻辑页号查快表快表快表快表得到物理块号由物理块号与页内地址合并得到物理地址。2 2、地址变换、地址变换、地址变换、地址变换分页管理的存储保护分页管理的存储保护在分页存储管理中,存储保护功能在分页存储管理中,存储保护功能是采用是采用页表地址寄存器页表地址寄存器代替界地址代替界地址寄存器实现的,它规定了作业可访寄存器实现的,它规定了作业可访问的页表起始地址及其长度。问的页表起始地址及其长度。4.4.24.4.2、动态分页存储系统、动态分页存储系统、动态分页存储系统、动态分页存储系统指导思想:在作业运行之

32、前,只要求把当前需要的一当前需要的一当前需要的一当前需要的一部分页面部分页面部分页面部分页面装入主存,另外一部分装入到辅存的交换分辅存的交换分辅存的交换分辅存的交换分区区区区中,当作业运行过程中需要其他的页时,由虚拟存储系统(Virtual Memory System)自动控制内、外存之间的页面交换。在虚拟存储系统中所用的辅存,可以是一个专用的磁鼓或磁盘,也可以是用于存储文件的磁盘的一部分。1 1、基本原理、基本原理、基本原理、基本原理1)进程运行之前,将一部分页面一部分页面一部分页面一部分页面装入主存,另外一部分装入到辅存的交换分区辅存的交换分区辅存的交换分区辅存的交换分区中2)当进程运行过

33、程中如果所访问的页在内存,则可直接访问3)如果所访问的页不在内存,则发生缺页中断,由操作系统进行页面的动态调度调度过程:调度过程:调度过程:调度过程:1 1)找到被访问的页,在外存中的地址)找到被访问的页,在外存中的地址)找到被访问的页,在外存中的地址)找到被访问的页,在外存中的地址2 2)在内存中找一个空闲页面;如果没有,按照淘汰算法选)在内存中找一个空闲页面;如果没有,按照淘汰算法选)在内存中找一个空闲页面;如果没有,按照淘汰算法选)在内存中找一个空闲页面;如果没有,按照淘汰算法选择一个页面,将此页面写回外存,修改页表择一个页面,将此页面写回外存,修改页表择一个页面,将此页面写回外存,修改

34、页表择一个页面,将此页面写回外存,修改页表3 3)读入所需的页面,修改页表)读入所需的页面,修改页表)读入所需的页面,修改页表)读入所需的页面,修改页表4 4)重新启动进程执行被中断的指令)重新启动进程执行被中断的指令)重新启动进程执行被中断的指令)重新启动进程执行被中断的指令逻辑页号 物理块号 访问权限 内外标志 修改标志 外存地址动态分页系统的页表:动态分页系统的页表:动态分页系统的页表:动态分页系统的页表:内外标志=1,对应页在内存;=0,对应页在外存修改标志=1,对应页在内存期间被修改过,淘汰时,需要重新写回外存 =0,对应页没修改过,淘汰时,无需重新写回外存平均分配按进程的程序长度比

35、例分配按进程优先级比例分配进程长度和优先级比例分配2 2、内存页面分配策略、内存页面分配策略、内存页面分配策略、内存页面分配策略 请调请调请调请调所谓请调是当缺页发生时进行调度。当访问的页面不在内存时,由操作系统将其调入内存优点:优点:优点:优点:不会发生无意义的页面调度缺点:缺点:缺点:缺点:从缺页中断到所需页面被调入内存,进程需要等待,影响进程的推进速度3 3、页面调入时机、页面调入时机、页面调入时机、页面调入时机预调预调也称先行调度。是在缺页发生前进行调度,即当一个页面即将被访问之前,由操作系统将其调入内存。这样可以节省进程因缺页而等待的时间。优点:优点:优点:优点:减少缺页中断次数缺点

36、:缺点:缺点:缺点:可能存在无意义的调页;实现开销大如何知道一个页面即将被访问?如何知道一个页面即将被访问?如何知道一个页面即将被访问?如何知道一个页面即将被访问?程序的顺序性特征(正在访问12页,下一个要访问的可能是13、14页)淘汰算法:淘汰算法:淘汰算法:淘汰算法:当要访问页面在外存而不在内存时,需要将其调入内存,如果此时内存中无空闲页面,则需要将内存中某一个页面移出,被移出的页面称为淘汰页面。淘汰算法不仅可以用于页面的置换,也可用于快表项目以及段的置换,以下为几个常用的淘汰算法:最佳淘汰算法最佳淘汰算法最佳淘汰算法最佳淘汰算法先进先出淘汰算法(先进先出淘汰算法(先进先出淘汰算法(先进先

37、出淘汰算法(FIFOFIFO)最近最久未使用页面置换算法(最近最久未使用页面置换算法(最近最久未使用页面置换算法(最近最久未使用页面置换算法(LRULRU)计时法堆栈法最近最不常用调度算法(最近最不常用调度算法(最近最不常用调度算法(最近最不常用调度算法(LFULFU)4 4、淘汰算法(置换算法)、淘汰算法(置换算法)、淘汰算法(置换算法)、淘汰算法(置换算法) 最佳淘汰算法最佳淘汰算法最佳淘汰算法最佳淘汰算法淘汰以后不会再需要的,或者在最长的时间以后才会用到的页面,这种算法的缺页率最低该算法只有理论上的意义 先进先出淘汰算法(先进先出淘汰算法(先进先出淘汰算法(先进先出淘汰算法(FIFOFI

38、FO)最简单的页面淘汰算法两种方法可以实现:1、记录页面进入内存的时间;2、页面进入内存时排成一个队列缺点:1、效率不高 2、存在异常现象(Belady现象) 最近最久未使用页面置换算法(最近最久未使用页面置换算法(最近最久未使用页面置换算法(最近最久未使用页面置换算法(LRULRU)计时法: 每个页面设置一个访问计时器,每次被访问,从0开始计时。堆栈法:栈中存放当前在主存中的页面,每当访问一页时就调整一次,使栈顶总是指向最近访问的页面,栈底是最近最久没有被访问的页面P106,图4.11局部性原理局部性原理局部性原理局部性原理认为:过去一段时间里不曾被访问过的页面,在最近的将来,也不会再被访问

39、算法思想:算法思想:算法思想:算法思想:当需要置换一个页面时,选择在最近一段时间内最久不用的页面予以淘汰实现:实现:实现:实现:利用“ “页面访问页面访问页面访问页面访问” ”位记录一个页面自上次访问以来所经历的时间t,并选择t最大的页面淘汰 最近最不常用调度算法(最近最不常用调度算法(最近最不常用调度算法(最近最不常用调度算法(LFULFU)算法思想:算法思想:算法思想:算法思想:根据在一段时间内页面被访问的次数,选择可以调出的页面。如果一个页面被访问的次数多,则是经常要使用的页面,就不该被调出实现:实现:实现:实现:利用页面计数器,页面计数器,页面计数器,页面计数器,统计每个页被访问的次数

40、5 5、缺页中断率和抖动、缺页中断率和抖动、缺页中断率和抖动、缺页中断率和抖动进程执行中,若访问页面的总次数为访问页面的总次数为访问页面的总次数为访问页面的总次数为A A,有F F次访次访次访次访问的页面尚未装入主存问的页面尚未装入主存问的页面尚未装入主存问的页面尚未装入主存,则产生了F次缺页中断。现定义:f=FA 把f称为缺页中断率。影响缺页中断率的因素有:分配给作业的主存块数分配给作业的主存块数多,则同时装入主存的页面数就多,因此减少了缺页中断的次数,即降低了缺页中断率。页面的大小页面调度算法程序编制方法页面在内存与外存中频繁调度,以至于系统用于调度页面在内存与外存中频繁调度,以至于系统用

41、于调度页面在内存与外存中频繁调度,以至于系统用于调度页面在内存与外存中频繁调度,以至于系统用于调度页面所需要的时间比进程实际运行所占用的时间还多,页面所需要的时间比进程实际运行所占用的时间还多,页面所需要的时间比进程实际运行所占用的时间还多,页面所需要的时间比进程实际运行所占用的时间还多,这种现象称为这种现象称为这种现象称为这种现象称为抖动抖动抖动抖动动态分页系统具有如下优点优点优点优点:可提供大容量的多个虚拟存储器。作业的地址空间不再受实际内存大小的限制。更有效地利用了主存。作业中不常使用的页不会长期驻留在内存,本次运行不到的信息也不会装入内存。多道程序运行的程度更高了更加方便了用户,特别是

42、大作业的用户4.4.34.4.3、分页系统的优缺点、分页系统的优缺点、分页系统的优缺点、分页系统的优缺点分页存储管理也有不少缺点缺点缺点缺点:增加了计算机的硬件成本,降低了处理机的速度必须用一部分存储空间来存放各种表格(页表,存储分块表)出现了块内的碎片问题:作业所占用的空间不一定是页的整数倍,一个作业,最后一页往往是不满的。对于静态分页系统,要求运行的作业,必须全部装入主存在动态分页系统中,为处理缺页中断缺页中断缺页中断缺页中断增加了系统开销P118,习题8:某采用页式虚拟存储管理的系统,接受一个共7页的作业,作业执行时依次访问的页为 1,2,3,4,2,1,5,6,2,1,2,3,7,6,

43、3,2,1,2,3,6。若采用最近最少用(LRU)调度算法,作业在得到两块主存空间两块主存空间两块主存空间两块主存空间和四块主存空间四块主存空间四块主存空间四块主存空间各会产生多少次缺页中断?如果采用先进先出(FIFO)调度算法又会有怎样的结果?LRULRU算法思想:算法思想:算法思想:算法思想:当需要置换一个页面时,选择在最近一段当需要置换一个页面时,选择在最近一段当需要置换一个页面时,选择在最近一段当需要置换一个页面时,选择在最近一段时间内最久不用的页面予以淘汰时间内最久不用的页面予以淘汰时间内最久不用的页面予以淘汰时间内最久不用的页面予以淘汰12LRULRU算法思想、两块内存空间可用算法

44、思想、两块内存空间可用算法思想、两块内存空间可用算法思想、两块内存空间可用32缺页缺页1 1次次1,2,3 3,4,2,1,5,6,2,1,2,3,7,63234缺页缺页2 2次次1,2,3,4 4,2,1,5,6,2,1,2,3,7,63424缺页缺页3 3次次1,2,3,4,2 2,1,5,6,2,1,2,3,7,62421缺页缺页4 4次次1,2,3,4,2,1 1,5,6,2,1,2,3,7,62151缺页缺页5 5次次1,2,3,4,2,1,5 5,6,2,1,2,3,7,612LRULRU算法思想、四块内存空间可用算法思想、四块内存空间可用算法思想、四块内存空间可用算法思想、四块内

45、存空间可用52缺页缺页1 1次次1,2,3,4,2,1,5 5,6,2,1,2,3,7,634345256缺页缺页1 1次次1,2,3,4,2,1,5,6 6,2,1,2,3,7,63434一个段定义为一组逻辑信息逻辑信息逻辑信息逻辑信息(如主程序,过程,数组等都可以作为一个段),每个作业地址空间每个作业地址空间每个作业地址空间每个作业地址空间按其内在的逻辑关系逻辑关系逻辑关系逻辑关系分成若干段段的长度是不固定的段内都是从0开始编址的连续地址空间段间的地址空间是不连续的。段式存储管理中作业的分段是由用户决定的。4.5 4.5 分段式存储管理分段式存储管理4.5.14.5.1、基本段式存储器管理

46、、基本段式存储器管理、基本段式存储器管理、基本段式存储器管理基本原理基本原理基本原理基本原理段内地址段内地址段内地址段内地址d d段号段号段号段号s s作业分段后,作业中的任一逻辑地址可表示为:(段(段(段(段号:段内地址号:段内地址号:段内地址号:段内地址) )页式存储管理提供连续的地址,由系统自动进行分页(整个作业的逻辑地址空间都是连续的)段式存储管理,分段是由用户决定的,每一段独立编程;段内的逻辑地址空间时连续的,但是段间的地址空间是不连续的段式管理和页式管理在段式管理和页式管理在段式管理和页式管理在段式管理和页式管理在逻辑地址逻辑地址逻辑地址逻辑地址上的区别:上的区别:上的区别:上的区

47、别:段表:段表:段表:段表:作业的各个段,可被装入不相连的几个内存区域因此,装入作业时,操作系统需为作业建立一张“段表”,指出该作业的每个分段的长度和在主存中的位置(起始地址)(起始地址)(起始地址)(起始地址)段号起始地址段长0120K40K1380K20K2460K20K3780K30K40K40K20K20K20K20K30K30K段号段号段号段号=0=0040K-1段内地址段内地址段内地址段内地址120K120K380K380K460K460K780K780K160K-1160K-1400K-1400K-1480K-1480K-1810K-1810K-1物理地址物理地址物理地址物理地址

48、段号段号段号段号=1=1020K-1段号段号段号段号=2=2020K-1段号段号段号段号=3=3030K-1段式存储管理分配主存空间的方法与可变分区管理方式的分配方法相同:进入主存空间进入主存空间进入主存空间进入主存空间分配时,根据段长找出一个可容纳该段的空分配时,根据段长找出一个可容纳该段的空分配时,根据段长找出一个可容纳该段的空分配时,根据段长找出一个可容纳该段的空闲区,当把作业装入主存后,为该作业建立闲区,当把作业装入主存后,为该作业建立闲区,当把作业装入主存后,为该作业建立闲区,当把作业装入主存后,为该作业建立一张一张一张一张“ “段表段表段表段表” ”回收存储空间的方法与可变分区管理

49、方式相同:作业结束时,回收该作业所有段所在的作业结束时,回收该作业所有段所在的作业结束时,回收该作业所有段所在的作业结束时,回收该作业所有段所在的内存区域内存区域内存区域内存区域主存空间的分配和回收主存空间的分配和回收主存空间的分配和回收主存空间的分配和回收地址转换地址转换地址转换地址转换段式管理的存储保护通过作业的段表实现在段表中,每一段有段的起始位置和长度,这相当于界限寄存器的基地址寄存器基地址寄存器和长度寄存器长度寄存器段式管理的存储保护段式管理的存储保护段式管理的存储保护段式管理的存储保护分页的作业地址空间是线性地址空间,而分段作业的地址空间是二维的“页”是信息的物理单位,大小固定,对

50、用户不可见;“段”是信息的逻辑单位,长度不定,用户可见。段式管理与页式管理的区别段式管理与页式管理的区别段式管理与页式管理的区别段式管理与页式管理的区别分页管理查页表得到的是页所对应的内存块号 物理地址=内存块号内存块号内存块号内存块号* *块长块长块长块长+块内位移 分段管理查段表得到的是段对应内存的起始地址 物理地址=该段主存地址该段主存地址该段主存地址该段主存地址+段内位移与页式管理相比,段式管理因为对作业是由用户从逻辑上分割,所以便于多用户多作业共享某一段。段式管理与页式管理的区别段式管理与页式管理的区别段式管理与页式管理的区别段式管理与页式管理的区别P118习题9:某采用段式存储管理

51、的系统为装入主存的一个作业建立了如下所示的段表。 段号 始址 段长 0 8K 3K 1 12K 2K 2 20K 4K 3 30K 8K 回答下列问题:(1)计算该作业访问0,432,1,10,2,500,3,400时的绝对地址。(2)总结段式管理的地址转换过程。0,4320,432的绝对地址的绝对地址的绝对地址的绝对地址= =8 8*1024+*1024+432432=8624=86241,101,10的绝对地址的绝对地址的绝对地址的绝对地址= =1212*1024+*1024+1010=12298=122982,5002,500的绝对地址的绝对地址的绝对地址的绝对地址= =2020*102

52、4+*1024+500500=20980=209803,4003,400的绝对地址的绝对地址的绝对地址的绝对地址= =3030*1024+*1024+400400=31120=31120虚拟段式存储管理仍以段式存储管理为基础,不要求作不要求作不要求作不要求作业的所有段一次性进入内存业的所有段一次性进入内存业的所有段一次性进入内存业的所有段一次性进入内存,可以为用户提供比主存实际容量大的虚拟空间。若要访问的段在内存,则按段式管理进行地址映射,若访问的段不在内存,则产生一个“缺段中断”4.5.24.5.2、虚拟段式存储器管理、虚拟段式存储器管理、虚拟段式存储器管理、虚拟段式存储器管理4.5.34.

53、5.3、段页式存储管理、段页式存储管理、段页式存储管理、段页式存储管理分段式内存管理的优缺点:1、程序的分段具有逻辑结构清晰,便于共享的优点2、但是,内存分配采用可变分区方式,因此,它带有分区管理的一些缺点3、每段必须占据主存的一个连续区域4、装入段时,可能产生内存已有信息的移动5、段长受空闲分区容量之和的限制为克服这个缺点,可用分段和分页相结合的方法,构成分页的段式存储管理,通常被称为“段页式存储管理”。段页式存储管理兼顾了段式在逻辑上清晰和页式在管理上方便的优点基本思想:1、仿照分页管理方法,将内存分成大小相等的块(页)2、作业仍由用户分段,每一段的段内地址仍是从“0”开始的一组连续地址3

54、、每一段再细分成若干块(页),大小和内存块大小相同4、作业装入时,无需将一个段整体装入连续的内存空间,可以将段的信息按照页、存入不必相邻的空闲主存块中段页式内存管理的逻辑地址格式:段号段号段号段号S S页号页号页号页号P P页内地址页内地址页内地址页内地址 d d段内地址 w程序员只知道段号S和段内地址w页号P和页内地址d,是由地址变换机构地址变换机构地址变换机构地址变换机构拆分w得到的2 2、地址映射、地址映射、地址映射、地址映射每一个装入主存储器的作业建立一张段表,且为每一段建立一张页表。地址映射段页式存储管理中,需要访问主存三次需要访问主存三次需要访问主存三次需要访问主存三次,这将使CP

55、U的执行指令速度大大降低。为了提高地址转换速度,通常引入快表。段页式存储管理的存储保护段页式存储管理的存储保护是通过作业的段表和页表共同实现的。Windows 2000/XP内存管理概述Win2K中的内存管理由位于ntoskrnl.exe中的内存管理器来实现,它由一组执行体系统服务程序、一个转换无效和访问错误陷阱的处理程序及其它组件组成。利用虚拟内存管理器(VMM)部件实现虚拟内存的管理。 Windows系统的存储管理监测内存的使用情况在Windows性能监视器中,可以观察到与内存使用有关的一些数据信息 精确地设置虚拟内存的大小利用性能监视器来观察分页文件的使用情况 分析统计数据 在“记数器日志”窗口中,选中所建的oldpage记数器,然后单击鼠标右键,选择“停止”。用记事本打开日志文件。精确地设置虚拟内存的大小 监视高速缓存的使用监视高速缓存的使用监视高速缓存的使用监视高速缓存的使用 Windows操作系统为了提高访问磁盘的速度,在内存中开辟出一块区域,称为“磁盘高速缓存”,用户可以使用性能监视器中的系统监视器监视磁盘高速缓存的使用情况。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号