页表长度和页表大小_确定虚拟内存的页表大小

那么,如果问题只是“页面表的大小”?不管它是否适合物理记忆,可以计算出答案:

第一物理记忆有512K页物理内存(512M / 1K)。这需要19位来表示每个页面。将它添加到4位的会计信息,你得到23位。

现在虚拟内存。使用38位地址空间和10位(1K)页面大小,您的页面表中需要228个条目。

因此,每页23位的228页表项为6,174,015,488位或736M。

这是每个进程的单级VM子系统所需的最大大小。

现在显然,如果你只有512M的物理RAM,这样你就可以选择几个选项,那就不行了。

>可以减少物理页面的数量。例如,只允许一半的内存被分页,保持另一半驻留在所有时间。这将为每个条目节省一位,不够真实,无法改变。

>如果可能,增加页面大小。 38位地址空间的1K页面是非常大的页面表的原因。例如,我认为’386,其32位地址空间,使用4K页。这将导致百万页表项,远低于此处所需的2.6亿页。

>去多层次。更高级,但它基本上意味着页表本身可以进行分页。您必须保持第一级页面表驻留在物理内存中,但第二级可以根据需要进出。这将大大降低物理需求,但是以速度为代价,因为可能会发生两个级别的页面错误以获得实际的进程页面(一个用于辅助页面表,另一个用于进程页面)。

我们再来看一下选项3。

如果我们允许32M用于主分页表,并给每个条目4个字节(32位:只需23个,但是我们可以在这里进行总结),这将允许8,388,608页的辅助页表。

由于这些次页面页面每个长度为1K(允许我们以每个4个字节的形式存储256个次页表项),因此可以共计2,147,483,648个虚拟页面。

这将允许8,192个满载(即,使用其整个28位地址空间)进程并行运行,假设您有一大块磁盘空间来存储非驻留页面。

现在显然,主分页表(和VM子系统,并且可能是OS的其余部分的一大块)必须始终保持驻留。您不能被允许打开一个主页面,因为您可能需要该页面才能将其重新插入:-)

但是,对于主分页表来说,这是512M的只有32M的驻留费用,远远优于736M的(至少一个完全加载的进程)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值