美文网首页
OS 页表级数计算

OS 页表级数计算

作者: 高思阳 | 来源:发表于2022-06-11 12:56 被阅读0次

>系统采用 48 位虚拟地址,页面大小为 4KB,页表项大小为 8B,假设系统使用纯页式存储,则要采用()级页表。

首先,由页面大小 4KB = 2¹²,可以得知偏址位数为 12,所以 48 位虚拟地址由 12 位偏址 + 36 位页号构成,也即页面个数为 2³⁶。

每个页面可以存放的页表项个数为 4KB/8B = 512 = 2⁹,则要采用 36/9 = 4 级页表。

这里唯一有疑问的应该就是 36/9 是怎么来的,请继续往下看。

这里,我首先大致说一下多级页表的概念,举个不太恰当的例子,书都有目录,我们可以把书的整体的目录看作是最高一级页表,目录下面的章节看作次级页表,依次类推,章节下面还有小节等等。

接下来,我们就以题中数据为例,先来看一下一级页表:由前面计算我们已经得出每个页面可以存放的页表项个数为 2⁹,一个页表项就代表一个页面,那也就是说一级页表的情况下,最多有 2⁹ 个页面,如下图:

一级页表

接下来,我们再来看一下二级页表:从下图可以看出,二级页表中的每一个页表项对应的页面存放的也是页表项,也就是 1 个页表项对应的页面也存有 2⁹ 个页表项与页面一一对应,那么二级页表 2⁹ 个页表项对应的页面个数即为 2⁹×2⁹

多级页表

由上面我们就得知,k 级页表存放的页表项对应的页面个数为 29k,那么题目的答案也就是 29k = 236,即 k = 4。

学会了上面的题后,我们来看一道逆用的题。

>系统采用 64 位地址,采用虚拟页式存储管理,假设页面的大小是 4KB,每个页表项的长度是 4B,必须采用三级页表结构,每级页表结构中的每个页面都必须存放在一个物理页面中,请问在这种情形下,如何实现地址的映射?

页面的大小是 4KB = 2¹²,即偏址的位数为 12。

每个页面可以存放的页表项个数为 4KB/4B = 2¹⁰,采用三级页表结构,也就是 210×3 = 230,即页号的位数为 30。

综上,有效地址共 42 位,其中 30 位为页号,12 位为偏址。

相关文章

  • OS 页表级数计算

    >系统采用 48 位虚拟地址,页面大小为 4KB,页表项大小为 8B,假设系统使用纯页式存储,则要采用()级页表。...

  • 全国行政区划数据(省市区)

    全国行政区划 省级数据表 全国行政区划 市级数据表 全国行政区划 区级数据表

  • 多级页表如何节约内存(转)

    前言 在学习计算机组成原理时,书中谈到,"使用多级页表可以压缩页表占用的内存",在了解了多级页表的原理后,恐怕对这...

  • 反置页表

    在分页系统中为每个进程配置一张页表,进程逻辑地址空间中的每一页,在页表中都对应有一个页表项。在现代计算机系统中通常...

  • Room 修改表主键

    该篇使用较传统方式来修改表的主键,步骤在表结构中将原主键删除添加新主键升级数据库表 升级数据库表步骤创建一个新临时...

  • 分库分表方案

    -分表方案-数据迁移 1.分表计算。根据数据量现有量和递增量评估。表中字段不太多,字段长度适中的表,默认页大小为1...

  • 64-bit kernel 4级页表 、5级页表 & 地址计算

    关于4级页表、5级页表 硬件检查:如果存在la57的flag,则表示该平台硬件上支持5级页表特性 内核检查:查看内...

  • 2018-05-21

    OS学习周报告-3 页面置换算法模拟-FIFO 页面置换算法是虚拟内存技术中重要的技术之一,该算法是在搜索页表发生...

  • iOS编程入门

    1.iOS概述 说明:Core OS和Core Service提供了底层支持,包括文件访问、网络协议、低级数据类型...

  • 01-表和索引的结构

    一、表和索引是如何组织和使用 1、索引页和表页 表和索引行都存储在 页 中 页的大小可调 页的大小仅仅决定一个页可...

网友评论

      本文标题:OS 页表级数计算

      本文链接:https://www.haomeiwen.com/subject/xtoimrtx.html