《虚拟存储器复习过程.ppt》由会员分享,可在线阅读,更多相关《虚拟存储器复习过程.ppt(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、虚拟存储器二、二、虚拟存储器的概念虚拟存储器的概念 虚拟内存(虚拟内存(Virtual Memory)是指在具有)是指在具有层次结构存储器的计算机系统中,采用自动层次结构存储器的计算机系统中,采用自动实现部分装入和部分对换功能,为用户提供实现部分装入和部分对换功能,为用户提供一个比物理主存容量大得多的可寻址的一种一个比物理主存容量大得多的可寻址的一种“主存储器主存储器”。它使用户逻辑存储器与物理。它使用户逻辑存储器与物理存储器分离,是操作系统给用户提供的一个存储器分离,是操作系统给用户提供的一个比真实内存空间大得多的地址空间比真实内存空间大得多的地址空间。实现虚拟存储器的物质基础是二级存储器结
2、构和动实现虚拟存储器的物质基础是二级存储器结构和动态地址转换机构。经过操作系统的改造,把计算机态地址转换机构。经过操作系统的改造,把计算机的内存与外存有机的结合起来使用,从而得到一个的内存与外存有机的结合起来使用,从而得到一个容量很大的容量很大的“内存内存”,这就是虚存。,这就是虚存。虚拟存储器实质上是把用户地址空间和实际的存储虚拟存储器实质上是把用户地址空间和实际的存储空间区分开来,当作两个不同的概念。它的容量主空间区分开来,当作两个不同的概念。它的容量主要受到两方面的限制:(要受到两方面的限制:(1)指令中表示地址的字长。)指令中表示地址的字长。一个虚拟存储器的最大容量是由计算机的地址结构
3、一个虚拟存储器的最大容量是由计算机的地址结构确定的。如:若确定的。如:若CPU的有效地址长度为的有效地址长度为32位,则程位,则程序可以寻址范围是序可以寻址范围是0232-1,即虚存容量为,即虚存容量为 4GB。(2)外存的容量。虚拟存储器的容量与主存的实际大外存的容量。虚拟存储器的容量与主存的实际大小没有直接的关系,而是由主存与辅存的容量之和小没有直接的关系,而是由主存与辅存的容量之和所确定。所确定。三、虚拟内存的特征三、虚拟内存的特征虚拟性。虚拟内存不是扩大实际的物理内存,而虚拟性。虚拟内存不是扩大实际的物理内存,而是扩充逻辑内存的容量。是扩充逻辑内存的容量。部分装入。每个进程不是全部装入
4、内存,而是分部分装入。每个进程不是全部装入内存,而是分成若干个部分。当进程需要执行时,才将当前运成若干个部分。当进程需要执行时,才将当前运行所需要的程序和数据装入内存。行所需要的程序和数据装入内存。对换性。在一个进程运行期间,它所需要的程序对换性。在一个进程运行期间,它所需要的程序和数据可以分多次调入。每次仅仅调入一部分,和数据可以分多次调入。每次仅仅调入一部分,以满足当前程序执行的需要。而且,在内存中那以满足当前程序执行的需要。而且,在内存中那些暂时不使用的程序和数据可以换到外存的交换些暂时不使用的程序和数据可以换到外存的交换区存放,以腾出尽量多的内存空间供可运行进程区存放,以腾出尽量多的内
5、存空间供可运行进程使用。使用。四、四、引入虚拟存储技术的好处引入虚拟存储技术的好处大程序:大程序:可在较小的可用内存中执行较大的用户可在较小的可用内存中执行较大的用户程序;程序;大的用户空间:大的用户空间:提供给用户可用的虚拟内存空间提供给用户可用的虚拟内存空间通常大于物理内存通常大于物理内存(real memory)并发:并发:可在内存中容纳更多程序并发执行;可在内存中容纳更多程序并发执行;易于开发:易于开发:与覆盖技术比较,不必影响编程时的与覆盖技术比较,不必影响编程时的程序结构程序结构6.2 请求分页存储管理方式1、基本思想 在进程开始运行之前,不是装入全部页面,而是装入几个或零个页面,
6、之后根据进程运行的需要,动态装入其它页面;当内存空间已满,而又需要装入新的页面时,则根据某种算法淘汰某个页面,以便装入新的页面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、页表表项页号、内存块号、驻留位、外存地址、访问位
7、、修改位驻留位(中断位):表示该页是在内存还是在外存访问位:根据访问位来决定淘汰哪页(由不同的算法决定)修改位:查看此页是否在内存中被修改过页号页号中断位中断位内存块号内存块号外存地址外存地址访问位访问位修改位修改位151413121110 9 8 7 6 5 4 3 2 10000000000000000111100001011000000000000011110010001110100110101 00010000000000100011000000000100110在在/不在内存不在内存页表页表虚地址虚地址8196物理地址物理地址245803、缺页中断(Page Fault)处理在地址映
8、射过程中,在页表中发现所要访在地址映射过程中,在页表中发现所要访问的页不在内存,则产生问的页不在内存,则产生缺页中断缺页中断。操作。操作系统接到此中断信号后,就调出缺页中断系统接到此中断信号后,就调出缺页中断处理程序,根据页表中给出的外存地址,处理程序,根据页表中给出的外存地址,准备将该页调入内存准备将该页调入内存此时应将缺页的进程挂起(调页完成唤醒)此时应将缺页的进程挂起(调页完成唤醒)如果内存中有空闲块,则分配一个块,将如果内存中有空闲块,则分配一个块,将要调入的页装入该块,并修改页表中相应要调入的页装入该块,并修改页表中相应页表项目的驻留位及相应的内存块号页表项目的驻留位及相应的内存块号
9、若此时内存中没有空闲块,则要淘汰某页若此时内存中没有空闲块,则要淘汰某页(若被淘汰页在内存期间被修改过,则要(若被淘汰页在内存期间被修改过,则要将其写回外存)将其写回外存)思考缺页中断同一般中断的区别?缺页中断同一般中断都是中断,相同点是:保护现场 中断处理 恢复现场不同点:一般中断是一条指令完成后中断,缺页中断是一条指令执行时中断一条指令执行时可能产生多个缺页中断。如指令可能访问多个内存地址,这些地址在不同的页中。6.3 页面置换算法先进先出页面淘汰算法(FIFO)选择在内存中驻留时间最长的页并淘汰之选择在内存中驻留时间最长的页并淘汰之理想淘汰算法最佳页面算法(OPT)淘汰以后不再需要的或最
10、远的将来才会用淘汰以后不再需要的或最远的将来才会用到的页面到的页面最近最久未使用页面淘汰算法(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页
11、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
12、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
13、 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
14、页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)页本身的大
15、小(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个整数;矩阵个整数;矩阵A A128X128128X128按行存放。按行存放。这两个程序执行时分别会产生多少次缺页中断?这两个程序执行时分别会产生多少次缺页中断?解程序编制方法程序编制方法1:for j:=1 to 128 for
16、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、段表内容 增加:
17、特征位(在/不在内存,是否可共享)存取权限位(读,写,执行)标志位(是否修改过,能否移动)扩充位(固定长/可扩充)6.4 虚拟段式存储管理 检查内存中是否有足够的空闲空间检查内存中是否有足够的空闲空间 若有,则装入该段,修改有关数据结若有,则装入该段,修改有关数据结构,中断返回构,中断返回 若没有,检查内存中空闲区的总和是若没有,检查内存中空闲区的总和是否满足要求,是则应采用紧缩技术,转否满足要求,是则应采用紧缩技术,转;否则,淘汰一(些)段,转;否则,淘汰一(些)段,转2、缺段中断处理习题解答5-15分页存储管理中,信息的共享和保护有以下缺点:共享和保护的单位要对应多个页表表目可能共享不该共
18、享的内容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
19、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所对应的物理地址。页号块号0513273631637250块号页号01000011011000100100001101100111页表首址页表首址+010物理地址为:物理地址为:14875此课件下载可自行编辑修改,仅供参考!此课件下载可自行编辑修改,仅供参考!感谢您的支持,我们努力做得更好!谢谢感谢您的支持,我们努力做得更好!谢谢
限制150内