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