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

举报
野猪佩奇996 发表于 2022/01/23 01:11:53 2022/01/23
【摘要】 【知识回顾】 (1)驻留集:给一个进程分配的物理页框个数。 (2)页面替换算法:若要访问的页面不在内存中,且内存中没有空间(或者是第一题中【已分配的物理页框】已达到驻留集大小时),就需要从【内存】调出一页(送入【磁盘】的对换区)。 ——为保证进程高效运行,其【工作集】/【驻留集】页面需要都在主存中(而非虚存——包括虚拟内存那部分硬盘)...

知识回顾

(1)驻留集:给一个进程分配的物理页框个数。
(2)页面替换算法:若要访问的页面不在内存中,且内存中没有空间(或者是第一题中【已分配的物理页框】已达到驻留集大小时),就需要从【内存】调出一页(送入【磁盘】的对换区)。
——为保证进程高效运行,其【工作集】/【驻留集】页面需要都在主存中(而非虚存——包括虚拟内存那部分硬盘)否则会频繁调入调出页面。
(3)【页目录号】&【页表索引】
一级页号即页目录号(对应二级页表):用于寻找页目录的表项(该表项包括页表的位置)。
二级页号即页表索引(对应一级页表):寻找页表的表项(该表项包含页的位置)。
(4)

真题

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

第一问:访存时间

页面大小=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】。
修改后的进程的页表如下:
 

页号 页框号 有效位(存在位)
0 —— 0
1 101H 1
2 254H 1


注意】虚实地址转换中页内偏移不变;
(1)本题初始情况是:TLB空,页表有3项(2项有效位为1即分配2个页框号给进程【该2页面在内存中】, 1项有效位为0即该页面在外存中);
(2)页面替换算法:若要访问的页面不在内存中,且内存中没有空间(或者是第一题中【已分配的物理页框】已达到驻留集大小时),就需要从【内存】调出一页(送入【磁盘】的对换区);
(3)第二问因为注意到初始的TLB是空的,所以只用先看页表,而注意对于第一次访问【2362】页面时,由于TLB中没有该2号的表项,所以要去页表中查找页表项,之后注意会更新TLB,即将2号虚页对应的页表项加入TLB快表——千万不要忘记这个

第二题:(2015二级页表)

第一问:页框/页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考静心读题):

做题前脑海浮现这幅图

1)明确【驻留集】概念:给进程分配的物理框集合。
2)先将给的访问序列以0—5,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页面置换):

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

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

(1)该逻辑地址对应的页号是多少?
逻辑地址和物理地址均为16位(64KB),页内偏移为10位(1KB)。
【17CA】=0001 0111 1100 1010B,虚页号=101B=5。

第二问:FIFO、CLOCK置换

(2)若采用FIFO置换,17CA对应的物理地址是?Clock置换呢?
设搜索下一页的指针顺时针移动,当前指向2号页框(如下图)。

解析】【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
注意
一级页号即页目录号(对应二级页表):用于寻找页目录的表项(该表项包括页表的位置)。
二级页号即页表索引(对应一级页表):寻找页表的表项(该表项包含页的位置)。

第六题:

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

文章来源: andyguo.blog.csdn.net,作者:山顶夕景,版权归原作者所有,如需转载,请联系作者。

原文链接:andyguo.blog.csdn.net/article/details/108066992

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。