Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Memory management 为什么可以';32位二进制进程是否超过4GB限制?_Memory Management_Out Of Memory_32 Bit - Fatal编程技术网

Memory management 为什么可以';32位二进制进程是否超过4GB限制?

Memory management 为什么可以';32位二进制进程是否超过4GB限制?,memory-management,out-of-memory,32-bit,Memory Management,Out Of Memory,32 Bit,在Linux上尝试将更多2-3GB的数据加载到内存时,遇到了内存不足(OOM)问题,包括32位二进制文件和32位Perl 总是想知道为什么一个具有按需分页功能的操作系统不能将驻留页面交换到磁盘并加载更多页面以超过4GB限制 可能会经常发生页面错误(影响性能),但永远不会出现OOM问题?这是因为32位处理器在访问内存时只能寻址32位,3 GB(3×10243字节)是此操作的限制。32位定义了逻辑地址空间的大小。您的程序在任何时候最多可以访问2**32字节的内存 如果进程可用的物理内存少于2**32

在Linux上尝试将更多
2-3GB的数据加载到内存时,遇到了
内存不足(OOM)
问题,包括
32位二进制文件和32位Perl

总是想知道为什么一个具有按需分页功能的
操作系统不能将驻留页面交换到磁盘并加载更多页面以超过4GB限制


可能会经常发生页面错误(影响性能),但永远不会出现OOM问题?

这是因为32位处理器在访问内存时只能寻址32位,3 GB(3×10243字节)是此操作的限制。

32位定义了逻辑地址空间的大小。您的程序在任何时候最多可以访问2**32字节的内存

如果进程可用的物理内存少于2**32字节,即操作系统将页面交换到磁盘


在过去,物理内存多于地址空间(例如,16位地址空间和1MB内存)处理器通常支持以您建议的方式交换地址空间的段。

我不确定这应该是堆栈溢出。它们可能只是程序员必须手动进行窗口设置。分页和寻址是不同的。32位数字有2^32个可能值。如果用作某种内存或存储器的地址,则意味着您可以使用32位指针唯一标识2^32字节。如果一个程序无法识别超过2^32字节(4GB)的内存,无论支持它们的是什么(磁盘、RAM、缓存等),它都无法对它们进行操作。当然,但不能通过将旧页移出磁盘来操作操作系统页面错误并释放一些可寻址空间?@Shashi页面错误是一个完全不同的主题。这里讨论的问题是,不能使用32位寻址超过4GB的内存。是的,您可以设置页面错误,但您会为这些额外的内存位置提供什么地址?就像我要求你用一个从0到9的数字唯一地标记二十个信封一样。