virtual-memory 相关问题

虚拟内存是为多任务内核开发的内存管理技术。

Android App虚拟内存空间布局问题

我有一个 64 位应用程序在 Docker 容器中的 Android 8.1 上运行,系统信息: 系统:Linux 5.4.40-gd8a93235f #2 SMP PREEMPT 9 月 8 日星期二 08:26:34 CST 2020 aarch64 GNU/Linux 中央处理器:arm64 当应用程序启动时...

回答 2 投票 0

x86 操作系统中是否指定/限制了页表位置?

我熟悉MIPS架构,它有一个软件管理的TLB。因此,如何以及在何处存储页表和页表条目完全取决于您。例如我做了一个项目

回答 1 投票 0

为什么在大多数操作系统中,任何地址为 0:1000 的进程中的第一个虚拟页都受到操作系统的保护

我知道NULL指针有特殊的含义,如果指针指向虚拟地址0那么它是一样的。那么这是保护第一个虚拟页的主要原因吗? 我试图绘制我的地图...

回答 1 投票 0

如果栈和堆位于一个非常大的虚拟空间中,为什么它们会发生碰撞?

如果每个进程都有自己的地址空间,并且它比计算机的物理内存大得多,为什么我们不能将堆栈放在这个地址空间的末尾,而将堆放在开头......

回答 1 投票 0

声明 16GB BSS 段有什么缺点吗?

我正在查看这个小程序,其中内存使用情况是不可预测的,因为它运行的目录可能包含很少的文件或可能包含数千万个文件,并且需要...

回答 1 投票 0

从操作系统VMM分配堆栈和进程数据段(堆)?

Unix系统上进程启动时,进程虚拟地址空间大小是如何确定的?当进程数据段或堆栈必须增长时,VAS、PAS 和 VMM 之间会发生什么情况? 看着...

回答 1 投票 0

使用COW fork后当前堆栈页是否共享?

我了解 COW 机制会导致所有父页面和子页面指向相同的框架,并且它还包括堆栈。不过不知道现在的情况如何

回答 1 投票 0

“内核母版页全局目录”到底是什么?

我曾经听我的操作系统讲师讨论过内核空间中的一个数据结构,称为“Kernel Master Page Global Directory”(简称KMPGD),它是用来管理内核页面的......

回答 1 投票 0

共享库的延迟绑定是通过操作系统延迟分配虚拟内存来实现的吗?

在 Linux 中(不确定是否适用于 Windows,也欢迎任何相关知识),当只需要一小部分共享库时,使用一种名为延迟绑定的技术来提高性能,

回答 1 投票 0

Arm Trusted Firmware可以直接访问物理内存吗?

我在arm-tf/include/lib/mmio.h中找到了mmio访问api,它像许多其他特权软件(linux、optee-os等)一样访问addr来执行I/O操作: 静态内联无效 mmio_write_32(

回答 1 投票 0

进程共享常见动态加载库的只读部分吗?

我想验证当我有两个不同的可执行文件依赖于同一个动态加载的库并且该库都具有“状态”(即

回答 1 投票 0

虚拟内存大小随着线程数量的增加而显着增加

在下面的c++代码示例中,每次用户按下“enter”键时,都会创建一个新线程。该线程等待 10 分钟并退出。该线程有一个带有一些字符串的“std::string”对象。 #包括...

回答 1 投票 0

在 WOW64 上运行的 32 位进程的实际页面大小是多少?

我知道在32位Windows上运行的32位进程的默认页面大小是4K,而在64位Windows上运行的64位进程的默认页面大小是8K。然而,32位的实际页面大小是多少

回答 3 投票 0

如何保证VirtualAlloc分配的虚拟内存地址在2-4GB之间

我尝试过使用while,但是效果不是很好。有什么办法可以做到吗? 布尔发现=假; uintptr_t memaddr = 0; 整数 n = 0; 而 (!发现 && n < 10) { n += 1; memaddr...

回答 1 投票 0

堆栈大小与虚拟内存的关系

在我们的操作系统课程中,我们提到虚拟内存是一种将物理内存抽象为进程的机制,它看起来像这样(每个进程): 堆栈向下增长

回答 1 投票 0

关于 PintOS 编译(C 编程)中的“预处理”,有 2 个引用头文件和不完整类型错误的问题

我是练习 PintOS 项目的学生。 在编程项目3(虚拟内存)中,我遇到了关于“编译中的预处理”(C程序)的问题。 我已经尝试了所有尽我所能的尝试,但是...

回答 1 投票 0

对于 64 位虚拟内存,为什么预分配堆栈很昂贵?

正如 https://without.boats/blog/why-async-rust/ 所说, 操作系统线程有一个大的预分配堆栈,这增加了每个线程的内存开销。 文章继续指出,大部分

回答 1 投票 0

获取Win32系统上的最大可寻址内存空间

在Win32系统上有没有一种方法可以使用Win32 API(或安装在> = XP系统上的任何可访问的DLL)以编程方式获取操作系统可寻址内存空间的完整大小。我

回答 1 投票 0

使用页表重新映射来避免数组重新分配期间的数据复制

假设您有一个类似 std::vector 的容器类,并且该向量已经用数据项填充了其容量的 100%,并且调用代码调用 push_back() 来添加另一个数据项。 在...

回答 1 投票 0

PTRACE_PEEKTEXT ptrace:输入/输出错误

我尝试使用 PTRACE_PEEKDATA 从内存中读取值。 要查找我使用 objdump - objdump --dwarf=decodedline ./exe_filename 的特定行的内存地址 并得到输出...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.