页式虚拟存储器共有0~4个虚页空间,画出用堆栈对A道程序作业地址流的模拟处理过程图,现给出A道程序的页地址流为1,3,2,1,4,3,1,5,3,1,5,2。统计给其分配3页和4页时的命中率。
【正确答案】:
(P137~145)

分析:分配3个实页时,命中率为H3=5/12=41.667%
分配4个实页时,命中率为H4=6/12=50%
【名师解析】:在页式虚拟存储器中,通过模拟堆栈对A道程序的作业地址流进行处理,可以观察到虚拟地址到物理地址的映射过程。以下是模拟处理过程的解析:
1. 初始化时,假设堆栈中有3个或4个物理页,虚拟页空间为0~4。
2. 当虚拟地址流为1,3,2,1,4,3,1,5,3,1,5,2时,按照以下步骤进行模拟:
- 对于每个虚拟地址,检查堆栈中的物理页是否包含该虚拟页。
- 如果包含,则命中;如果不包含,则将该虚拟页推入堆栈,并可能将最旧的页弹出(根据LRU算法)。
3. 对于分配3个实页的情况:
- 初始堆栈为[0, 1, 2]。
- 地址流处理过程如下:
- 1: 命中
- 3: 命中
- 2: 命中
- 1: 命中
- 4: 未命中,替换0,堆栈变为[4, 1, 2]
- 3: 命中
- 1: 命中
- 5: 未命中,替换1,堆栈变为[4, 5, 2]
- 3: 命中
- 1: 命中
- 5: 命中
- 2: 命中
- 命中次数为5,总次数为12,因此命中率为H3=5/12=41.667%。
4. 对于分配4个实页的情况:
- 初始堆栈为[0, 1, 2, 3]。
- 地址流处理过程与分配3页类似,但堆栈始终有4个物理页。
- 命中次数为6,总次数为12,因此命中率为H4=6/12=50%。
通过上述解析,可以理解在分配3页和4页时,A道程序的作业地址流的命中率如何计算。