3. 思考题 (3) 某虚拟存储器的用户编程空间共32个页面,每页为1KB,内存为16KB。假定某时刻一用户页表中已调入内存的页面的页号和物理块号的对照表如下: 页号 0 1 2 3 计算逻辑地址0A5C(H)所对应的物理地址。 解: 页式存储管理的逻辑地址分为两部分:页号和页内地址。由已知条件“用户编程空间共32个页面”,可知页号部分占5位;由“每页为1KB”,1K=210,可知内页地址占10位。由“内存为16KB”,可知有16块,块号为4位。 逻辑地址0A5C(H)所对应的二进制表示形式是:000 1010 0101 1100 ,根据上面的分析,下划线部分为页内地址,编码“000 10”为页号,表示该逻辑地址对应的页号为2。查页表,得到物理块号是4(十进制),即物理块地址为:01 00 ,拼接块内地址10 0101 1100,得01 0010 0101 1100,即125C(H)。 (4) 考虑下述页面走向: 1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6 当内存块数量分别为3,5时,试问LRU、FIFO、OPT这三种置换算法的缺页次数各是多少?(注意,所有内存块最初都是空的,所以,凡第一次用到的页面都产生一次缺页。) 淘 汰 算 法 内存块数 LRU 3 5 15 8 FIFO 16 10 OPT 11 7 物理块号 5 10 4 7 (5) 考虑下面存储访问序列,该程序大小为460字: 10,11,104,170,73,309,185,245,246,434,458,364 设页面大小是100字,请给出该访问序列的页面走向。又设该程序基本可用内存是200字,采用FIFO置换算法,求出其缺页率。如果采用LRU置换算法,缺页率是多少?如果采用最优淘汰算法,其缺页率又是多少?(注:缺页率=缺页次数/访问页面总数) 解: 根据已知条件页面大小是100字,将页面访问序列简化为: 0,0,1,1,0,3,1,2,2,4,4,3 又因为该程序基本可用内存是200字,可知内存块数为2。 采用先进先出置换算法(FIFO),总共有6次缺页,缺页率为6/12=50%,具体算法如下: 页面走向 块1 块2 缺页 缺 0 0 0 1 0 1 缺 1 0 3 3 1 缺 1 2 3 2 2 4 4 2 缺 4 3 4 3 缺 缺 采用最近最少使用置换算法(LRU),总共有7次缺页,缺页率为7/12=58.3%,具体算法如下: 页面走向 块1 块2 缺页 0 0 缺 0 1 0 1 缺 1 0 3 0 3 缺 1 1 3 缺 2 1 2 缺 2 4 4 2 缺 4 3 4 3 缺 采用最佳置换算法(OPT),总共有5次缺页,缺页率为5/12=41.6%,具体算法如下: 页面走向 块1 块2 缺页 缺 0 0 0 1 0 1 缺 1 0 3 3 1 缺 1 2 3 2 2 4 3 4 缺 4 3 缺 本文来源:https://www.wddqw.com/doc/b2d7556e031ca300a6c30c22590102020740f2bd.html