问题标签 [virtual-address-space]

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.

0 投票
2 回答
3405 浏览

memory-management - 虚拟寻址与物理寻址

我不太明白“多个独立的虚拟地址,指向同一个物理地址”的好处,尽管我读了很多书和帖子,

例如,在类似的问题中物理寻址和虚拟寻址概念之间的区别

该帖子声称该程序不会相互崩溃,并且

“一般来说,一个特定的物理页面只映射到一个应用程序的虚拟空间”

好吧,在http://tldp.org/LDP/tlk/mm/memory.html的“共享虚拟内存”部分,它说

“例如,系统中可能有多个进程运行 bash 命令 shell。与其拥有多个 bash 副本,每个进程在虚拟地址空间中都有一个,不如在物理内存中只有一个副本并且所有进程都在运行bash 分享它。”

如果一个物理地址(例如,shell 程序)映射到两个独立的虚拟地址,这怎么能不崩溃呢?与使用物理寻址不一样吗?

虚拟寻址提供什么,物理寻址不可能或不方便?如果不存在虚拟内存,即两个直接指向同一个物理内存?我认为,通过使用一些协调机制,它仍然可以工作。那么为什么要打扰“虚拟寻址、MMU、虚拟内存”这些东西呢?

0 投票
2 回答
110 浏览

windows - [windows]:关于elf和vas之间的映射

我从 wiki 上读到了一些关于虚拟地址空间 (VAS) 的内容。

一件事我不明白,我不确定我是否理解正确。就这个:

应用程序的 EXE 文件映射到 VAS。进程 VAS 中的地址映射到 exe 文件中的字节。操作系统管理映射:

我的愚蠢问题是“映射到 VAS”是什么意思?这是否意味着exe文件将被加载到物理内存中?

0 投票
2 回答
659 浏览

pointers - MPI + 函数指针?

如果我在 MPI 配置中的 Beowulf 集群的多个节点上运行相同的二进制文件(这意味着相同的架构),通过 MPI 传递函数指针作为告诉另一个节点调用函数的方式是否安全?在什么情况下,如果有的话,同一个二进制文件中的同一个函数在不同的机器或不同的实例上可以有不同的虚拟地址?

0 投票
3 回答
1415 浏览

c - malloc分配的内存不一定是物理连续的吗?

malloc 分配的内存可能会占用几个页面,这些页面不一定彼此相邻,这是正确的吗?

0 投票
2 回答
24130 浏览

linux-kernel - remap_pfn_range 如何将内核内存重新映射到用户空间?

remap_pfn_range函数(用于mmap驱动程序中的调用)可用于将内核内存映射到用户空间。它是如何完成的?任何人都可以解释精确的步骤吗?内核模式是特权模式 (PM),而用户空间是非特权 (NPM)。在 PM 中,CPU 可以访问所有内存,而在 NPM 中,某些内存受到限制 - CPU 无法访问。当remap_pfn_range被调用时,仅限于 PM 的内存范围现在如何可供用户空间访问?

remap_pfn_range代码有pgprot_t struct。这是与保护映射相关的结构。什么是保护映射?是上面问题的答案吗?

0 投票
1 回答
272 浏览

linux-kernel - copy_to_user 如何在 s390 上工作?

在 s390 架构上,虚拟内核和用户地址空间永远不会同时存在,那么它是如何copy_to_user工作的呢?

0 投票
3 回答
15001 浏览

c# - 如何检查 exe 是否设置为 LARGEADDRESSAWARE

我正在开发一个 C# 程序,它将加载文件并获取加载文件创建日期、修改日期、大小等信息。我需要知道的另一件事是加载的文件 ( executable.exe) 是否与LARGEADDRESSAWARE标志链接。FileInfo 类不提供此信息。

有谁知道如何在 C# 中找出给定的 executable.exe 是否与LARGEADDRESSAWARE标志链接(以处理大于 2 GB 的地址)?

0 投票
2 回答
11537 浏览

architecture - 了解虚拟地址和虚拟地址空间

我读到,“当程序执行如下指令时MOV REG,1000,它会将内存地址 1000 的内容复制到 REG。地址可以使用索引、基址寄存器、段寄存器和其他方式生成。

这些程序生成的地址被称为虚拟地址,形成了虚拟地址空间。”

谁能解释一下,它(这些程序生成的地址称为虚拟地址)是什么意思?

0 投票
1 回答
155 浏览

windows - 用户虚拟地址空间内没有访问区域(0x0 到 0xFFFF)

我正在阅读一本关于 Windows 内部和虚拟内存章节的书,它提到前 64KB 地址范围被保留为无访问区域,并且提到的原因是避免不正确的指针引用。有人可以向我解释为什么以及如何避免不正确的指针引用

0 投票
2 回答
1780 浏览

windows - 需要在 exe 中重定位

当 exe 中的每个元素都与图像的基础相对偏移时,为什么需要重定位表?我的意思是即使图像被0X60000的正偏移量所取代,为什么还有重定位表,因为无论如何我们都会使用相对于新基础的RVA?