知识回顾
练习
习题一
内容:
某页式虚拟存储管理系统中,页面大小为1KB。给某一进程分配的内存块数为3 ,并按下列地址顺序引用内存单元:
3635、3632、1140、3584、2892、3640、0040、2148、1700、2145、3209、0000、1102、1100。
如果上述数字均为十进制数,而内存中尚未装入任何页。
(1) 给出使用LRU算法时的缺页次数。
(2)用流程图的方式解释地址变换的过程。(缺页时只需指出产生缺页中断以请求调页,具体的中断处理流程不需画出)
解答
(1)根据题意,页面的引用次序为3、3、1、3、2、3、0、2、1、2、3、0、1、1,则根据LRU算法依次访问各页,各内存块中的页面置换情况为(加粗页面表示刚调入内存):
访问页面 | 3 | 3 | 1 | 3 | 2 | 3 | 0 | 2 | 1 | 2 | 3 | 0 | 1 | 1 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
内存块1 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 1 | 1 | 1 | 0 | 0 | 0 |
内存块2 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 3 | 3 | 3 | 3 | ||
内存块3 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 1 | 1 | ||||
是否缺页 | ✔ | ❌ | ✔ | ❌ | ✔ | ❌ | ✔ | ❌ | ✔ | ❌ | ✔ | ✔ | ✔ | ❌ |
故可以看出,LRU算法时的缺页次数为8次。
PS:解题过程中需要进行淘汰页面的选择时,可以通过逆向检查此时在内存中的几个页面号,在逆向扫描过程中最后一个出现的页面就是要淘汰的页面。
例如此时分析到需要页面0,而此时内存已满,需要选一个页面淘汰,进行页面置换:那此时内存中的页面是3、1、2,然后逆向扫描之前访问的页面,三个页面当中1是最早访问的,也是最近最久未使用的页面,故将页面1淘汰,将需要的页面0调入。
页面置换之后:
其他分析过程类似。
(2)假设没有快表机构,其地址变换过程为: