虚拟存储器优秀PPT.ppt
6.1虚拟存储器的基本概念一、程序局部性原理时间局部性 一条指令被执行了,则在不久的将来它可能再被执行空间局部性 若某一存储单元被运用,则在确定时间内,与该存储单元相邻的单元可能被运用局部性原理的具体体现:局部性原理的具体体现:程序在执行时,大部分是依次执行的指令,少程序在执行时,大部分是依次执行的指令,少部分是转移和过程调用指令。部分是转移和过程调用指令。过程调用的嵌套深度一般不超过过程调用的嵌套深度一般不超过5,因此执行,因此执行的范围不超过这组嵌套的过程。的范围不超过这组嵌套的过程。程序中存在相当多的循环结构,它们由少量指程序中存在相当多的循环结构,它们由少量指令组成,而被多次执行。令组成,而被多次执行。程序中存在相当多对确定数据结构的操作,如程序中存在相当多对确定数据结构的操作,如数组操作,往往局限在较小范围内。数组操作,往往局限在较小范围内。二、二、虚拟存储器的概念虚拟存储器的概念 虚拟内存(虚拟内存(Virtual Memory)是指在具有)是指在具有层次结构存储器的计算机系统中,接受自动层次结构存储器的计算机系统中,接受自动实现部分装入和部分对换功能,为用户供应实现部分装入和部分对换功能,为用户供应一个比物理主存容量大得多的可寻址的一种一个比物理主存容量大得多的可寻址的一种“主存储器主存储器”。它运用户逻辑存储器与物理。它运用户逻辑存储器与物理存储器分别,是操作系统给用户供应的一个存储器分别,是操作系统给用户供应的一个比真实内存空间大得多的地址空间比真实内存空间大得多的地址空间。实现虚拟存储器的物质基础是二级存储器结构和动实现虚拟存储器的物质基础是二级存储器结构和动实现虚拟存储器的物质基础是二级存储器结构和动实现虚拟存储器的物质基础是二级存储器结构和动态地址转换机构。经过操作系统的改造,把计算机态地址转换机构。经过操作系统的改造,把计算机态地址转换机构。经过操作系统的改造,把计算机态地址转换机构。经过操作系统的改造,把计算机的内存与外存有机的结合起来运用,从而得到一个的内存与外存有机的结合起来运用,从而得到一个的内存与外存有机的结合起来运用,从而得到一个的内存与外存有机的结合起来运用,从而得到一个容量很大的容量很大的容量很大的容量很大的“内存内存内存内存”,这就是虚存。,这就是虚存。,这就是虚存。,这就是虚存。虚拟存储器实质上是把用户地址空间和实际的存储虚拟存储器实质上是把用户地址空间和实际的存储虚拟存储器实质上是把用户地址空间和实际的存储虚拟存储器实质上是把用户地址空间和实际的存储空间区分开来,当作两个不同的概念。它的容量主空间区分开来,当作两个不同的概念。它的容量主空间区分开来,当作两个不同的概念。它的容量主空间区分开来,当作两个不同的概念。它的容量主要受到两方面的限制:(要受到两方面的限制:(要受到两方面的限制:(要受到两方面的限制:(1 1)指令中表示地址的字长。)指令中表示地址的字长。)指令中表示地址的字长。)指令中表示地址的字长。一个虚拟存储器的最大容量是由计算机的地址结构一个虚拟存储器的最大容量是由计算机的地址结构一个虚拟存储器的最大容量是由计算机的地址结构一个虚拟存储器的最大容量是由计算机的地址结构确定的。如:若确定的。如:若确定的。如:若确定的。如:若CPUCPU的有效地址长度为的有效地址长度为的有效地址长度为的有效地址长度为3232位,则程位,则程位,则程位,则程序可以寻址范围是序可以寻址范围是序可以寻址范围是序可以寻址范围是0 0232-1 232-1,即虚存容量为,即虚存容量为,即虚存容量为,即虚存容量为 4GB 4GB。(2)(2)外存的容量。虚拟存储器的容量与主存的实际大外存的容量。虚拟存储器的容量与主存的实际大外存的容量。虚拟存储器的容量与主存的实际大外存的容量。虚拟存储器的容量与主存的实际大小没有干脆的关系,而是由主存与辅存的容量之和小没有干脆的关系,而是由主存与辅存的容量之和小没有干脆的关系,而是由主存与辅存的容量之和小没有干脆的关系,而是由主存与辅存的容量之和所确定。所确定。所确定。所确定。三、虚拟内存的特征三、虚拟内存的特征虚拟性。虚拟内存不是扩大实际的物理内存,而虚拟性。虚拟内存不是扩大实际的物理内存,而是扩充逻辑内存的容量。是扩充逻辑内存的容量。部分装入。每个进程不是全部装入内存,而是分部分装入。每个进程不是全部装入内存,而是分成若干个部分。当进程须要执行时,才将当前运成若干个部分。当进程须要执行时,才将当前运行所须要的程序和数据装入内存。行所须要的程序和数据装入内存。对换性。在一个进程运行期间,它所须要的程序对换性。在一个进程运行期间,它所须要的程序和数据可以分多次调入。每次仅仅调入一部分,和数据可以分多次调入。每次仅仅调入一部分,以满足当前程序执行的须要。而且,在内存中那以满足当前程序执行的须要。而且,在内存中那些短暂不运用的程序和数据可以换到外存的交换些短暂不运用的程序和数据可以换到外存的交换区存放,以腾出尽量多的内存空间供可运行进程区存放,以腾出尽量多的内存空间供可运行进程运用。运用。四、四、引入虚拟存储技术的好处引入虚拟存储技术的好处大程序:可在较小的可用内存中执行较大的用户大程序:可在较小的可用内存中执行较大的用户程序;程序;大的用户空间:供应应用户可用的虚拟内存空间大的用户空间:供应应用户可用的虚拟内存空间通常大于物理内存通常大于物理内存(real memory)并发:可在内存中容纳更多程序并发执行;并发:可在内存中容纳更多程序并发执行;易于开发:与覆盖技术比较,不必影响编程时的易于开发:与覆盖技术比较,不必影响编程时的程序结构程序结构6.2 恳求分页存储管理方式1、基本思想 在进程起先运行之前,不是装入全部页面,而是装入几个或零个页面,之后依据进程运行的须要,动态装入其它页面;当内存空间已满,而又须要装入新的页面时,则依据某种算法淘汰某个页面,以便装入新的页面XXXX7X5XXX34061260K-64K56K-60K52K-56K48K-52K44K-48K40K-44K36K-40K32K-36K28K-32K24K-28K20K-24K16K-20K12K-16K 8K-12K 4K-8K 0K-4K28K-32K24K-28K20K-24K16K-20K12K-16K 8K-12K 4K-8K 0K-4K虚地址空间虚地址空间物理地址空间物理地址空间 虚页虚页页框页框2、页表表项页号、内存块号、驻留位、外存地址、访问位、修改位驻留位(中断位):表示该页是在内存还是在外存访问位:依据访问位来确定淘汰哪页(由不同的算法确定)修改位:查看此页是否在内存中被修改过页号页号中断位中断位内存块号内存块号外存地址外存地址访问位访问位修改位修改位151413121110 9 8 7 6 5 4 3 2 10000000000000000111100001011000000000000011110010001110100110101 00010000000000100011000000000100110在在/不在内存不在内存页表页表虚地址虚地址8196物理地址物理地址245803、缺页中断(Page Fault)处理在地址映射过程中,在页表中发觉所要访在地址映射过程中,在页表中发觉所要访问的页不在内存,则产生缺页中断。操作问的页不在内存,则产生缺页中断。操作系统接到此中断信号后,就调出缺页中断系统接到此中断信号后,就调出缺页中断处理程序,依据页表中给出的外存地址,处理程序,依据页表中给出的外存地址,准备将该页调入内存准备将该页调入内存此时应将缺页的进程挂起(调页完成唤醒)此时应将缺页的进程挂起(调页完成唤醒)假如内存中有空闲块,则安排一个块,将假如内存中有空闲块,则安排一个块,将要调入的页装入该块,并修改页表中相应要调入的页装入该块,并修改页表中相应页表项目的驻留位及相应的内存块号页表项目的驻留位及相应的内存块号若此时内存中没有空闲块,则要淘汰某页若此时内存中没有空闲块,则要淘汰某页(若被淘汰页在内存期间被修改过,则要(若被淘汰页在内存期间被修改过,则要将其写回外存)将其写回外存)思索缺页中断同一般中断的区分?缺页中断同一般中断都是中断,相同点是:爱护现场 中断处理 复原现场不同点:一般中断是一条指令完成后中断,缺页中断是一条指令执行时中断一条指令执行时可能产生多个缺页中断。如指令可能访问多个内存地址,这些地址在不同的页中。6.3 页面置换算法先进先出页面淘汰算法(FIFO)选择在内存中驻留时间最长的页并淘汰之志向淘汰算法最佳页面算法(OPT)淘汰以后不再须要的或最远的将来才会用到的页面最近最久未运用页面淘汰算法(LRU)选择最终一次访问时间距离当前时间最长的一页并淘汰之 即淘汰没有运用的时间最长的页 实现代价很高 软件方法或硬件方法 某程序在内存中安排三个块,访问页的走向为4,3,2,1,4,3,5,4,3,2,1,5,按FIFO、LRU、OPT算法分别计算缺页次数假设起先时全部页均不在内存例1FIFO 4 3 2 1 4 3 5 4 3 2 1 5页1 4 3 2 1 4 3 5 5 5 2 1 1页2 4 3 2 1 4 3 3 3 5 2 2页3 4 3 2 1 4 4 4 3 5 5 x x x x x x x x x 共缺页中断9次FIFO LRU 4 3 2 1 4 3 5 4 3 2 1 5页1 4 3 2 1 4 3 5 4 3 2 1 5页2 4 3 2 1 4 3 5 4 3 2 1页3 4 3 2 1 4 3 5 4 3 2 x x x x x x x x x x共缺页中断10次 LRU OPT 4 3 2 1 4 3 5 4 3 2 1 5页1 4 3 2 1 1 1 5 5 5 2 1 1页2 4 3 3 3 3 3 3 3 5 5 5页3 4 4 4 4 4 4 4 4 4 4 x x x x x x x 共缺页中断7次OPT练习某程序在内存中安排四个块,访问页的走向为4,3,2,1,4,3,5,4,3,2,1,5,按LRU、OPT算法分别计算缺页次数假设起先时全部页均不在内存LRU 4 3 2 1 4 3 5 4 3 2 1 5页1 4 3 2 1 4 3 5 4 3 2 1 5页2 4 3 2 1 4 3 5 4 3 2 1页3 4 3 2 1 4 3 5 4 3 2页4 4 3 2 1 1 1 5 4 3 x x x x x x x x共缺页中断8次OPT 4 3 2 1 4 3 5 4 3 2 1 5页1 4 3 2 1 1 1 5 5 5 5 1 1页2 4 3 2 2 2 2 2 2 2 5 5页3 4 3 3 3 3 3 3 3 3 3页4 4 4 4 4 4 4 4 4 4 x x x x x x 共缺页中断6次有一虚拟存储系统,接受先进先出的页面淘汰算法。在内存中为每个进程安排3块。进程执行时运用页号的依次为 4 3 2 1 4 3 5 4 3 2 1 5(1)该进程运行时总共出现几次缺页。(2)若每个进程在内存有4块,又将产生几次缺页。(3)如何说明所出现的现象。例2FIFO 4 3 2 1 4 3 5 4 3 2 1 5页1 4 3 2 1 4 3 5 5 5 2 1 1页2 4 3 2 1 4 3 3 3 5 2 2页3 4 3 2 1 4 4 4 3 5 5 x x x x x x x x x 共缺页中断9次m=3FIFO 4 3 2 1 4 3 5 4 3 2 1 5页1 4 3 2 1 1 1 5 4 3 2 1 5页2 4 3 2 2 2 1 5 4 3 2 1页3 4 3 3 3 2 1 5 4 3 2页4 4 4 4 3 2 1 5 4 3 x x x x x x x x x x共缺页中断10次m=4m=3时,缺页中断9次m=4时,缺页中断10次FIFO页面淘汰算法会产生异样现象(Belady现象),即:当安排给进程的物理页面数增加时,缺页次数反而增加(1)安排给进程的物理块数(2)页本身的大小(3)程序的编制方法(4)页淘汰算法5、影响缺页次数的因素练习程序编制方法1:for j:=1 to 128 for i:=1 to 128 Ai,j:=0;程序编制方法2:for i:=1 to 128 for j:=1 to 128 Ai,j:=0;内存安排一页,初始时矩阵数据均不在内存;内存安排一页,初始时矩阵数据均不在内存;页面大小为页面大小为128128个整数;矩阵个整数;矩阵A128X128A128X128按行存放。按行存放。这两个程序执行时分别会产生多少次缺页中断?这两个程序执行时分别会产生多少次缺页中断?解程序编制方法程序编制方法1:for j:=1 to 128 for i:=1 to 128 Ai,j:=0;程序编制方法程序编制方法2:for i:=1 to 128 for j:=1 to 128 Ai,j:=0;128*128128 在虚存中,页面在内存与外存之间频繁调度,以至于调度页面所需时间比进程实际运行的时间还多,此时系统效率急剧下降,甚至导致系统崩溃。这种现象称为颠簸或抖动缘由:页面淘汰算法不合理安排给进程的物理页面数太少6、颠簸(抖动)1、段表内容 增加:特征位(在/不在内存,是否可共享)存取权限位(读,写,执行)标记位(是否修改过,能否移动)扩充位(固定长/可扩充)6.4 虚拟段式存储管理 检查内存中是否有足够的空闲空间 若有,则装入该段,修改有关数据结构,中断返回 若没有,检查内存中空闲区的总和是否满足要求,是则应接受紧缩技术,转;否则,淘汰一(些)段,转2、缺段中断处理习题解答5-15分页存储管理中,信息的共享和爱护有以下缺点:共享和爱护的单位要对应多个页表表目可能共享不该共享的内容6-9:101734250块号页号10010111000000101001011100000100页表首址页表首址+09程序地址程序地址 0A5C物理地址为:物理地址为:125C101734250块号页号01001111000000100100111100000100页表首址页表首址+09程序地址程序地址 093C物理地址为:物理地址为:113C作业1、某程序在内存中安排3块内存,初始为空,访问页的走向为2,3,2,1,5,2,4,5,3,2,5,2,用FIFO和LRU算法分别计算缺页次数FIFO 2 3 2 1 5 2 4 5 3 2 5 2页1 2 3 3 1 5 2 4 4 3 3 5 2页2 2 2 3 1 5 2 2 4 4 3 5页3 2 3 1 5 5 2 2 4 3 x x x x x x x x x共缺页中断9次LRU 2 3 2 1 5 2 4 5 3 2 5 2页1 2 3 2 1 5 2 4 5 3 2 5 2页2 2 3 2 1 5 2 4 5 3 2 5页3 3 2 1 5 2 4 5 3 3 x x x x x x x 共缺页中断7次2、有一页式系统,其页表存放在主存中。(1)假如对主存的一次存取要3us,问实现一次页面访问要多长时间。(2)如系统有快表,平均命中率为97%,假设访问快表的时间忽视为0,问此时一次页面访问要多长时间。1、2*3=6us2、0.97*3+0.03*6=3.09us3、在分页存储管理系统中,有一作业大小为4页,页长为2K,页表如下:试借助地址变换图(即要求画出地址变换图)求出逻辑地址4635所对应的物理地址。31637250块号页号01000011011000100100001101100111页表首址页表首址+010物理地址为:物理地址为:14875