问题标签 [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 投票
1 回答
35 浏览

linux - 内核线程如何只为自己请求页面?

如您所知,每个内核线程共享一个内核内存空间。描述内核线程的task_structmm字段为空。它使用“priv”任务的 mm 字段。

我认为它使任何内核线程都可以访问其他内核线程的私有内存区域。例如,其中一个设备驱动程序为其自己的缓冲区分配了 4KB 页面,但没有办法阻止其他线程访问它。因为每个内核线程共享一个内存地址空间。

所以,我有一个问题。有什么方法可以询问应该用于私有的页面吗?

0 投票
1 回答
2114 浏览

memory - 给定 16 条地址线(总线)和 8 位字长的寻址能力是多少?

一台计算机有 16 条地址线(地址总线?)和 8 位字长。什么是可寻址性?

我发现地址空间是 2^16 = 65536,但我仍然不知道如何计算可寻址性。

我知道可寻址性是每个空间占用的字节数,但我该如何计算呢?任何帮助将不胜感激,尤其是一些将字长/地址总线与可寻址性相关联的通用公式。

如果这个问题超级简单,我很抱歉。

0 投票
0 回答
73 浏览

io - 为什么有些处理器会为 IO 设备实现单独的地址空间?

我想知道为 IO 设备(尤其是 x86 架构)实现单独的地址空间和指令集的确切原因是什么。

Linux 设备驱动程序 [Chp. 9]仍然指出一些制造商“决定外围设备不同于内存,因此应该有单独的地址空间”。这是什么方面,有人可以澄清并提供背景吗?

0 投票
2 回答
11019 浏览

macos - 如何让 LLDB 打印内存中共享库的位置?

我正在尝试尽可能多地收集有关在 Mac OS 10.11.1 'El Capitan' 上使用 Valgrind 3.11.0 时看到的明显无限循环问题的信息。

当我valgrind在 LLDB 中运行我的程序或附加到valgrind运行我的程序然后停止该进程时,我得到如下回溯:

如何判断这些框架对应于哪些对象?

我尝试vmmap了这个过程,但它没有显示任何信息。特别是,“进程的不可写区域”部分通常会显示 dylib 映射到进程内存的地址范围是空白的:

0 投票
2 回答
216 浏览

c - 如何在地址空间中找到漏洞?

我有一组文件,其长度都是我的操作系统(FreeBSD 10)的页面大小的倍数。我想将mmap()这些文件放到 RAM 的连续页面中,让我能够将文件集合视为一个大型数据数组。

最好使用可移植函数,我怎样才能找到足够大的未映射地址空间区域,以便我可以确定mmap()对该区域的一系列调用会成功?

0 投票
3 回答
58 浏览

c++ - 对象的地址空间独立表示

如果请求的接收者可以以与地址空间无关的方式表示,那么您可以将请求的命令对象传输到不同的进程并在那里完成请求。

来自:http ://www.worldcat.org/isbn/9780201633610

如何在 C++ 中以独立于地址空间的方式表示对象?

编辑:如何在 c++ 中以独立于地址空间的方式表示对象,以便将命令对象传输到不同的进程并能够满足请求?

0 投票
1 回答
348 浏览

arm - ROM的地址空间并找出某些文件的虚拟地址

感谢您阅读这个问题。

一般来说,我对手臂和计算机架构非常陌生,如果这是一个基本问题,我很抱歉。

我花了很多时间阅读和学习 MMU 以及虚拟到物理地址的转换。我也没有了解地址空间。只是为了确保所有 io 外围设备(例如以太网和 USB)都有自己的地址以及外部 RAM 和 ROM,对吗?所以我想知道具体的地址值,所以我在这里阅读了这个 PDF 文档:http: //infocenter.arm.com/help/topic/com.arm.doc.den0001c/DEN0001C_principles_of_arm_memory_maps.pdf,但它非常令人困惑。我无法清楚地看到它在哪里显示了 ROM 的确切地址空间,而我发现的地址空间在某些 arm 手机上加起来不​​超过 128GB。

你能帮我理解这一切吗?我错了吗?以及如何找出所有外围设备、RAM 和 ROM 的确切地址,以便我可以在我的代码中为这些地址执行一些加载和存储功能。另外,如果我要对我的一部旧手机进行编码,您如何找到某些文件和文档的虚拟地址。因此,对于示例地址 0x00BA FFFF 到 0x0AFF FFFF 是针对某个音频文件的。通过这种方式探索,我学到了很多东西。

再次感谢,

威尔史密斯

0 投票
1 回答
2749 浏览

linux - 内核空间和用户空间虚拟地址划分

内核空间和用户空间地址范围是否总是以 1:3 的比例划分。

例如,如果我有 4GB 的地址空间和 4GB 的物理 RAM,那么内核将获得 1GB,而用户空间将获得 3GB(假设)!

因此,如果我有 2GB 的 RAM,那么它会像下面这样吗?

这是正确的假设吗?

0 投票
0 回答
536 浏览

pointers - 在 OpenCL 上为指针添加偏移量

我有一个缓冲区,我通过 cl_mem 对象传递给 OpenCL 内核,我想根据区域将其解释为不同的类型,例如

我的问题是第 2 行和第 3 行;我从编译器收到这条消息:

或类似的东西。我可以用

但我觉得这是在掩盖问题,我误解了地址空间的一些基本内容。当我在程序中引入另一个错误时,这些相同的行然后给我这个:

我应该在这里做什么?

0 投票
1 回答
73 浏览

linux - 如何从内核向进程地址空间写入数据?

当一个进程由创建时do_execve,我想在某处(比如 0x0100_0000)写入一些数据,以便在进程运行后它可以访问该地址以检索数据?如何完成这个任务?