7 memory operating-systems 64-bit 32-bit ubuntu
不知道这是否是问这个问题的正确地方。
我一直在读 32 位操作系统(如我现在正在运行的 Ubuntu)不能处理超过 3.2gb 或 3.3gb 的 RAM 内存。
我记得在我的旧计算机体系结构课程中,内存限制是 2^32 个“指针”(不记得正确的词)。我的意思是,内存被表示为一个数组,CPU 可以直接访问它,但要达到它的限制。如果 CPU 是 32 位,那么它可以寻址 2^32 个字,如果它是 64 位 2^64,等等。
所以,如果我之前说的是对的,那么我的操作系统应该能够解决 2^32 = 4294967296 = 4Gb。
我在想,可能会为内核、缓存、缓冲或交换的特定用途保留某种空间。但是没有正确答案。
你能给我一个提示吗?
小智 10
Windows 使用一些用于寻址内存的硬件地址,用于其他硬件(如 USB、SATA、磁盘控制器等)。因此,其中一些硬件地址不能用于您的内存。因此是极限。
据我所知,Unix/Linux CAN 地址比 Windows 的 3.2GB 限制多一点。这是因为 Linux 使用不同的寻址方案。
还有一个称为 PAE(物理地址扩展)的功能,它使 32 位操作系统使用超过 4GB。
这与 BIOS 必须为基本进程保留的内存有关,例如将数据传输到设备和视频内存。大约 3.2GB 以上的内存(它因系统而异,我见过 3.6GB 和 3.1GB)在需要 PAE 访问它的 4GB 边界上被重新映射。不同的系统以不同的方式处理这种情况。一些系统不会打扰访问它,只为进程提供 3.2 GB 的 RAM。其他人只是无缝地使用速度较慢的 PAE 来处理流程。
| 归档时间: |
|
| 查看次数: |
838 次 |
| 最近记录: |