问题标签 [demand-paging]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
memory - COW 和 Demand 分页一样吗?
我在读:
虽然我完全理解 COW 是什么,但我对需求分页一无所知,它与 COW 有什么不同?我将其视为具有不同名称的 COW 的精确副本和实现。我错了吗?
c - 在不更改新创建的数组的值时,我是否遇到了需求分页?
我正在学习操作系统的内存管理,刚刚了解了虚拟内存以及如何使用按需分页来实现它。
我做了这个简单的程序:
它有2
路径:
一个分配了一个数组
4 gb
并不断改变它的值。另一个分配了一个 数组
4 gb
,但不改变它的值。
正如我所料,在运行第一个选项后,程序的内存增加到大约4 gb
,但第二个没有改变。我猜这是由于内存没有被访问,所以它的页面被“换出”到后备存储,直到再次需要它们。
我的理解正确吗?
operating-system - 页表中有效/无效位的硬件支持
在阅读有关需求分页的信息时,我可以在几个来源(例如http://www.expertsmind.com/questions/name-the-hardware-to-support-demand-paging-30176232.aspx)中看到我们需要硬件支持页表中每个条目的有效/无效位。但是,我无法理解硬件支持会是什么样子。据我了解,
- 页表本身是一个基于软件的结构,即它有 4 字节/8 字节(取决于寻址方案/架构等)条目,这些条目存在于 RAM 中。
- 有效/无效位与用于页表每个条目的 4 字节/8 字节是分开的,因此它不像页表条目的 4 字节,我们使用 31 位来存储帧号有效/无效位为 1 位。
所以总而言之,我的问题是 - 有效/无效位的硬件支持是什么样的?如果它可能因实现/架构而异,您能否分享任何特定实现的细节?
linux-kernel - 匿名按需填零映射页面的 PTE 地址字段是什么?
当程序调用mmap
分配一个匿名页(也称为零需求页)时,对应的页表项 (PTE) 的地址字段中会出现什么?我假设内核不会在物理内存中创建一个零初始化页面(并将该物理页面的页码输入到 PTE 中),直到请求进程实际接触到该页面 - 因此术语demand-zero。由于它不是磁盘地址,也不是 0(用于未分配的页面),所以那里会出现什么值?作为一个不同但相关的问题,内核如何“知道”该页面将作为需求零页面处理,即故障处理程序应该找到一个物理页面并将其初始化为 0 而不是从磁盘?