ZKX's LAB

页面大小和页表项之间有必然的联系么? 如何计算多级页表所占内存空间

2020-09-30知识9

操作系统中的多级页表的问题 如果只有一个页表,页表长度会很大,远超标准的一个页框大小。分配连续内存不一定成功,违背分页的初衷。多级页表的其中一个目的就是使得单个页表的最大长度限制在一页。2020年1月10日补充:回到题目本身,在程序中一般不会在启动时就用完1M页面对应的内存,提前分配并无好处,多级页表按需分配,因此才有了每级页表也尽量是4k大小的设计策略(多小会有碎片,过大也会可能存在内存浪费)。

页面大小和页表项之间有必然的联系么? 如何计算多级页表所占内存空间

关于操作系统多级页表的问题 问老师查资料吧。学习要靠自己钻研。别在贴吧这丢人现眼啊。

页面大小和页表项之间有必然的联系么? 如何计算多级页表所占内存空间

多级页表如何节约内存? 重装系统,试试啦!

页面大小和页表项之间有必然的联系么? 如何计算多级页表所占内存空间

操作系统多级页表计算问题 2048B=2^11 64-11=53(地址中扣除页内地址位数)共有2^53页 一页中可以装2048/4=2^9个页表项 9*6>;53 至少需要6级页表

页面大小和页表项之间有必然的联系么? 如果一个页面的大小为4K,页表项大小为4B,那么为什么可以存2^10个页表项?我的意思就是问为什么要拿4K/4B=2^10?页表项不应该是存在于内存里面的?和页面大小有什么关系?。

基本分页存储管理方式的两级和多级页表 现代的大多数计算机系统,都支持非常大的逻辑地址空间(2^32~2^64)。在这样的环境下,页表就变得非常大,要占用相当大的内存空间。例如,对于一个具有32位逻辑地址空间的分页系统,规定页面大小为4 KB即2^12 B,则在每个进程页表中的页表项可达1兆个之多。又因为每个页表项占用四个字节,故每个进程仅仅其页表就要占用4 MB的内存空间,而且还要求是连续的。显然这是不现实的,我们可以采用下述两个方法来解决这一问题:(1)采用离散分配方式来解决难以找到一块连续的大内存空间的问题;(2)只将当前需要的部分页表项调入内存,其余的页表项仍驻留在磁盘上,需要时再调入。两级页表(Two-Level Page Table)对于要求连续的内存空间来存放页表的问题,可利用将页表进行分页,并离散地将各个页面分别存放在不同的物理块中的办法来加以解决,同样也要为离散分配的页表再建立一张页表,称为外层62616964757a686964616fe4b893e5b19e31333361303130页表(Outer Page Table),在每个页表项中记录了页表页面的物理块号。下面我们仍以前面的32位逻辑地址空间为例来说明。当页面大小为 4 KB时(12位),若采用一级页表结构,应具有20位的页号,即页表项应有1兆个;在采用两级页表结构。

#页表#内存碎片

随机阅读

qrcode
访问手机版