设正在处理器上执行一个进程的页表如表8-2所示。表中的虚页号和物理块号是十进制数,起始页号(块号)均为0。所有的地址均是存储器字节地址。页的大小为1024B。若发生缺页中断,使用LRU页面置换算法将缺页调入再进行地址变换,页表中访问字段记录本页最近已有多长时间未被访问。
问答题 详述在设有快表的请求分页存储器管理系统中,一个虚地址转换成物理内存地址的过程。
【正确答案】正确答案:在设有快表的请求分页存储管理系统中,一个虚地址转换成物理内存地址的过程中,一个虚地址转换成物理内存地址的过程为:当CPU给出逻辑地址后,地址变换机构自动将逻辑地址划分为页号和页内位移两部分。然后将页号与快表中的所有页号进行比较,若快表中有与此匹配的页号,则表示所要访问的页表项在快表中,于是取出该页对应的物理块号,与页内地址拼接成物理地址。同时还应修改该页表项中的访问位,对于写指令还需要将修改位置为1。若快表中的所有页号与所查找页号不匹配,则还需要访问土存中的页表。若该页在内存中,则从页表中取出物理块号,与页内地址拼接形成物理地址。若该页不在内存,则产生缺页中断,请求操作系统将缺页调入内存;若分配的内存已满,则必须按某种置换算法,淘汰一个页,以腾出位置调入新页:若换出的页已修改,还需要将其写同磁盘。再按前述方式进行地址变换。如果地址变换是通过查找内存中页表完成的,则还应将这次所查到的页表项存入快表中,若快表已满,则必须按某种置换算法淘汰一个表项,以腾出位置存入此页表项。
【答案解析】
问答题 根据给出的某进程的页表,系统给该进程分配的最大内存物理块数为3,进程先后使用下面两个虚地址访问内存,其对应的物理内存地址分别是多少?请详述整个地址变换过程.并参照给出的页表,画出每次操作后的页表。(注:访问字段表示的是该页最近已有多长时间未被访问) a)4475(写操作) b)1197(读操作)
【正确答案】正确答案:在本题中,系统页面大小为1024B。 a)对于逻辑地址4475,其页号为4475/1024,向下取整为4。页内位移为4475%1024=379。查页表知第4页对应第0个物理块,所以其物理地址为1024×0+379=379。同时需要修改第4页表项中的访问位为0,该操作结束后,访问字段自增1。得到新的页表如表8-10所示。b)对于逻辑地址1197,其页号为1197/1024,向下取整为1,页内位移为1197%1024=173。查页表知,第1页不在内存中,此时发生缺页中断,由缺页中断处理程序将缺页调入内存,又系统分配给该进程的内存块为3,此时已满,需要按LRU页面置换算法决定淘汰页,置换算法根据已知条件“页表中访问字段记录本页最近已有多长时间未被访问”,根据a)操作后得到的页表,我们可以知道最近最久未被访问的是第2页,又其修改位为0,故直接把第1页调入内存中的第2个物理块。 所以其物理地址为1024×2+173=2221。 该指令完成后,得到新的页表如表8-11所示。
【答案解析】