Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
虚拟地址何时分配给程序/进程?
对于许多人来说 这可能听起来很愚蠢的问题 但我想对这个主题有清楚的了解 例如 当我们在linux ubuntu x86 上构建C程序时 成功编译和链接过程后会生成a out a out 包含什么类型的地址 是虚拟地址吗 如果不是 那么虚拟地
Linux
virtualmemory
如何避免高内存使用应用程序内存不足? C/C++
我编写了一个转换器 它采用 openstreetmap xml 文件并将它们转换为二进制运行时渲染格式 该格式通常约为原始大小的 10 输入文件大小通常为 3GB 或更大 输入文件不会一次全部加载到内存中 而是以收集点和多边形的方式进行流式
c
memory
virtualmemory
为什么页面错误通常由操作系统而不是硬件处理?
我发现在TLB丢失过程中 有些体系结构使用硬件来处理它 而有些体系结构则使用操作系统 但当涉及到页面错误时 大多数都使用操作系统而不是硬件 我试图找到答案 但没有找到任何文章解释原因 有人可以帮忙解决这个问题吗 谢谢 如果硬件能够自行处理它
operatingsystem
Paging
cpuarchitecture
virtualmemory
pagefault
fork() 之后地址、值和指针会发生什么
我正在研究一个问题 我要在某个问题之前和之后检查价值观并解决问题fork 在 C 中调用 我的方法是显示变量值和地址 假设在fork 令我惊讶的是 上述变量的地址保持不变 我的问题是为什么它们是相同的 如果我更改子项中的变量会发生什么 父母
c
fork
parentchild
memoryaddress
virtualmemory
页表是如何存储在主存中的?
我知道页表存储在内存中 每个进程都有自己的表 但是每个表都有与虚拟内存中的虚拟页数相同的条目 那么每个进程怎么可能有一个表并且每个表都驻留在主内存中呢 每个表中的条目数大于主内存中的物理页数 有人可以向我解释一下 我很困惑 提前致谢 通常
virtualmemory
页面 PG_referenced 与 PG_active 位?
我正在阅读有关页面和内存分配的内容 发现 PG referenced and PG active但我不清楚有什么区别 我知道 PG active 在访问页面时设置并每隔一段时间清除一次 但这有什么不同PG referenced 怎么可能一个
Linux
memorymanagement
Linuxkernel
operatingsystem
virtualmemory
如何从映射它的所有 PTE 中取消映射结构页
我希望能够从页面缓存中删除页面 以便下次访问该页面 通过任何进程 将触发页面错误 我是从内核执行此操作的 并且我有一个指向struct page我想删除 从页面缓存中删除很容易 通过 delete from page cache 但我不知道
memorymanagement
Linuxkernel
Paging
virtualmemory
如何从 EXC_BAD_ACCESS 中恢复?
我是故意造成的EXC BAD ACCESS 通过触发写入NSObject在只读虚拟内存页中 理想情况下 我想抓住EXC BAD ACCESS 将虚拟内存页标记为可读写 并像平常一样继续执行 这可能吗 我编写的代码导致EXC BAD ACCE
ios
automaticrefcounting
signals
virtualmemory
mach
linux下可以分配大容量的虚拟内存吗?
对于某些目的来说 分配大量的虚拟空间并仅在访问的页面中进行分页会很有效 分配大量内存是瞬时的 并且不会实际抓取页面 char p new char 1024 1024 1024 256 好吧 上面指出的是错误的 因为它是一个 32 位数字
c
Linux
memorymanagement
virtualmemory
虚拟内存空间
虚拟内存空间大小取决于什么 它取决于 RAM 架构还是其他什么 基本上它取决于体系结构 32 位 64 位等等 这是一个very对事物的简单解释 但所谓的 体系结构 限制了虚拟地址空间的大小 例如 32 位架构将能够寻址 2 31 内存地址
operatingsystem
virtualmemory
在没有虚拟内存支持的系统中进行链接和分页
首先 虚拟内存是系统的硬件特性 还是仅由操作系统实现 在链接时重定位期间 链接器将运行时地址分配给生成的可执行文件中的每个节和每个符号 这些运行时地址是否对应于虚拟地址 如果生成可执行文件的系统不使用虚拟内存怎么办 接下来 如果不使用虚拟内
分配最大缓冲区而不使用交换
在Linux下的C C 中 我需要分配一个大的 几GB 内存块 以便存储来自连接到以太网端口的传感器的实时数据以及约110MB s的流数据 我想分配尽可能多的内存 以最大化我可以存储的数据序列的长度 但是 我还需要确保不会发生磁盘交换 因为
c
Linux
virtualmemory
Java程序拥有16GB虚拟内存并且不断增长:这是一个问题吗?
在 Mac OSX 5 8 上 我有一个 Java 程序 它以 100 CPU 运行很长一段时间 几天或更长时间 它是一个分析并发程序的模型检查器 所以这或多或少是预期的 然而 它的虚拟内存大小 如 OSX 的活动监视器中所示 在一天左右后
Java
performance
virtualmemory
可执行目标文件和虚拟内存
我是 Linux 和虚拟内存的初学者 仍在努力理解虚拟内存和可执行对象文件之间的关系 假设我们有一个可执行目标文件a out存储在硬盘驱动器磁盘上 假设最初 a out 有一个 data具有值为 2018 的全局变量的部分 当加载程序运行时
Linux
Linker
operatingsystem
executable
virtualmemory
当我们运行可执行文件时,所有部分都会立即加载到内存中吗?
因此 可执行文件包含不同的部分和标头 At the ELF Header我们可以看到一些关于它们的元数据 例如不同标头的大小 起始点等 可执行文件的不同部分是否会同时加载到内存中 If yes 怎样 几时它被定义了 我们可以在哪里看到相关信
Linux
Assembly
process
ELF
virtualmemory
为什么在 x86-64 中虚拟地址比物理地址短 4 位(48 位与 52 位长)?
在 低级编程 英特尔 64 架构上的 C 汇编和程序执行 一书中 我读到 每个虚拟 64 位地址 例如 我们在程序中使用的地址 由几个字段组成 地址本身实际上只有 48 位 宽的 它被符号扩展为 64 位规范地址 它是 特点是其左17位相等
Assembly
x8664
memoryaddress
virtualmemory
MMU
NUMA:如何检查 C++ 数组分配在 RAM 的哪一部分?
我有一台带有 2 个 CPU 和 64GB RAM 的服务器 每个 CPU 32GB 我知道每个 CPU 都有自己的 RAM 部分 我们称它们为 RAM1 和 RAM2 我想让我的程序知道它在哪个 RAM RAM1 或 RAM2 上分配数据
c
Multithreading
virtualmemory
NUMA
对于程序的不同运行,全局变量的地址是否相同?
考虑以下代码片段 int i 10 int main cout lt lt i 一旦为程序生成了 exe 程序不同运行的输出是否相同 假设操作系统支持虚拟内存 编辑 这个问题特定于存储在数据段中的全局变量 由于这是第一个全局变量 因此地址应
c
virtualmemory
Linux,第一次读取或第一次写入时会清零页面页错误吗?
我的问题是 Linux 特定的 需要了解内核 虚拟内存 mmap 页面错误 我有一个带有大型静态数组的 C 程序 它将进入 bss 部分 内存 初始化为零 当程序启动时 这块内存并没有物理分配 只有虚拟内存 虚拟内存的每一页都映射到特殊的零
Linux
Linuxkernel
virtualmemory
pagefault
32 位和 64 位版本的 Windows 操作系统的页面大小是多少?
我想知道 Windows 操作系统 32 位和 64 位版本中虚拟内存的默认页面大小 例如 页面大小Linux x86 是4 Kb call GetSystemInfo或更好GetNativeSystemInfo并寻找dw页面大小成员SYS
Windows
memorymanagement
virtualmemory
«
1
2
3
»