🏷️ 知识点:改进型 Clock
某系统采用改进型 CLOCK 置换算法,页表项中字段 A 为访问位,M 为修改位。A=0 表示页最近没有被访问,A=1 表示页最近被访问过。M=0 表示页没有被修改过,M=1 表示页被修改过。按 (A, M) 所有可能的取值,将页分为四类:(0, 0)、(1, 0)、(0, 1) 和 (1, 1),则该算法淘汰页的次序为( )。
A. (0, 0), (0, 1), (1,0), (1, 1) B. (0, 0), (1, 0), (0, 1), (1, 1) C. (0, 0), (0, 1), (1, 1), (1, 0) D. (0, 0), (1, 1), (0, 1), (1, 0)
[tag_link]
正确答案:A
改进型 Clock 也称为 “二次机会(Second-Chance)算法的增强版”,依据页的访问位 A 和修改位 M 将页分成四类:
(0, 0):最近未被访问,未被修改 —— 优先淘汰(0, 1):最近未被访问,但被修改 —— 淘汰代价较大(需写回磁盘),次优先(1, 0):最近被访问,未被修改 —— 说明该页仍有用,再次保留(1, 1):最近被访问,已被修改 —— 最不愿意淘汰因此,淘汰顺序是按照代价和“是否有用”排序的:👉 (0, 0) < (0, 1) < (1, 0) < (1, 1)✅ [tag_link]正确答案是:A. (0, 0), (0, 1), (1, 0), (1, 1)
请根据题 44 图给出的虚拟存储管理方式,回答下列问题。
(1) 某虚拟地址对应的页目录号为 6,在相应的页表中对应的页号为 6,页内偏移量为 8,该虚拟地址的十六进制表示是什么?
(2) 寄存器 PDBR 用于保存当前进程的页目录起始地址,该地址是物理地址还是虚拟地址?进程切换时,PDBR 的内容是否会变化?说明理由。同一进程的线程切换时,PDBR 的内容是否会变化?说明理由。
(3) 为了支持改进型 CLOCK 置换算法,需要在页表项中设置哪些字段?
[tag_link]
1)由图可知,地址总长度为 32 位,高 20 位为虚页号,低 12 位为页内地址,且虚页号高 10 位为页目录号,低 10 位为页号。十六进制表示为 01806008H。
2)PDBR 为页目录基址地址寄存器(Page-Directory Base Register),其存储页目录表物理内存基地址。进程切换时,PDBR 的内容会变化;同一进程的线程切换时,PDBR 的内容不会变化。每个进程的地址空间、页目录和 PDBR 的内容存在一一对应的关系。进程切换时,地址空间发生了变化,对应的页目录及其起始地址也相应变化,因此需要用进程切换后当前进程的页目录起始地址刷新 PDBR。同一进程中的线程共享该进程的地址空间,其线程发生切换时,地址空间不变,线程使用的页目录不变,因此 PDBR 的内容也不变。
3)改进型 Clock 置换算法需要用到使用位和修改位,故需要设置访问字段(使用位)和修改字段(脏位)。