计算机二级页表页框大小,两级页表

本文是在基本分页存储管理的基础上对分页管理的优化。在上篇文章中说到,操作系统会为每个进程建立一张页表,实现页号和内存块号之间的对应关系。本文从单级页表存在的问题引出两级页表,以及两级页表如何实现地址的变换。

1单级页表存在的问题

假设某计算机系统按字节寻址,支持32位逻辑地址,采用分页存储管理,页面大小为4KB,页表项长度为4B。

4KB = 212B,因此页内地址要用12位表示,剩余20位表示页号。——上篇文章 第三节的结论。

因此,该系统中用户进程最多有220页。相应的,一个进程的页表中,最多会有220个页表项,所以一个页表最大需要220 * 4B = 222B。一个页框(内存块)大小为4B,所以需要222/212 = 210个页框存储该页表。而页表的存储是需要连续存储的,因为根据页号查询页表的方法:K号页对应的页表项的位置 = 页表起始地址 + K * 4B(页表项长度),所以这就要求页表的存储必须是连续的。

回想一下,当初为什么使用页表,就是要将进程划分为一个个页面可以不用连续的存放在内存中,但是此时页表就需要1024个连续的页框,似乎和当时的目标有点背道而驰了....

此外,根据局部性原理可知,很多时候,进程在一段时间内只需要访问某几个页面就可以正常运行了。因此也没有必要让整个页面都常驻内存。

所以,单级页表存在以上两个问题。

2 两级页表

如何解决页表过大

你可能感兴趣的:(计算机二级页表页框大小)