在一页式虚拟存储管理系统中,页面大小为4KB,系统支持的最大物理内存是4GB,某进程虚拟地址空间大小为256KB。(1)若页表中需要设置存在位、访问位、修改位、读写位等控制位,此进程的页表有多少页表项?每个页表项最少需要占几个字节?(2)以下是此进程要访问的逻辑地址(16进制数),0x12A5、0x3008、0x279F、0x12A7,请计算相应的页号。(3)若进程已按照这些页面序列访问了内存,接下来将访问5、4、3、2号页。初始分配给该进程的页框数为3,系统采用固定分配、局部置换。分别采用FIFO、LRU、CLOCK页面淘汰算法时会各淘汰哪页?
时间: 2023-06-11 20:07:21 浏览: 490
1. 由于页面大小为4KB,所以虚拟地址空间大小为256KB,即256KB/4KB=64个页面。每个页面对应一个页表项,因此此进程的页表有64个页表项。每个页表项需要设置存在位、访问位、修改位、读写位等控制位,假设每个控制位占1个字节,则每个页表项需要占4个字节(存在位+访问位+修改位+读写位)+ 4个字节(页帧号)=8个字节。
2. 逻辑地址的前20位为页号,后12位为页内偏移量。因此,0x12A5/4KB=0x4(整数部分为页号),0x3008/4KB=0xC(整数部分为页号),0x279F/4KB=0xA(整数部分为页号),0x12A7/4KB=0x4(整数部分为页号)。
3. 初始分配给该进程的页框数为3,因此需要进行页面置换。采用FIFO、LRU、CLOCK页面淘汰算法时,情况如下:
(1)FIFO页面淘汰算法
首先将0、1、2号页分别分配到3个空闲页框中。接下来访问0号页,1号页,2号页依次被加载到页框中。当需要加载5号页时,由于页框已经全部被占用,需要选择一个页框进行置换。此时,最先被加载的0号页即为最老的页,因此选择将其置换出去。同理,当需要加载4号页时,选择1号页进行置换;当需要加载3号页时,选择2号页进行置换;当需要加载2号页时,选择5号页进行置换。因此,FIFO页面淘汰算法会依次淘汰0、1、2、5号页。
(2)LRU页面淘汰算法
首先将0、1、2号页分别分配到3个空闲页框中。接下来访问0号页、1号页、2号页依次被加载到页框中,并且访问时更新对应页表项的访问位。当需要加载5号页时,由于页框已经全部被占用,需要选择一个页框进行置换。此时,最近最少使用的页为最老的页,即访问时间最久的页,因此选择将其置换出去。同理,当需要加载4号页时,选择访问时间最久的1号页进行置换;当需要加载3号页时,选择访问时间最久的2号页进行置换;当需要加载2号页时,选择访问时间最久的5号页进行置换。因此,LRU页面淘汰算法会依次淘汰0、1、2、5号页。
(3)CLOCK页面淘汰算法
首先将0、1、2号页分别分配到3个空闲页框中,并将它们的访问位初始化为0。接下来访问0号页、1号页、2号页依次被加载到页框中,并将对应页表项的访问位设置为1。当需要加载5号页时,由于页框已经全部被占用,需要选择一个页框进行置换。此时,从当前位置开始,寻找访问位为0的页框,同时将经过的页框的访问位设置为0。第一次循环后,0号页的访问位被设置为0;第二次循环后,1号页的访问位被设置为0;第三次循环后,2号页的访问位被设置为0;第四次循环后,5号页的访问位被设置为0,此时选择5号页进行置换。同理,当需要加载4号页时,需要经过2次循环,此时选择1号页进行置换;当需要加载3号页时,需要经过1次循环,此时选择2号页进行置换;当需要加载2号页时,需要经过3次循环,此时选择0号页进行置换。因此,CLOCK页面淘汰算法会依次淘汰5、1、2、0号页。
阅读全文