- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果我们使用倒排页表将虚拟地址映射到物理地址,为什么要节省内存?例如,如果我们有两个进程,它们都有 4 个页面,我们将在两个不同的表中有 8 个条目,从虚拟地址指向物理地址:
Process 1:
[0] = 1
[1] = 5
[2] = 63
[3] = 0
Process 2:
[20] = 14
[21] = 55
[22] = 11
[25] = 9
2) Inverted page table
[0] = <p1 | 3>
[1] = <p1 | 0>
[5] = <p1 | 1>
[9] = <p2 | 25>
[11]= <p2 | 22>
[14]= <p2 | 20>
[55]= <p2 | 21>
[63]= <p1 | 2>
最佳答案
第一种情况下的页表是每个进程数据结构 的 。每个进程都有一个指向它自己的页表的指针,这个指针在进程被调度时被加载到 %CR3 寄存器中。它也在上下文中被保存与其他寄存器一起切换。
但是反向哈希表是一个 全局数据结构 。使用这种技术的操作系统将使用一些锁定机制在给定的时间点只允许访问 1 个进程。(想象一下 2 个内核上的 2 个进程同时访问一个全局数据)。
假设每个进程 ram 为 4GB,页面大小为 4096,在第一种情况下,每个进程有 4GB/4096 ,(其页表中的条目数 * 每个页表条目的大小),所有这些都会占用空间,对于每个进程创建/ fork 。用于映射虚拟到物理的总内存是所有进程的页表大小的总和。这是更简单的方法,因为在每次上下文切换时,您只会更改一个指针,没有什么复杂的。
在第二种情况下,您将有一个只有 4GB/4096 个条目的单个表,因此节省了空间,但内存管理变得复杂,因为这是一个全局数据,您必须在每个条目中添加更多信息,告诉当前所有者如何是(如您所示)等。MMU/OS 必须注意同步。
但是您给出的示例不准确,在具有每个进程页表的真实系统上,可以访问整个地址,在您的情况下,进程 p1 有 4 页,而 p2 有不同的页集。实际上,两个进程都可以访问相同的虚拟地址,映射到不同的物理帧。所以每个表中的每个表必须有 8 个条目。
关于memory-management - 如何使用倒排页表节省空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10772094/
我试图找出在将数据传输到设备之前将数据复制到固定内存是否有意义,因为我对输入数据的分配没有影响(它是一个库)。 std::vector idata(WORK_SIZE); int *idata_ali
model.save() 让我很困惑。 示例。我将我的 mongoose.model(mongoose.schema) 移动到单独的 model.js 文件中。当我使用这种方法创建模型时,以下问题困扰
我正在用 Java Swing 制作模拟时钟。要计算我需要的时钟指针角度: 我可以通过 System.currentTimeMillis() 获得的以毫秒为单位的 UTC 时间 时区偏移 TimeZo
编辑 我的应用程序中有声音,该声音在应用程序启动时开始播放。此外,我还有两种播放和停止声音的方法: -(void)playBgMusic { NSString *path = [[NSBundle m
所以我的应用有 1 个 Activity 和 4 个 fragment ,其中一个有 Chronometer 来显示经过了多少时间。 它工作正常,但我有一个问题,每次我移动到另一个 fragment
我是 FireDAC 新手,遇到问题。我想在Delphi XE7中使用FireDAC读写SQLite数据库。我尝试的大部分方法都有效,但我在将 TTime 保存到 SQLite DB 时遇到问题。 这
这是我使用基本 Node.js 服务器创建的示例站点。我能够成功发布、创建给定架构的用户,然后“保存”到数据库;但是,保存不会返回用户对象,并且在我的实际数据库中找不到。连接也返回成功。 main.j
我有一台配备 2 Gb Nvidia GPU 的 Mac Book Pro。我正在尝试利用我所有的 GPU 内存进行计算(python 代码)。如果我绕过 GUI 界面并仅通过命令行访问我的机器,我可
我希望使用 Powerpoint 创建一种测验,我想保存用户提供的输入。 例如:如果我问这个问题:你最喜欢什么颜色?当他们回答问题并单击下一步按钮时,我想保存文本框的值并将其附加到输出文件中。 我已经
我是一名优秀的程序员,十分优秀!