《操作系统存储管理.pptx》由会员分享,可在线阅读,更多相关《操作系统存储管理.pptx(164页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、本章内容5.1 存储管理的基本概念存储管理的基本概念5.2 分区存储管理5.3 简单页式存储管理5.4 请求页式虚拟存储管理5.5 windows系统的存储管理5.6 段式与段页式存储管理第1页/共164页5.15.1存储管理的基本概念存储管理的基本概念存储系统的层次组织存储系统的层次组织用户程序的地址空间、重定位概念存储管理的基本任务内存内存内存内存/主存:主存:主存:主存:(Main Memory/Primary Memory/Real Memory Main Memory/Primary Memory/Real Memory)是)是)是)是指指指指CPUCPU能直接存取指令和数据的存储器
2、能直接存取指令和数据的存储器能直接存取指令和数据的存储器能直接存取指令和数据的存储器.外存外存外存外存/辅存:辅存:辅存:辅存:(Secondary StorageSecondary Storage)硬盘、软盘和磁带等存储器。)硬盘、软盘和磁带等存储器。)硬盘、软盘和磁带等存储器。)硬盘、软盘和磁带等存储器。第2页/共164页1、存储器的层次第3页/共164页存储系统的层次组织1.1.存储器的层次存储器的层次 按照速度、容量和成本划分,存储器系统构成一个层次结构,如图所示。磁磁磁磁 带带带带磁磁磁磁 盘盘盘盘内内内内 存存存存寄存器寄存器寄存器寄存器高速缓存高速缓存高速缓存高速缓存存储器存取时
3、间减少存储器存取时间减少存储器存取时间减少存储器存取时间减少存储器存取速度增加存储器存取速度增加存储器存取速度增加存储器存取速度增加存储器成本增加存储器成本增加存储器成本增加存储器成本增加存储器容量减少存储器容量减少存储器容量减少存储器容量减少第4页/共164页存储系统的层次组织存储系统的层次组织用户程序的地址空间、重定位概念用户程序的地址空间、重定位概念存储管理的基本任务第5页/共164页用户程序的地址空间、重定位概念1.用户程序的地址空间用户程序的地址空间源程序:源程序:源程序:源程序:用高级语言或汇编语言编写的程序。用高级语言或汇编语言编写的程序。用高级语言或汇编语言编写的程序。用高级语
4、言或汇编语言编写的程序。编辑编辑编辑编辑:创建源文件(文本),创建源文件(文本),创建源文件(文本),创建源文件(文本),(形成符号空间)(形成符号空间)(形成符号空间)(形成符号空间)如:如:如:如:.asm.asm、.c.c、.cpp.cpp、.pas.pas等;等;等;等;编译编译编译编译:生成目标文件(能被处理机识别的二进制代码):生成目标文件(能被处理机识别的二进制代码):生成目标文件(能被处理机识别的二进制代码):生成目标文件(能被处理机识别的二进制代码),(生成目标代码)(生成目标代码)(生成目标代码)(生成目标代码)如:如:如:如:.o.o、.obj.obj;链接链接链接链接:
5、生成可执行文件:生成可执行文件:生成可执行文件:生成可执行文件 .exe.exe,(确定相对地址)确定相对地址)确定相对地址)确定相对地址)将编译或汇编后得到的一组目标模块及所需库函数装将编译或汇编后得到的一组目标模块及所需库函数装将编译或汇编后得到的一组目标模块及所需库函数装将编译或汇编后得到的一组目标模块及所需库函数装配成一个完整的模块;配成一个完整的模块;配成一个完整的模块;配成一个完整的模块;第6页/共164页用户程序的地址空间、重定位概念装入装入:完成重定位,装入内存;(可以确定物理地址)相对地址相对地址/逻辑地址逻辑地址 绝对地址绝对地址/物理地址物理地址 重定位重定位:逻辑地址-
6、物理地址装入方式:绝对装入方式、可重定位装入方式、动态运行时装入方式运行运行:建立进程并执行,得到运行结果。(可以确定物理地址)第7页/共164页第8页/共164页符号符号符号符号源程序源程序源程序源程序目标目标目标目标代码代码代码代码可执行代可执行代可执行代可执行代码码码码汇编汇编汇编汇编编译编译编译编译连接连接连接连接地址重定位地址重定位地址重定位地址重定位名字空间名字空间名字空间名字空间地址空间地址空间地址空间地址空间存储空间存储空间存储空间存储空间:x=x+1x=x+1:R=XR=XR=R+1R=R+1X=RX=R:0 0:K K 100100:100+K100+K:R=XR=XR=R
7、+1R=R+1X=RX=R:程序的名字空间、地址空间及存储空间程序的名字空间、地址空间及存储空间程序的名字空间、地址空间及存储空间程序的名字空间、地址空间及存储空间第9页/共164页程序中符号名的集合(符号空间)目标模块中的地址(逻辑空间)CPU直接执行的绝对地址程序。这一地址集合(物理空间)第10页/共164页用户程序的地址空间、重定位概念程序必须装入内存后才能运行,装入程序需要根据内存的使用情况和分配策略,将模块放入到内存中,需要执行重定位。逻辑地址逻辑地址:用户程序中经编译之后的每个目标模块都以0为基地址顺序编址。也称为相对地址。绝对地址绝对地址:内存中各物理存储单元的地址都是从统一的基
8、地址开始顺序编址。也称为绝对地址。它是数据在内存中的实际存储地址。逻辑地址:逻辑地址:Load 1,Load 1,500500物理地址物理地址:Load 1,Load 1,15001500第11页/共164页 逻辑地址空间逻辑地址空间:由程序中逻辑地址组成的地址范围。物理地址空间物理地址空间:由内存中一系列存储单元所限定的地址范围。内存空间的编址从统一的基址0开始,为线性的一维地址空间,简称物理空间或绝对空间。重定位重定位:程序和数据装入内存时,需对目标程序中的地址进行修改。将逻辑地址转换为内存物理地址的过程称作重定位。重定位的技术按重定位的时机可分为两种:静态静态重定位重定位(装入内存时重定
9、位)和动态重定位动态重定位(程序执行时重定位)。第12页/共164页第13页/共164页1.静态重定位 静态重定位:静态重定位:在目标程序装入内存时,由装入程序对目标程序中的指令和数据的地址进行修改,即将程序的逻辑地址都改成为实际的内存地址。装入操作要求一次性一次性完成。优点:优点:无需增加硬件地址转换机构,便于实现程序的静态连接。缺点:缺点:存储空间为连续区域,且不可移动,不利于内存空间的有效利用;各进程很难共享内存中同一程序的副本。第14页/共164页第15页/共164页静态地址重定位示意图静态地址重定位示意图静态地址重定位示意图静态地址重定位示意图100100:25002500:2600
10、2600:0 0:程序的地址空间程序的地址空间程序的地址空间程序的地址空间1000010000:1010010100:1250012500:1260012600:内存的地址空间内存的地址空间内存的地址空间内存的地址空间LOAD 1LOAD 1,1250012500LOAD 1LOAD 1,25002500365365如:LOAD 1,2500 这条指令是把相对地址为2500的存储单元的内容365装入1号累加器而这时内容为365的存储单元的实际物理地址为12500(起始地址10000+相对地址2500)所以LOAD 1,2500 这条指令中的直接地址码要作相应的修改,365365即改为即改为即改
11、为即改为LOAD 1LOAD 1,1250012500。第16页/共164页2.动态重定位在程序执行期间,每次访问内存前进行重定位。地址变换依靠硬件地址转换机构实现。优点优点:程序占用的内存空间动态可变,不必连续存放在一处;比较容易实现几个进程对同一程序副本的共享使用。缺点缺点:需附加的硬件地址变换机构,增加了机器成本,且软件实现算法复杂。第17页/共164页第18页/共164页存储系统的层次组织存储系统的层次组织用户程序的地址空间、重定位概念存储管理的基本任务存储管理的基本任务第19页/共164页存储管理的基本任务存储分配存储保护存储共享存储扩充第20页/共164页内存分配内存分配是存储器管
12、理的最基本任务,也就是按用户要求把适当的存储空间分配给相应的作业。(1)分配基本内存空间(2)增加新的内存空间 动态申请或释放内存空间(3)回收内存空间第21页/共164页存储分配步骤存储分配步骤 首首首首先先先先,根根根根据据据据系系系系统统统统的的的的内内内内存存存存分分分分配配配配算算算算法法法法,在在在在空空空空闲闲闲闲的的的的内内内内存存存存分分分分区区区区中中中中寻寻寻寻找找找找到到到到一一一一块块块块满满满满足足足足进进进进程程程程需需需需要要要要的的的的内内内内存存存存空空空空间间间间,将将将将其其其其分分分分配配配配给给给给进程。进程。进程。进程。然然然然后后后后,更更更更新
13、新新新进进进进程程程程的的的的资资资资源源源源分分分分配配配配清清清清单单单单、内内内内存存存存分分分分配配配配情情情情况况况况清清清清单单单单等数据结构等数据结构等数据结构等数据结构。第22页/共164页内存的回收内存的回收 更更更更新新新新相相相相应应应应的的的的数数数数据据据据结结结结构构构构,将将将将回回回回收收收收的的的的内内内内存存存存空空空空间间间间标标标标识识识识为为为为“空空空空闲可用闲可用闲可用闲可用”就行了。就行了。就行了。就行了。?该内存空间是否可以被回收该内存空间是否可以被回收该内存空间是否可以被回收该内存空间是否可以被回收?被其他进程共享被其他进程共享被其他进程共享
14、被其他进程共享?与相临的空闲空间进行合并与相临的空闲空间进行合并与相临的空闲空间进行合并与相临的空闲空间进行合并第23页/共164页存储保护存储保护 防止地址越界,防止操作越权。防止地址越界,防止操作越权。防止地址越界,防止操作越权。防止地址越界,防止操作越权。地地地地址址址址越越越越界界界界:进进进进程程程程访访访访问问问问不不不不属属属属于于于于自自自自己己己己的的的的地地地地址址址址空空空空间间间间,或或或或者者者者说说说说进进进进程程程程在在在在运运运运行行行行时时时时所所所所产产产产生生生生的的的的物物物物理理理理地地地地址址址址超超超超越越越越其其其其自自自自身身身身的的的的地地地
15、地址址址址空空空空间范围。间范围。间范围。间范围。可可可可能能能能侵侵侵侵犯犯犯犯其其其其他他他他用用用用户户户户进进进进程程程程空空空空间间间间,也也也也可可可可能能能能侵侵侵侵犯犯犯犯操操操操作作作作系系系系统统统统的存储空间的存储空间的存储空间的存储空间 操操操操作作作作越越越越权权权权:进进进进程程程程对对对对共共共共享享享享存存存存储储储储区区区区的的的的操操操操作作作作违违违违反反反反了了了了系系系系统统统统规规规规定定定定的权限。的权限。的权限。的权限。第24页/共164页地址变换地址变换 在一般情况下,一个作业装入时分配到的存储空间和它的地址空间是不一致的。因此,作业在装入的时
16、候,或在其执行时,必须把程序地址空间中的逻辑地址转换为内存空间对应的物理地址。第25页/共164页地址映射地址映射 逻辑地址,或相对地址:一般从逻辑地址,或相对地址:一般从逻辑地址,或相对地址:一般从逻辑地址,或相对地址:一般从0 0 0 0开始编址开始编址开始编址开始编址 物理地址,或绝对地址:标识内存中的每个存储单元。物理地址,或绝对地址:标识内存中的每个存储单元。物理地址,或绝对地址:标识内存中的每个存储单元。物理地址,或绝对地址:标识内存中的每个存储单元。进程执行时的寻址进程执行时的寻址当前栈顶当前栈顶进程控制信息进程控制信息程序入口点程序入口点地址值增加地址值增加进程控制块进程控制块
17、程序程序栈栈数据数据访问数据访问数据分支指令分支指令进程映像进程映像第26页/共164页存储共享存储共享 为了进程通信和节约内存空间,两个或多个进程共用为了进程通信和节约内存空间,两个或多个进程共用为了进程通信和节约内存空间,两个或多个进程共用为了进程通信和节约内存空间,两个或多个进程共用内存中相同的分区,即他们的物理空间有相交的部分。内存中相同的分区,即他们的物理空间有相交的部分。内存中相同的分区,即他们的物理空间有相交的部分。内存中相同的分区,即他们的物理空间有相交的部分。可以共享进程的代码,也可以共享进程数据。可以共享进程的代码,也可以共享进程数据。可以共享进程的代码,也可以共享进程数据
18、。可以共享进程的代码,也可以共享进程数据。一般地,进程之间共享代码的目的主要是为了节约存一般地,进程之间共享代码的目的主要是为了节约存一般地,进程之间共享代码的目的主要是为了节约存一般地,进程之间共享代码的目的主要是为了节约存储空间,共享数据的目的主要是为了实现进程间相互储空间,共享数据的目的主要是为了实现进程间相互储空间,共享数据的目的主要是为了实现进程间相互储空间,共享数据的目的主要是为了实现进程间相互通信。通信。通信。通信。第27页/共164页PCB3 数据数据代码代码PCB2 代码代码数据数据PCB1数据数据代码代码 进程进程1进程进程2进程进程3进程之间共享代码和数据进程之间共享代码
19、和数据第28页/共164页存储扩充存储扩充 内存:速度快、容量小、价格贵内存:速度快、容量小、价格贵内存:速度快、容量小、价格贵内存:速度快、容量小、价格贵 外存:容量大、速度慢、价格便宜外存:容量大、速度慢、价格便宜外存:容量大、速度慢、价格便宜外存:容量大、速度慢、价格便宜 目目目目的的的的:在在在在多多多多道道道道程程程程序序序序系系系系统统统统中中中中能能能能运运运运行行行行更更更更多多多多、更更更更大大大大的的的的程程程程序序序序,降低系统的造价,提高系统的性价比降低系统的造价,提高系统的性价比降低系统的造价,提高系统的性价比降低系统的造价,提高系统的性价比 存储扩充:采用软件手段,
20、在硬件的配合下,将部分存储扩充:采用软件手段,在硬件的配合下,将部分存储扩充:采用软件手段,在硬件的配合下,将部分存储扩充:采用软件手段,在硬件的配合下,将部分外存空间虚拟为内存空间,并将内存和外存有机地结外存空间虚拟为内存空间,并将内存和外存有机地结外存空间虚拟为内存空间,并将内存和外存有机地结外存空间虚拟为内存空间,并将内存和外存有机地结合起来,得到一个容量相当于外存、速度接近于内存、合起来,得到一个容量相当于外存、速度接近于内存、合起来,得到一个容量相当于外存、速度接近于内存、合起来,得到一个容量相当于外存、速度接近于内存、价格十分便宜的价格十分便宜的价格十分便宜的价格十分便宜的虚拟存储
21、系统虚拟存储系统虚拟存储系统虚拟存储系统第29页/共164页本章内容5.1 存储管理的基本概念5.2 5.2 分区存储管理分区存储管理5.3 简单页式存储管理5.4 请求页式虚拟存储管理5.5 windows系统的存储管理5.6 段式与段页式存储管理第30页/共164页5.2 分区管理技术分区法分区法1.固定分区法2.动态分区法可重定位分区分配第31页/共164页5.2 分区管理技术内存分区的基本思想:由系统把实际内存的物理空间划分为若干个分区,每个分区都是一片在地址上连续的“小”空间。某个进程建立时就获得一个内存分区,进程执行完后归还该分区。第32页/共164页1.固定分区法 固定分区法:固
22、定分区法:内存中分区的个数固定不变,各个分区的大小也固定不变,但不同分区的大小可以不同。每个分区只可装入一个进程。分区说明表分区说明表:内存的分配释放、存储保护以及地址变换都通过分区说明表进行。优点:优点:分配、回收方便,适用于用户不多的小型机;缺点:缺点:管理方式简单,内存空间利用率低;第33页/共164页操作系统操作系统操作系统操作系统进程进程1 1进程进程进程进程2 2进程进程进程进程3 3分区分区分区分区1 1分区分区分区分区2 2分区分区分区分区3 3分区分区分区分区4 4(未分配(未分配(未分配(未分配)0 0 0 020K20K20K20K45K45K45K45K80K80K80
23、K80K130K130K130K130K200K200K200K200K分区号分区号分区号分区号大小大小大小大小KBKB开始地址开始地址开始地址开始地址KK状态状态状态状态1 1 1 12525252520202020正使用正使用正使用正使用2 2 2 23535353545454545正使用正使用正使用正使用3 3 3 35050505080808080正使用正使用正使用正使用4 4 4 470707070130130130130未使用未使用未使用未使用分区说明表分区说明表分区说明表分区说明表第34页/共164页2.动态分区法 动态分区法:动态分区法:各个分区是在相应进程要进入内存时才建立的
24、,使其大小恰好适应进程的大小。优点优点:改变了固定分区中小进程占据大分区的浪费现象,从而提高了系统的利用率。操作系统内部设置一个内存登记表内存登记表,记载整个内存中所有空闲区和已用区的情况,每个分区占一个表项,每个表项包括相应分区的大小、位置和状态等。第35页/共164页 MVTMVTMVTMVT的内存分配和进的内存分配和进的内存分配和进的内存分配和进程调度情况程调度情况程调度情况程调度情况 第36页/共164页 动态分区的数据结构:动态分区的数据结构:空闲分区表:空闲分区表:内存中每一个空闲的分区占用该表的一项。分区号分区号分区号分区号分区大小分区大小分区大小分区大小(KB)(KB)(KB)
25、(KB)分区始址分区始址分区始址分区始址(K)(K)(K)(K)状态状态状态状态1 1505075750 02 226261701700 03 340402752750 04 460604184180 05 5.第37页/共164页空闲分区链:空闲分区链:空闲分区链:空闲分区链:使用链指针把所有的空闲分区链接成一使用链指针把所有的空闲分区链接成一使用链指针把所有的空闲分区链接成一使用链指针把所有的空闲分区链接成一条链。条链。条链。条链。第38页/共164页分配算法从一组空闲区中选择一个可用区的常用策略有两种:最先适应算法(First-fit)和最佳适应算法(Best-fit)。最先适应法:最先
26、适应法:空闲表是按地址排列的,即:空闲分区起始地址小的分区在表中的序号也小。当要为进程分配内存空间时,就查该表,在各空闲分区中查找满足大小要求的可用分区。只要找到第一个足以满足要求的空闲分区就停止查找,并把它分配出去。同时修改空闲分区表。第39页/共164页2.最佳适应法:最佳适应法:以空闲分区的大小为序、按增量形式排列的,即小分区在前,大分区在后。它在满足需要的前提下,尽量分配最小的空闲分区。第40页/共164页 3.3.最差适应算法:最差适应算法:是在所有空闲的分区中寻找最大的一个,把该区按照申请的尺寸进行分割,剩下的部分仍然是一个空闲区,而且可能仍然很大。第41页/共164页5.2 分区
27、管理技术分区法1.固定分区法2.动态分区法可重定位分区分配可重定位分区分配第42页/共164页问题描述碎片碎片碎片碎片:内存中这种容量太小、内存中这种容量太小、内存中这种容量太小、内存中这种容量太小、无法被利用的小分区。无法被利用的小分区。无法被利用的小分区。无法被利用的小分区。或称作或称作或称作或称作“零头零头零头零头”。依据碎片出现的位置,依据碎片出现的位置,依据碎片出现的位置,依据碎片出现的位置,分为分为分为分为内部碎片内部碎片内部碎片内部碎片和和和和外部碎外部碎外部碎外部碎片片片片两种。两种。两种。两种。第43页/共164页可重定位分区法 紧缩紧缩:移动某些已分配区的内容,使所有进程的
28、分区紧挨在一起,而把空闲区留在另一端。采用紧缩技术的分区方法称为可重定位分区法可重定位分区法。实现实现:动态重定位技术。硬件支持包括一对寄存器:基址寄存器和限长寄存器。一个存放用户程序在内存的起始地址,称作基址寄存器基址寄存器;另一个表示用户程序的逻辑地址的最大范围,称作限长寄存器限长寄存器。第44页/共164页可重定位分区的紧缩 第45页/共164页动态重定位的实现过程 第46页/共164页可重定位分区法改进改进:为了减少进程移动的数量,可以对紧缩的方向加以改进对紧缩的方向加以改进。进程装入内存时,不是从上至下依次放置,而是采用“占两头,空中间占两头,空中间”的办法。当紧缩时,各个进程按地址
29、大小分别向两端靠拢,从而使空闲区保留在内存的中间部位。优点优点:可以消除碎片,能够分配更多的分区,有助于多道程序设计,提高内存的利用率。缺点缺点:紧缩花费了大量CPU时间;当进程大于整个空闲区时,仍要浪费一定的内存;进程的存储区内可能放有从未使用的信息;进程之间无法对信息共享。第47页/共164页1.把作业地址空间中使用的逻辑地址变成内存中物理地址称为()。A、加载 B、重定位 C、物理化 D、逻辑化2在可变分区存储管理中的紧凑技术可以()。A.集中空闲区 B.增加主存容量C.缩短访问时间 D.加速地址转换3把逻辑地址转换成物理地址称为()。A.地址分配 B.地址映射 C.地址保护 D.地址越
30、界B BA AB B第48页/共164页4在内存分配的“最佳适应法”中,空闲块是按()。A.始地址从小到大排序 B.始地址从大到小排序C.块的大小从小到大排序 D.块的大小从大到小排序5下面最有可能使得高地址空间成为大的空闲区的分配算法是()。A.首次适应法 B.最佳适应法C.最坏适应法 D.循环首次适应法6静态重定位的时机是()。A.程序编译时 B.程序链接时C.程序装入时 D.程序运行时 A AC CC C第49页/共164页7.通常所说的“存储保护”的基本含义是()A.防止存储器硬件受损 B.防止程序在内存丢失C.防止程序间相互越界访问 D.防止程序被人偷看8能够装入内存任何位置的代码程
31、序必须是()。A.可重入的 B.可重定位 C.可动态链接 D.可静态链接9在固定分区分配中,每个分区的大小是()。A.相同B.随作业长度变化C.可以不同但预先固定D.可以不同但根据作业长度固定 B BC CC C第50页/共164页本章内容5.1 存储管理的基本概念5.2 分区存储管理5.3 5.3 简单页式存储管理简单页式存储管理5.4 请求页式虚拟存储管理5.5 windows系统的存储管理5.6 段式与段页式存储管理第51页/共164页5.3 分页技术分页的基本概念分页的基本概念分页系统中的地址映射页的共享和保护内存扩充第52页/共164页分页的基本概念逻辑空间分页:逻辑空间分页:将一个
32、进程的逻辑地址空间划分为若干大小相等的部分,每部分称作页面或页;每页都有一个编号,叫做页号,页号从0开始依次编排,如0,1,2。内存空间分块:内存空间分块:将内存划分成与页面相同大小的若干存储块,称作内存块;块号从0开始依次顺序排列:0#块,1#块,2#块,。页面和块的大小页面和块的大小由硬件决定,一般为2n,不同机器页面大小不同。第53页/共164页分页的基本概念 逻辑地址表示逻辑地址表示:其中011位为页内地址,表示每页的大小为212,即4 KB;1231位为页号,表示地址空间中最多可容纳220个页面。页号页号页号页号p p p p页内地址页内地址页内地址页内地址d d d d011123
33、1第54页/共164页内存分配原则:内存分配原则:系统以块为单位把内存分给各个进程,进程的每个页面对应一个内存块,并且一个进程的若干页可以分别装入物理上不连续的内存块中。设立页表:设立页表:在分页系统中,允许将进程的各页面离散地装入内存的任何空闲块中。系统为每个进程设立一张页面映像表,简称页表。页表的作用页表的作用:实现某一进程的逻辑页号到物理块号的地址映射。分页的基本概念第55页/共164页2、分页存储实现进程进程进程进程1 1 1 1,0 0 0 0页页页页进程进程进程进程1 1 1 1,1 1 1 1页页页页进程进程进程进程1 1 1 1,2 2 2 2页页页页进程进程进程进程1 1 1
34、 1,N-1N-1N-1N-1页页页页进程进程进程进程1 1 1 1,4 4 4 4页页页页进程进程进程进程1 1 1 1,3 3 3 3页页页页第56页/共164页 建立内存块表建立内存块表 整个系统有一个内存块表内存块表。每个内存块在内存块表中占一项,表明该块当前空闲还是已分出去了;如果已分出去,是分给哪个进程的哪个页面了。第57页/共164页5.3 分页技术分页的基本概念分页系统中的地址映射分页系统中的地址映射页的共享和保护内存扩充第58页/共164页分页的基本概念页表地址结构 分页系统地址交换机构自动将逻辑地址转换为两部分:高位部分为页号,地位部分为页内地址;则逻辑地址:用数对(p,d
35、)表示。页号页号页号页号p p p p页内地址页内地址页内地址页内地址d d d dP P P P表示表示表示表示 逻辑地址所在的页号,逻辑地址所在的页号,逻辑地址所在的页号,逻辑地址所在的页号,d d d d表示页内地址。表示页内地址。表示页内地址。表示页内地址。d d d d、p p p p所占的位数取决于页的大小和有效地址长度所占的位数取决于页的大小和有效地址长度所占的位数取决于页的大小和有效地址长度所占的位数取决于页的大小和有效地址长度第59页/共164页通常页的大小为2的n次幂。如取页大小为1024=(210)=1K或4096=(212)=4K,若页的大小为2n,则:页内地址占位:n
36、,页号占位:有效地址长度-n;例:若计算机例:若计算机cpucpu的有效地址为的有效地址为1616位,且页大小为位,且页大小为1k1k,则,则 页号页号p p和页内地址和页内地址d d分别分别占多少位?占多少位?页号页号页号页号p p p p页内地址页内地址页内地址页内地址d d d d0?91015第60页/共164页分页的基本概念 逻辑地址表示逻辑地址表示:其中011位为页内地址,表示每页的大小为212,即4 KB;1231位为页号,表示地址空间中最多可容纳220个页面。页号页号页号页号p p p p页内地址页内地址页内地址页内地址d d d d0111231计算页号和页内地址计算页号和页
37、内地址计算页号和页内地址计算页号和页内地址:如果给定的逻辑地址是如果给定的逻辑地址是如果给定的逻辑地址是如果给定的逻辑地址是A A A A,页,页,页,页面的大小为面的大小为面的大小为面的大小为L L L L,则页号,则页号,则页号,则页号p p p p和页内地址和页内地址和页内地址和页内地址d d d d可按下式求得:可按下式求得:可按下式求得:可按下式求得:p p p p=INT INT INT INT A A A A/L L L L,d d d d=A A A A MODMODMODMOD L L L L其中,其中,其中,其中,INTINTINTINT是向下整除的函数,是向下整除的函数,
38、是向下整除的函数,是向下整除的函数,MODMODMODMOD是取余函数。是取余函数。是取余函数。是取余函数。第61页/共164页分页系统中的地址映射用页号页号P P去检索页表,从页表中得到该页的物理块物理块号号f f,把它装入物理地址寄存器中;将页内地址页内地址d d直接送入物理地址寄存器的块内地址块内地址d d字段中;物理地址寄存器中的内容就是由两者拼接两者拼接成的实际访问内存的地址,从而完成了从逻辑地址到物理地址的转换。第62页/共164页3、分页系统中的地址映射第63页/共164页 L=1024 L=1024,A=2052=2048+4=A=2052=2048+4=2 21111+2+2
39、2 2 页号页号p=2p=2,页内地址,页内地址d=4 d=4 10 000000010010 0000000100查页表得页号查页表得页号2 2对应的物理块号为对应的物理块号为1111,则,则20522052对应的物理地址为:对应的物理地址为:页长页长块号块号+页内地址页内地址=102411+4=11268=102411+4=11268或或:1011 00000001001011 0000000100 物理地址为:物理地址为:2C04H=112682C04H=11268例如:例如:某分页存储管理,页面大小某分页存储管理,页面大小L=1KL=1K,页表如下:,页表如下:则逻辑地址则逻辑地址A=
40、2052A=2052所对应的物理地址是什么?要求写出主要计算过程。所对应的物理地址是什么?要求写出主要计算过程。解:解:第64页/共164页假设系统的页面长度为1k。当前正在执行的进程对应的页面如图所示:当前进程中有一条指令load 1,2500,如何利用页表进行地址变换,正确的执行这条指令呢?分析:分析:当当cpucpu执行指令执行指令load 1load 1,25002500时,时,cpucpu要从相对地址要从相对地址25002500中将数据取出,放入中将数据取出,放入1 1号寄存器中,则如何将相对地址号寄存器中,则如何将相对地址2500 2500 映射为映射为对应的物理地址?对应的物理地
41、址?页号页号页号页号页面号页面号页面号页面号0 02 21 13 32 28 8第65页/共164页页表长度页表长度页表长度页表长度页表始址页表始址页表始址页表始址控制寄存器控制寄存器页号页面号021328有效地址有效地址物理地址物理地址Load 1,2500 data内存内存21482 24524528 84524528644第66页/共164页具有快表的地址变换机构具有快表的地址变换机构 为了提高地址变换的速度,在地址变换机构中增设了一个具有并行查询功能的特殊的高速缓冲存储器,称为“联联想想存存储储器器”或“快快表表”,用以存放当前访问的那些页表项。如果页表存放在内存中,如果页表存放在内存
42、中,如果页表存放在内存中,如果页表存放在内存中,CPUCPU存一个数据必须访问几次内存?存一个数据必须访问几次内存?每次访问内存时,都要先访问内存中的页表,然后根据所形成的物理地每次访问内存时,都要先访问内存中的页表,然后根据所形成的物理地每次访问内存时,都要先访问内存中的页表,然后根据所形成的物理地每次访问内存时,都要先访问内存中的页表,然后根据所形成的物理地址再访问内存。这样址再访问内存。这样址再访问内存。这样址再访问内存。这样CPUCPU存一个数据必须访问两次内存,从而使计算机存一个数据必须访问两次内存,从而使计算机存一个数据必须访问两次内存,从而使计算机存一个数据必须访问两次内存,从而
43、使计算机的处理速度降低了的处理速度降低了的处理速度降低了的处理速度降低了1/21/2。第67页/共164页此时地址变换过程为:若在快表中未未找找到到对应的页表项,则需再再访访问问内内存存中中的的页页表表,找到后,把从页表中读出的页表项存入快表中的一个寄存器单元中,以取代一个旧的页表项。在在在在CPUCPU给出有效地址后,地址变换机构自动地将页号送入给出有效地址后,地址变换机构自动地将页号送入给出有效地址后,地址变换机构自动地将页号送入给出有效地址后,地址变换机构自动地将页号送入高速缓存高速缓存高速缓存高速缓存,确定所,确定所,确定所,确定所需要的页是否在快表中。需要的页是否在快表中。需要的页是
44、否在快表中。需要的页是否在快表中。若若若若是是是是,则,则,则,则直接读出直接读出直接读出直接读出该页所对应的物理块号,该页所对应的物理块号,该页所对应的物理块号,该页所对应的物理块号,送入物理地址寄存器;送入物理地址寄存器;送入物理地址寄存器;送入物理地址寄存器;第68页/共164页具有快表的地址变换机构具有快表的地址变换机构具有快表的地址变换机构具有快表的地址变换机构 页 号 f 页内地址d页表始址p 页表长度d块号 p 块内地址 d 联想寄存器越界中断页表寄存器逻辑地址页 号 块 号页 表快 表物理地址页号 块号245210245210第69页/共164页1分区管理和分页管理的主要区别是
45、()。A.分区管理中的块比分页管理中的页要小B.分页管理有地址映射而分区管理没有C.分页管理有存储保护而分区管理没有D.分区管理要求一道程序存放在连续的空间内而分页管理没有这种要求。D D第70页/共164页某虚拟存储器的用户空间共有32个页面,每页1KB,主存16KB。试问:(1)逻辑地址的有效位是多少?(2)物理地址需要多少位?(3)假定某时刻系统用户的第0,1,2,3页分别分配的物理块号为5,10,4,7,试将虚地址0A5C和093C变换为物理地址。解解解解 (1 1)程序空间的大小为)程序空间的大小为)程序空间的大小为)程序空间的大小为32KB32KB,因此逻辑地址的有效位数是,因此逻
46、辑地址的有效位数是,因此逻辑地址的有效位数是,因此逻辑地址的有效位数是1515位。位。位。位。(2 2)内存储空间的大小是)内存储空间的大小是)内存储空间的大小是)内存储空间的大小是16KB16KB,因此物理地址至少需要,因此物理地址至少需要,因此物理地址至少需要,因此物理地址至少需要1414位。位。位。位。(3 3)当页面为)当页面为)当页面为)当页面为1KB1KB时,虚地址时,虚地址时,虚地址时,虚地址0A5C0A5C表示页号为表示页号为表示页号为表示页号为0001000010,页内地址,页内地址,页内地址,页内地址是是是是10010111001001011100。该页在内存的第。该页在内
47、存的第。该页在内存的第。该页在内存的第4 4块,即块号为块,即块号为块,即块号为块,即块号为01000100,因此,因此,因此,因此0A5C0A5C的物理地址是,即的物理地址是,即的物理地址是,即的物理地址是,即125CH125CH。(4 4)用同样的方法可以求得,)用同样的方法可以求得,)用同样的方法可以求得,)用同样的方法可以求得,093C093C的物理地址是的物理地址是的物理地址是的物理地址是113CH113CH。第71页/共164页5.3 分页技术分页的基本概念分页系统中的地址映射页的共享和保护页的共享和保护内存扩充第72页/共164页页的共享与保护 共享方法:共享方法:使多个相关进程
48、的逻辑空间中的页指向相同的内存块(该块中放有共享程序或数据)。如图所示:实际上,那些只读的页面(如程序文件)可以被共享,而数据页面往往并不能共享。第73页/共164页9 9、页的共享与保护第74页/共164页 页面保护:页面保护:在页表的表项中设置存取控制字段,用于指明对应内存块中的内容允许执行何种操作,从而禁止非法访问。R Read WWrite eX Xcute 实现页面共享比较困难:实现页面共享比较困难:分页系统中把进程的地址空间划分页面的方法对用户是屏蔽的,即用户不知道页面的划分情况。第75页/共164页5.3 分页技术分页的基本概念分页系统中的地址映射页的共享和保护内存扩充内存扩充第
49、76页/共164页内存扩充技术1.覆盖(overlay)覆盖:一个/几个作业的某些部分共享某一段存储空间2.交换(swapping)交换:在空间不够的时候把部分内容暂时放入外存。第77页/共164页1.覆盖(overlay)引入:其目标是在较小的可用内存中运行较大的程序运行较大的程序。常用于多道程序系统,与分区存储管理配合使用。第78页/共164页原理:一个程序的几个代码段或数据段,按照时间时间先后来占占用公共的内存空间用公共的内存空间。将程序的必要部分必要部分(常用功能)的代码和数据常驻内存;可选部分可选部分(不常用功能)在其他程序模块中实现,平时存放在外存中(覆盖文件),在需要用到时才装入
50、到内存;不存在调用关系的模块不必同时装入到内存,从而可以相互覆盖。(即不同时用的模块可共用一个分区不同时用的模块可共用一个分区)1.覆盖(overlay)第79页/共164页注:另一种覆盖方法:注:另一种覆盖方法:注:另一种覆盖方法:注:另一种覆盖方法:(100K)(100K)A(20K)A(20K)占一个分区:占一个分区:占一个分区:占一个分区:20K20K;B(50K)B(50K)、D(20K)D(20K)和和和和E(40K)E(40K)共用一个分区:共用一个分区:共用一个分区:共用一个分区:50K50K;F(30K)F(30K)和和和和C(30K)C(30K)共用一个分区:共用一个分区: