门户网站制作定做,江苏苏州网站建设,北京网站域名备案查询,百度云搜索引擎网站具有快表的地址变换机构 时间局限性#xff1a;会有大量连续的指令需要访问同一个内存块的数据的情况#xff08;程序中的循环#xff09; 空间局限性#xff1a;一旦程序访问了某个存储单元#xff0c;在不久之后#xff0c;其附近的存储单元也很有可能被访问。#xf…具有快表的地址变换机构 时间局限性会有大量连续的指令需要访问同一个内存块的数据的情况程序中的循环 空间局限性一旦程序访问了某个存储单元在不久之后其附近的存储单元也很有可能被访问。因为很多数据在内存中都是连续存放的比如数组
引入快表后地址的变换过程 快表中存储了访问频率很高的页表项访问速度极快容量很小只能存储部分页表项
两级页表 为什么要引入两级页表呢单级页表的问题
一个支持32位逻辑地址空间的进程这个进程的理论最大为4G页表项大小为4B(连续的时候刚好可以填满一个内存块 页面大小为4KB。 页面大小4KB2的12次方说明32位要拿出12位就是4KB来记录页面内的偏移地址剩余20位用来表示页号/块号即最大能记录页号为2的20次方的页号那么单级页表就需要有2的20次方个页表项来记录每个页号对应的块号 而每个页表项大小又为4B即2的2次方那么这个单级页表就需要 2的20次方 × 2的2次方 的内存大小去存放它4MB而每个内存块即页面大小的大小是2的12次方即4KB那么就需要 2的22次方 除以 2的12次方 等于 2的十次方个内存块页框去存放它一个4G的进程的单级页表 注意上述问题中如果进程需要4GB的内存那么就需要4MB的连续内存来存放该进程的单级页表单级页表需要连续才能比较便捷的计算。这里引入两级页表不是为了解决4MB很大的问题而是要解决需要连续4MB内存的问题引入两级页表后4GB的内存依然需要4MB的内存空间去存放页表项只不过是可以分散放在不同的内存块页框中了
两级页表甚至多级页表的思想先根据页面大小4KB2^12)确定逻辑地址40要拿12位来它在内存块中的地址剩下的28位为什么不能超过10位因为一个内存块4KB最多装入2^10个 4B的页表项而各级页表的大小不能超过一个页面