区只有一块(即只能放数组中的一行元素)。用户用Pascal语言编制了如下两个不同的程序来实现数组初始化:(1)var A:array[1..128]of array[1..128]of integer; for j:=1 to 128 do for i:=1 to 128 do A[i][j]:=0;
(2)var A:array[1..128]of array[1..128]of integer; for i:=1 to 128
do for j:=1 to 128 for A[i][j]:=0;
当分别执行这两个程序时,在实现数组初始化的过程中各会产生多少次缺页中断?(主存块的初始状态为空)(1)128×128次缺页中断。(2)128 次缺页中断。
2)某系统采用段式存储管理,一个作业有4段组成,段表如下:请计算出下列逻辑地址的绝对地址 (1)0,124 (2)1,378 (3)2,532 (4)3,420
(1)0段的首地址是340,所以绝对地址=340+124---464,地址越界。 (2)1段的首地址是1300,所以绝对地址=1300+378=1678 (3)2段的首地址是2650,所以绝对地址=2650+532=3182
(4)3段的首地址是3870,但3段的段长只有200,而用户给出的访问地址是420,所以地址越界,出现错误。
3) 一个由3个页面(页号位0、1、2),每页有2k字节组成的程序,把它装入一个由8个物理块(块号为0、1、2、3、4、5、6、7)组成的存储器中,装入情况如下表所示:请根据页表计算出下列逻辑地址对应的绝对地址。(1)320 (2)2345 (3)5374
(1)320/2048得到商是0,·余数是320,所以320地址在页号为0的页面上,且在页内部的位移为320,通过查表得到页号为0的页面放在主存的块号为6的块中,所以, 绝对地址:6X2048+320=12608 (2)2345/2048得到商是1,余数为297,所以逻辑地址2345在页号
为1的页面上,且在页内的位移为297,通过查页表得到页号为1的页面放在块号为7的块中,所以,绝对地址:7X2048+297=14633
(3)5374/2048得到商为2,余数为1278,所以逻辑地址5374在页号为2的页面上,且在页内的位移为1278,通过查页表得到页号为2的页面放在块号为3的主存块中,所以,绝对地址二3X2048+1278:7422 4)用可变分区方式管理主存时,假定主存中按地址顺序依次有五个空闲区,空闲区的大小依次为:23K、10K、5K、228K、100K。现有5个作业:J1、J2、,J3、J4、J5,它们各需主存IK、10K、108K、28K、115K。若采用最先适应分配算法,能把5个作业按J1到J5的次序全部装入主存吗?你认为按怎样的次序装入这5个作业可使主存空间利用率最高。
如果采用最先适应算法,空闲区应该按首地址从小到大的顺序排列,即23K、10K、5K、228K、100K。 作业J1需要1K空间,从23K中分出1K,这时系统中的空闲区大小和顺序为22K、10K、5K、228K、100K。 作业J2需要10K空间,从22K中分出10K,这时系统中的空闲区大小和顺序为12K、10K、5K、228K、100K 作业J3需要108K空间,只能从228K中分出108K,这时系统中空闲区大小和顺序为12K、10K、5K、120K、100K。
作业J4需要28K空间,从120K中分出28K,这时系统中空闲区大小和顺序为12K、10K、5K、92K、100K。 作业J5需要115K空间,剩下的空闲区都不能满足需要,所以J5没有装入系统。所以采用最先适应算法不能把这5个作业按J1到J5的次序全部装入主存。
使用最佳适应分配算法,可以把从J1到J5的5个作业全部装入主存,使主存的利用率最高。 使用最坏适应分配算法,无法全部装入主存。
5)考虑一个由4个页面,每页有1024字节组成的逻辑空间,把它装入到有16个物理块的物理存储器中,
第13页 共22页
问:
(1)逻辑地址需要多少位二进制来表示? (2)绝对地址需要多少位二进制来表示?
(1)因为逻辑页号为4页,所以需要2位二进制来表示,每页有1024个字节,需要10位二进制来表示,因此,逻辑地址需要用2+10=12位二进制来表示。
(2)主存有16个块,需要用4位二进制来表示,主存块的大小和逻辑页的大小相等,所以要用10位二进制来表示主存块,因此绝对地址需要用4+10=14位二进制来表示。
6)在采用页式管理的系统中,某作业j的逻辑地址空间为4页(每页2048字节),且已知该作业的页面映像表(即页表)如图。试借助地址变换图(画出地址变换图)求出有效逻辑地址4865所对应的物理地址。
一页大小为2048字节,则逻辑得志4865的页号机页内位移:为: 页号: 4865/2048=2 页内位移 4865-2048x2=769
然后,通过页表查知物理块号为6,将物理块号与逻辑地址中的页内位移拼接,形成物理地址,即: 6*2048+769=13057
7)某个os采用可变分区分配方法管理,用户区内存512k,自由区有可用空间表管理。若分配时采用分配自由区的低地址部分的方案,假设初始时全为空。对于下述申请序列:req(300k),req(100K),release(300k),req(150k),req(30K),req(40k),req(60k),release(30k) 回答下列问题:
(1)采用首次适应算法(ff),自由空区中有哪些空快(给出始址、大小)? (2)若采用最佳适应法,会答(1)中问题。
(3)如果再申请100k,针对(1)和(2)各有什么结果?
8)页式管理系统 ,逻辑地址长度为16位, 页面大小为4kb,第0,1,2,页对应物理块为5,10,11 逻辑地址2F6AH的物理地址? 4096B=2^12B 16位寻址一共2^16B
分页存储。共分的页:2^16/2^12=2^4=16 共分16页。 第0页的地址范围 0 - FFFH
第14页 共22页
第1页的地址范围 1000H - 1FFFH 第2页得地址范围 2000H - 2FFFH .....
第11页 B000H - BFFFH
第15页 F000H - FFFFH
2F6AH=10 1111 0110 1010 在2页的范围对应物理块11 所以物理地址为:
2F6AH - 2000H + B000H = F6AH + B000H= BF6AH
9)设正在处理器上执行的一个进程的页表见表5.1,表中的虚页号和物理块号是十进制数,起始页号(块号)均为0,所有的地址均是存储器字节地址,页的大小为1024B。
(1)详述在设有快表的请求分页存储管理系统中,一个虚地址转换成物理内存地址的过程。 (2)下列虚地址对应于什么物理地址:5499,2221。
(1)当进行地址变换时,首先去检索快表,试图从中找出所要访问的页。如找到,便修改页表项中的访问位。对于写指令,还需将修改位置为\,然后利用页表项中给出的物理块号和页内地址,形成物理地址。 如在快表中未找到该页的页表项,则应到内存中去查找页表,在从找到的页表项中的状态位来了解该页是
否已调入内存。其结果可能是:
①该页已调入内存,此时应将该页的页表项写入快表,当快表已满时,应调出按一定算法确定的页的页表项,然后再写入该页的页表项。
②该页尚未调入内存,此时产生缺页中断,请求操作系统从外存中把该页调入内存。
(2)5499 = 1024 * 5 + 379,故虚地址5499所对应的虚页号为5,页内地址为379。由题中附表知虚页号5对应的物理块号为0,所以虚地址5499所对应的物理地址为379。
2221 = 1024 * 2 + 173,故虚地址2221所对应的虚页号为2,页内地址为173。由题中附表知虚页号2对应的物理块号为空,故虚页号2所对应的物理块不在内存中。所以无法知道虚地址2221所对应的物理
地址。
10)一台计算机有4个页框,装入时间、上次引用时间和它们的R(读)与M(修改)位见表5.2(时间单位:滴答),请问FIFO、LRU算法将替换哪一页?
NRU算法在需要淘汰某一页时,从那些最近一个时期内未被访问的页中任选一页淘汰。在题述条件下,只有第0页是最近一个时期内未被访问的页。故NRU算法将淘汰第0页。
FIFO算法在需要淘汰某一页时,淘汰最先进入内存的页。在题述条件下,第2页是最先进入内存的页。故FIFO算法将淘汰第2页。
LRU算法在需要淘汰某一页时,淘汰最近最久未使用的页面。在题述条件下,第1页是最近最久未使用的页面。故LRU算法将淘汰第1页。第二次机会算法在需要淘汰某一页时,淘汰一个自上一次对它检查以来没有被访问过的页面。在题述条件下,第二次机会算法将淘汰第0页。
11)下表给出了其系统中的空闲分区表,系统采用可变式分区存储管理策略。现有以下作业序列:96K,20K,200K。若用最佳适应算法和首次适应算法来处理这些作业序列,试问哪一种算法可以满足该作业序列的请求,为什么?
第15页 共22页
首次适应算法空闲分区表和最佳适应算法分析表
12)设有一页式存储管理系统,向用户提供的逻辑地址空间最大为16页,每页2048字节,内存总共有8个存储块,试问逻辑地址至少应为多少位?内存空间有多大? 2048= 211, 16= 24,逻辑地址至少为15位。 内存:8×2048=214=16K
13)在一个采用页式虚拟存储管理的系统中,某进程依次要访问的字地址序列是:115,228,120,88,446,
102,321,432,260,167,若作业的第0页已经装入内存,现分配给该作业的主存共300字,页的大小为100字,则:
(1)按FIFO算法将产生_次缺页中断,依次淘汰页号为_ 0,1,2缺页中断率为:5/10=50%
(2)按LRU算法将产生_次缺页中断,依次淘汰页号为_ 2,0,1,3缺页中断率为:6/10=60% 14)有一请求分页存储管理系统,页面大小为每页100字节。有一个50×50的整型数组连续存放,每个整数占两个字节,将数组初始化为0的程序描述如下: int a[50][50]; int i, j;
for (i=0; i<=49; i++) for (j=0; j<=49; j++) a[i][j]=0;
若在程序执行时内存中只有一个存储块用来存放数组信息,试问该程序执行时产生多少次缺页中断? 由题目可知,该数组中有2500个整数,每个整数占用2个字节,共需存储空间
5000个字节;而页面大小为每页100字节,数组占用空间50页。假设数据从该作业的第 m页开始存放,则数组分布在第m页到第m+49页中,它在主存中的排列顺序为: a[0][0],a[0][ll,?,a[0][49] 第m页 a[1][0],a[1][1],?,a[1][49] 第m+l页 ┇
a[49][0],a[49][1],?,a[49][49] 第m+49页
由于该初始化程序是按行进行的,因此每次缺页中断调进一页后,位于该页内的数组元素全部赋予0值,然后再调入下一页,所以涉及的页面走向为m,m+l,?,m+49,故缺页次数为50次。
15)在一个请求分页存储管理系统中,一个作业的页面走向为4、3、2、1、4、3、5、4、3、2、1、5,当分配给该作业的物理块数分别为4时,试计算采用先进先出淘汰算法时的缺页率(假设开始执行时主存中没有页面),并将所得结果填表。
第16页 共22页