#内存管理#408之OS真题系列

知识回顾

(1)驻留集:给一个进程分配的物理页框个数。

(2)页面替换算法:若要访问的页面不在内存中,且内存中没有空间(或者是第一题中【已分配的物理页框】已达到驻留集大小时),就需要从【内存】调出一页(送入【磁盘】的对换区)。

(3)【页目录号】&【页表索引】

一级页号即页目录号(对应二级页表):用于寻找页目录的表项(该表项包括页表的位置)。

二级页号即页表索引(对应一级页表):寻找页表的表项(该表项包含页的位置)。

(4)

真题

第一题:(2009页面置换&内存分配)

#内存管理#408之OS真题系列_第1张图片

#内存管理#408之OS真题系列_第2张图片

第一问:访存时间

页面大小=4KB=2^12B,即页内偏移为12位(虚地址后三位十六进制位)。

【2362H】P:2。10ns(TLB——初始为空)+100ns(页表)+100ns(访存)=210ns。

【1565H】P:1。10ns(TLB)+100ns(页表)+10^8ns(缺页中断处理)

+10ns(TLB——肯定命中)+100ns(页表)=1 0000 0220ns。

【25A5H】P:2。10ns(TLB——第一次访问已将该页号放入快表,所以下一步不用访问页表)+100ns(根据物理地址访存)=110ns。

第二问:虚实地址转换

【1565H】缺页中断。因为驻留集大小=2,即页表存在2对虚实页号的对应关系(分配2个物理页框给这个进程),

由LRU,需要把页表中2个页号中的0号页“换出”(换出0号指虚页号,实意是物理页框【101H】重分配给 新访问序列中的这个1565H)

即物理地址=页框号101H+页内偏移565H=【101565H】。

注意】虚实地址转换中页内偏移不变;

(1)本题初始情况是:TLB空,页表有3项(2项有效位为1即分配2个页框号给进程【该2页面在内存中】, 1项有效位为0即该页面在外存中);

(2)页面替换算法:若要访问的页面不在内存中,且内存中没有空间(或者是第一题中【已分配的物理页框】已达到驻留集大小时),就需要从【内存】调出一页(送入【磁盘】的对换区);

(3)第二问专注于页表(不用理TLB)。

第二题:(2015二级页表)

#内存管理#408之OS真题系列_第3张图片

第一问:页框/页size(送分题)

页框和页大小相等,均为4KB(从页内偏移得出);共1M页。

第二问:表项结构

因为页目录号为10bit,2^10(页目录的表项数)×4B /4KB=1页(即页目录占1页);

因为用2^20页,即所有页表共2^20个页表项,2^20 ×4B/4KB=2^10页;

注意最后求的是总和,即进程的页目录和页表共占1025页。

第三问:虚实转换

访问一个二级页表,因为虚拟地址0100 0000H和0111 2048H的最高十位都是0000 0001 00即4(访问同一个二级页表)。

【注意】:【一级页号】对应【二级页表】。

第三题(2012考静心读题):

#内存管理#408之OS真题系列_第4张图片

做题前脑海浮现这幅图

#内存管理#408之OS真题系列_第5张图片

1)明确【驻留集】概念:给进程分配的物理框集合。

2)先将给的访问序列以0—6,6—10,11—15的虚页号进行划分。

3)“本轮未被访问过的页框将被回收”指【驻留集中没在本轮被访问的页框要回收】。

(1)虚拟页<0,4>对应的页框号——21

【解析】初始驻留集为空

【第一轮】

<1,1>——32号页框

<3,2>——15号页框;

<0,4>——21号页框;

【第二轮】

<0,6>——命中21号页框;——32、15回收至空链尾(41->32->15

此时驻留集为{21}

【第三轮】

<1,11>——32号页框;

<0,13>——21号页框;

<2,14>——41号页框(从空闲页框链表头取页框41)

(2)虚拟页<1,11>对应的页框号——32

【解析】继续(1)分析,第二轮中<0,6>访问命中(驻留集中的21号页框),此时第二轮结束,

注意最后工作:因为驻留集中的32号、15号页框并没有在第二轮中被访问,所以要被回收到空闲页框链尾中(和空闲页框41号一起)

即此时的空闲页框为41->(32->15),此时的32和15先后不重要,此后正式步入第三轮。

再看(2)问题,访问<1,11>是第三轮第一个,访问的1号虚页(第一轮访问过,即第二轮结束时将其放入空闲链尾了),虽然在链尾中,但是其信息是在第三次分配前都存在的(不清空)。

于是重新把32号页框捞回驻留集。

(3)虚拟页<2,14>对应的页框号——41

【解析】见顶分析。

(4)这种方法是否适合于时间局部性好的程序,why

【解析】合适,程序的时间局部性越好,从空闲页框链表中重新取回的机会更大,优势越明显。

第四题(2010页面置换):

#内存管理#408之OS真题系列_第6张图片

当该进程执行到时刻260时,要访问的逻辑地址为17CAH的数据。

第一问:(页号,送分题)

(1)该逻辑地址对应的页号是多少?

逻辑地址和物理地址均为16位(64KB),页内偏移为10位(1KB)。

【17CA】=0001 0111 1100 1010B,虚页号=101B=5。

第二问:FIFO、CLOCK置换

(2)若采用FIFO置换,17CA对应的物理地址是?Clock置换呢?

设搜索下一页的指针顺时针移动,当前指向2号页框(如下图)。

#内存管理#408之OS真题系列_第7张图片

解析】【FIFO】最先进入的是虚页号0(对应页框号7=111),即物理地址为将000111替换虚拟地址的虚页号即可得到

0001 1111 1100 1010即1FCAH。

【CLOCK】从2号虚页号开始顺时针查找访问位=0的页面, 当遇到访问位=1的就改为0,转一圈后全改为0了;

重新回到2号见到访问位=0,于是置换该页,虚页2号对应的页框为2号,即实页号为0000 10(将该实页号替换虚页号即可得到物理地址0000 1011 1100 1010即0BCAH)。

第五题(2017进程状态&二级页表):

因为题目和2017年计组大题相关,所以写到那里去了。

https://blog.csdn.net/qq_35812205/article/details/108005393

注意

一级页号即页目录号(对应二级页表):用于寻找页目录的表项(该表项包括页表的位置)。

二级页号即页表索引(对应一级页表):寻找页表的表项(该表项包含页的位置)。

第六题:

--------------------未完待续----------------------

你可能感兴趣的:(操作系统)