【发布时间】:2012-11-16 12:50:06
【问题描述】:
内存分为两部分
1) 为操作系统系统进程保留的一些内存部分
2) 用户进程的剩余内存。
32 位操作系统为操作系统进程分配 4GB 内存。像这样为 64 位操作系统分配了多少内存空间(内存空间仅用于系统进程,即操作系统进程)。面试时问过这个问题
【问题讨论】:
标签: memory-management operating-system
内存分为两部分
1) 为操作系统系统进程保留的一些内存部分
2) 用户进程的剩余内存。
32 位操作系统为操作系统进程分配 4GB 内存。像这样为 64 位操作系统分配了多少内存空间(内存空间仅用于系统进程,即操作系统进程)。面试时问过这个问题
【问题讨论】:
标签: memory-management operating-system
我不清楚这个问题对 Windows 有多具体。从一般的角度来看 232 给你约 40 亿,即 4GB。所以 264 会给你 16 exabytes (!)
请参阅here 了解更多信息。
一个 64 位寄存器可以存储 264 个(超过 18 quintillion)不同的 价值观。因此,具有 64 位内存地址的处理器可以直接 访问 264 字节(=16 exbibytes)的字节寻址内存。
请注意附带条件。外部总线。仅仅因为 CPU 寄存器是 64 位宽,它并不必然暗示外部总线将具有相同的宽度。因此,CPU 和机器架构将共同决定实际限制。请注意标记为Limitations of Practical Processors 的部分。
【讨论】:
毕竟不是那么真实。
Windows 提供的不仅仅是 1 个内核或变体。
例如市面上有内核支持 PAE 的 Windows 操作系统,这足以证明你的说法不正确。
Windows 的 32 位桌面版本也无法提供 4Gb 的可寻址内存,而只能提供 ~3.5 。
编辑 详情请参考this link。
【讨论】:
最大内存地址空间取决于您拥有的操作系统版本。
见Physical Memory Limits: Windows 7
在Pushing the Limits of Windows: Physical Memory 和Pushing the Limits of Windows: Processes and Threads 上阅读更多内容
【讨论】: