先决条件– 分页
页表具有页表项, 其中每个页表项都存储帧号和可选状态(如保护)位。虚拟内存系统中使用的许多状态位。最多重要PTE中的东西是框架编号.
页表条目具有以下信息–
框架编号–它给出你要查找的当前页面所在的框架编号。所需位数取决于帧数。帧位也称为地址转换位。帧的位数=物理内存大小/帧大小
存在/不存在位–存在或不存在位表示你要查找的特定页面是存在还是不存在。如果不存在, 则称为页面错误。如果相应的页面不在内存中, 则设置为0。用于由操作系统控制页面错误以支持虚拟内存。有时, 此位也称为有效/无效位。
保护位–保护位表示你要在该页面上提供哪种保护。因此, 这些位用于保护页面框架(读取, 写入等)。
引用位–引用位将说明是否在最后一个时钟周期中引用了该页面。访问页面时, 硬件将其设置为1。
启用/禁用缓存–有时我们需要新数据。假设用户正在从键盘上键入一些信息, 并且你的程序应根据用户提供的输入运行。在这种情况下, 信息将进入主存储器。因此, 主存储器包含用户键入的最新信息。现在, 如果你尝试将该页面放入缓存中, 则该缓存将显示旧信息。因此, 每当需要更新时, 我们都不想进行缓存或多级内存。与CPU最接近级别的信息和与用户最接近级别的信息可能会有所不同。因此, 我们希望信息必须是一致的, 这意味着无论用户提供了什么信息, CPU都应该能够首先看到它。这就是我们要禁用缓存的原因。因此, 此位启用或禁用页面缓存。
修改位–修改位表示页面是否已修改。修改意味着有时你可能会尝试在页面上写一些东西。如果页面被修改, 则每当你用其他页面替换该页面时, 修改后的信息应保留在硬盘上, 或者必须将其写回或将其保存回去。硬件在对页面进行写访问时将其设置为1, 用于避免换出时进行写操作。有时, 此修改位也称为脏位。
GATE CS Corner问题
练习以下问题将帮助你测试知识。在前几年的GATE或GATE模拟测试中, 所有问题都已提出。强烈建议你练习它们。
- GATE CS 2001, 问题46
- GATE CS 2004, 问题66
- GATE CS 2015(Set 1), 问题65
如果发现任何不正确的地方, 或者想分享有关上述主题的更多信息, 请写评论。