考研OR工作 |
您所在的位置:网站首页 › 请求分页系统性能分析 › 考研OR工作 |
在第五章的学习中,主要理解虚拟存储器的基本概念和它的具体实现方法,当然也需要朋友们对请求分页系统的基本原理知识有所了解,看这篇文章的时候,会更加能够吸收相应的“简答”题型或者是会“计算”相应的题型。本章的内容参考《计算机操作系统》(第四版 汤子瀛)的书籍相应章节。阿婆主只是知识的搬运工~ 目录(检索你需要知道的知识点) 第五章操作系统的基础知识点 5.1 虚拟存储器基本概念中的典型问题分析 5.1.1 什么是虚拟存储器?如何实现页式虚拟存储器? 5.1.2 “整体对换从逻辑上也扩充了内存,因此也实现了虚拟存储器的功能”这种说法是否正确,请说明理由。 5.2 请求分页/段系统中的典型问题分析 5.2.1 在请求分页系统中,为什么说一条指令执行期间可能产生多次缺页中断? 5.2.2 在置换算法中,LRU和LFU哪个更常用?为什么? 5.2.3 在一采取局部置换策略的请求分页系统中,分配给某个作业的内存块数为4,其中存放的四个页面的情况如下表所示... 5.2.4 在一个请求分页系统中,假如一个作业的页面走向为4,3,2,1,4,3,5,4,3,2,1,5,目前它还没有任何页装入内存,当分配给该作业的物理块数目M分别为3和4时,请分别计算采用LRU和FIFO页面淘汰算法时,访问过程中所发生的缺页次数和缺页率,并比较所得的结果。 5.2.5 某页式虚拟存储管理系统中,页面大小为1K字节,一进程分配到的内存块数为3,并按下列地支顺序引用内存单元:3635,3632,1140,3584,2892,3640,0040,2148,1700,2145,3209,0000,1102,1100。如果上述数字均为十进制数,而内存中尚未装入任何页,请: (1)给出使用LRU算法时的缺页次数,并与使用FIFO算法时的情况进行比较; (2)用流程图的方式解释地址变换的过程(缺页时只需指出产生缺页中断以请求调页,具体的中断处理流程不需画出)。 5.2.6 有一二维数组: VAR A:ARRAY[1..100,1..100] OF integer; 按先行后列的次序存储。对一采用LRU置换算法的页式虚拟存储器系统,假设每页可存放200个整数。若分配给一个进程的内存块数为3,其中一块用来装入程序和变量i、j,另外两块专门用来存放数组(不作他用),且程序段已在内存,但存放数组的页面尚未装入内存。请分别就下列程序,计算执行过程中的缺页次数。 5.2.7 某虚拟存储器的用户空间共有32个页面,每页1KB,主存16KB。假定某时刻系统为用户的第0、1、2、3页分配的物理块号为5、10、4、7,而该用户作业的长度为6页,试将十六进制的虚拟地址0A5C、103C、1A5C转换成物理地址。 5.2.8 考虑一个请求调页系统,它采用全局置换策略和平均分配内存块的算法(即,若有m个内存块和n个进程,则每个进程分得m/n个内存块)。如果在该系统中测得如下的CPU和对换盘利用率,请问能否增加多道程序的度数来增加CPU的利用率?为什么? 5.2.9 现有一请求调页系统,页表保存在寄存器中。若一个被替换的页未被修改过,则处理一个缺页中断需要8毫秒;若被替换的页已被修改过,则处理一个缺页中断需要20毫秒。内存存取时间为1微妙,访问页表的时间可忽略不计。假定70%被替换的页被修改过,为保证有效存取时间不超过2微妙,可接受的最大缺页率是多少? 5.2.10 假如一个程序的段表如下表,其中存在位为1表示段在内存,存区控制字段中W表示可写,R表示可读,E表示可执行。对下面可执行。对下面的指令,在执行时会产生什么样的结果? 5.2.11 请求分页管理系统中,假设某进程的页表内容如下表。 页面大小为4KB,一次内存的访问时间是100ns,一次快表(TLB)的访问时间是10ns,处理一次缺页的平均时间为108ms(已含更新TLB和页表的时间),进程的驻留集大小固定为2,采用LRU置换算法和局部淘汰策略。假设a、TLB初始为空;b、地址转换时先访问TLB,若TLB未命中,再访问页表(忽略访问页表之后的TLB更新时间);c、有效位为0表示页面不再内存,产生缺页中断,缺页中断处理后,返回到产生缺页中断的指令处重新执行。设有虚地址访问序列2362H、1565H、25A5H,请问依次访问上述三个虚地址,各需多少时间?给出计算过程。
第五章操作系统的基础知识点 5.1 虚拟存储器基本概念中的典型问题分析 5.1.1 什么是虚拟存储器?如何实现页式虚拟存储器? 答:虚拟存储器是指具有请求调入功能和置换功能,能从逻辑上对内存容量进行扩充的一种存储系统。从用户观点看,虚拟存储器具有比实际内存大得多的容量,其逻辑容量由逻辑地址结构以及内存和外存容量之和决定,其运行速度接近于内存的速度,而每位成本却又接近于外存。 为实现虚拟存储器,首先需要扩充页表,增加状态位以指出所需页是否在内存,增加外存始址以便调入页面,增加引用位以供置换算法用,增加修改位使得换出时减少写入磁盘次数。另外,还要使用以下两种关键技术。 (1)请求调页技术。该项技术是指及时将进程所要访问的、不在内存中的页调入内存。该功能是由硬件(缺页中断机构发现缺页)和软件(将所需页调入内存)配合实现的。 (2)置换页技术。该项技术是指当内存中已无足够空间用来装入即将调入的页时,为了保证进程能继续运行,系统必须换出内存中的部分页,以腾出足够的空间。具体的置换操作并不复杂,其关键是应将哪些页换出,即采取什么置换算法。
5.1.2 “整体对换从逻辑上也扩充了内存,因此也实现了虚拟存储器的功能”这种说法是否正确,请说明理由。 答:上述说法是错误的。整体对换将内存中暂时不用的某个程序及其数据换出至外存,腾出足够的内存空间以装入在外村中的、具备运行条件的进程所对应的程序和数据。虚拟存储器是指仅把作业的一部分装入内存便可运行作业的存储器系统,它的实现必须建立在离散分配的基础上。虽然整体对换和虚拟存储器均能从逻辑上扩充内存空间,但整体对换不具备离散型,实际上,在具有整体对换功能的系统中,进程的大小仍将受到实际内存容量的限制。
5.2 请求分页/段系统中的典型问题分析 5.2.1 在请求分页系统中,为什么说一条指令执行期间可能产生多次缺页中断? 答:因请求调页时,只要作业的部分页在内存,该作业就能执行,而在执行过程中发现所要访问的指令或数据不在内存时,则产生缺页中断,将所需的页面调入内存。在请求调页系统中,一条指令(如 copy A to B)可能跨了两个页,而其中要访问的操作数可能与指令不在同一个页上,且操作数本身也可能跨了两个页。当要执行这类指令,而相应的页都不在内存时,就将产生多次缺页中断。
5.2.2 在置换算法中,LRU和LFU哪个更常用?为什么? 答:LRU置换算法比LFU置换算法更常用。 置换算法总是希望被换出的页(段),在不久的将来再被访问的概率尽可能小。然而LFU算法往往不能实现这一点。因为在LFU算法中,某页被访问的次数是用计数器计数的,在有些情况下,刚被调入的页(段)由于局部性原理,可能立即被访问多次,因而其计数器的计数值会很大;但过了这一小段时间后,该页(段)又不再被访问。这样,在根据置换算法确定的原则选择某一页(段)将之换出时,这样的页(段)会被留在内存中,而将其他页(段)换出去。如此被调出的页(段),虽然在刚才一段时间内其被访问次数的计数值较小,但有可能马上又要访问。可见,LFU算法的置换选择可能导致较坏的选择。 但在LRU算法中,由于是选择最近最久未被访问的页(段)置换出去,即预计在最近的将来该页被访问的概率也很小。所以,这种置换算法可能导致较好的选择,这使LRU算法或其近似算法,获得了较好的应用。
5.2.3 在一采取局部置换策略的请求分页系统中,分配给某个作业的内存块数为4,其中存放的四个页面的情况如下表所示: 表:具有四个页面的作业表 物理块虚页号装入时间最后一次访问时间访问位修改位0260157011116016110202615800332016311表中的所有数字均为十进制数,所有时间都是从进程开始运行时,从0开始计数的时钟数。请问,如果系统采用下列置换算法,将选择哪一页进行换出? (1)FIFO算法; (2)LRU算法; (3)改进的Clock算法。 分析:FIFO算法即先进先出算法,它选择最先装入内存的页面进行换出;LRU算法即最近最久未用置换算法,它选择最近最长时间没被使用的页面进行换出;改进的Clock算法是一种常用的LRU近似算法,它优先选择访问位和修改位均为0的页面进行换出。 答:(1)FIFO算法选择的换出页是物理块3中的第3页。 (2)LRU算法选择的换出页是物理块0中的第2页。 (3)改进的Clock算法选择的换出页是物理块2中的第0页。
5.2.4 在一个请求分页系统中,假如一个作业的页面走向为4,3,2,1,4,3,5,4,3,2,1,5,目前它还没有任何页装入内存,当分配给该作业的物理块数目M分别为3和4时,请分别计算采用LRU和FIFO页面淘汰算法时,访问过程中所发生的缺页次数和缺页率,并比较所得的结果。 分析:如果所访问的页还没装入内存,便将发生一次缺页中断,访问过程中发生缺页中断的次数就是缺页次数,而缺页的次数除以总的访问次数,就是缺页率。 答:(1)使用LRU算法时,访问过程中发生缺页的情况为:当M=3时,缺页次数为10,缺页率为10/12(如下表1);当M为4时,缺页次数为8,缺页率为8/12(如下表2)。可见,增加分配给作业的内存块数,可减少缺页次数,从而降低缺页率。 表1 访问过程中的缺页情况(M=3,LRU算法) 页面走向432143543215缺页(Y/N)YYYYYYYNNYYY最近最长时间未用的内存页 4321435432(2)使用FIFO算法时,访问过程中发生缺页的情况为:当M=3时,缺页次数为9,缺页率为9/12(如下表3);当M为4时,缺页次数为10,缺页率为10/12(如下表4).可见,增加分配给作业的内存块数,反而增加了缺页次数,提高了缺页率,这种异常现象被称作Belady现象。 表3 访问过程中的缺页情况(M=3,FIFO算法) 页面走向432143543215缺页(Y/N)YYYYYYYNNYYN最早进入内存的页面 43214443554 3 2 1 4 3 4 3 2
5.2.5 某页式虚拟存储管理系统中,页面大小为1K字节,一进程分配到的内存块数为3,并按下列地支顺序引用内存单元:3635,3632,1140,3584,2892,3640,0040,2148,1700,2145,3209,0000,1102,1100。如果上述数字均为十进制数,而内存中尚未装入任何页,请: (1)给出使用LRU算法时的缺页次数,并与使用FIFO算法时的情况进行比较; (2)用流程图的方式解释地址变换的过程(缺页时只需指出产生缺页中断以请求调页,具体的中断处理流程不需画出)。 答:(1)根据题意,分配给作业的内存块数为3,而页面的引用次序为3、3、1、3、2、3、0、2、1、2、3、0、1、1。因此,可以计算出,采用LRU算法时,缺页次数为8;采用FIFO算法时,缺页次数为6. LRU算法用最近的过去作为预测最近的将来的依据,因为程序执行的局部性规律,一般有较好的性能,但实现时,要记录最近在内存的每个页面的使用情况,比FIFO算法困难,其开销也大。有时,因页面的过去和未来的走向之间并无必然的联系,如上面,LRU算法的性能就没想象中那么好。 (2)地址变换的流程图如下(摘自书中)。 图 地址变换流程图
5.2.6 有一二维数组: VAR A:ARRAY[1..100,1..100] OF integer; 按先行后列的次序存储。对一采用LRU置换算法的页式虚拟存储器系统,假设每页可存放200个整数。若分配给一个进程的内存块数为3,其中一块用来装入程序和变量i、j,另外两块专门用来存放数组(不作他用),且程序段已在内存,但存放数组的页面尚未装入内存。请分别就下列程序,计算执行过程中的缺页次数。 程序 1: FOR I := 1 TO 100 DO FOR j := 1 TO 100 DO A[i,j] := 0 程序 2: FOR j := 1 TO 100 DO FOR i := 1 TO 100 DO A[i,j] := 0 答:对程序1,首次缺页中断(访问A[0,0]时产生)将装入数组的第1、2行共200个整数,由于程序是按行对数组进行访问的,只有在处理完200个整数后才会再次产生缺页中断;以后每调入一页,也能处理200个整数,因此,处理100*100个整数共将发生50次缺页。 对程序2,首次缺页中断同样将装入数组的第1、2行共200个整数,但由于程序是按列对数组进行访问的,因此在处理完2个整数后又会再次产生缺页中断;以后每调入一页,也只能处理2个整数,因此,处理100*100个整数共将发生5000次缺页。
5.2.7 某虚拟存储器的用户空间共有32个页面,每页1KB,主存16KB。假定某时刻系统为用户的第0、1、2、3页分配的物理块号为5、10、4、7,而该用户作业的长度为6页,试将十六进制的虚拟地址0A5C、103C、1A5C转换成物理地址。 答:由题目所给条件可知,该系统的逻辑地址有15位,其中高5位为页号,低10位为页内地址;物理地址有14位,其中高4位为块号,低10位为块内地址。另外,由于题目中给出的逻辑地址是十六进制数,故可先将其转换成二进制数以直接获得页号和页内地址,再完成地址的转换。 (1)如下图,逻辑地址
图 十六进制的地址转换 (2)逻辑地址(103C)的页号为4,页号合法,但该页未装入内存,故产生缺页中断。 (3)逻辑地址(1A5C)的页号为6,为非法页号,故产生越界中断。
5.2.8 考虑一个请求调页系统,它采用全局置换策略和平均分配内存块的算法(即,若有m个内存块和n个进程,则每个进程分得m/n个内存块)。如果在该系统中测得如下的CPU和对换盘利用率,请问能否增加多道程序的度数来增加CPU的利用率?为什么? (1)CPU的利用率为13%,盘利用率为97%; (2)CPU的利用率为87%,盘利用率为3%; (3)CPU的利用率为13%,盘利用率为3%; 答:(1)这种情况表示系统在进行频繁的置换,已致绝大部分时间被花在页面置换上,此时,增加多道程序的度数会进一步增加缺页率,是系统性能进一步恶化,所以,不能用增加多道程序的度数来增加CPU的利用率,反而应减少内存中的作业道数。 (2)在这种情况下,CPU的利用率已相当高,但对换盘的利用率却相当低,这表示运行进程的缺页率很低,可以适当增加多道程序的度数来增加CPU的利用率。 (3)在这种情况下,CPU的利用率相当低,而且对换盘的利用率也非常低,表示内存中可运行的程序数不足,此时,应该增加多道程序的度数来增加CPU的利用率。
5.2.9 现有一请求调页系统,页表保存在寄存器中。若一个被替换的页未被修改过,则处理一个缺页中断需要8毫秒;若被替换的页已被修改过,则处理一个缺页中断需要20毫秒。内存存取时间为1微妙,访问页表的时间可忽略不计。假定70%被替换的页被修改过,为保证有效存取时间不超过2微妙,可接受的最大缺页率是多少? 答:如果用p表示缺页率,则有效访问时间不超过2微妙可表示为: (1-p)*1 us + p*(0.7*20ms + 0.3*8ms + 1us) |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |