我对这些问题感到非常困惑。
在 32 位处理器上,每个进程都有 4 GB 的虚拟内存。但是,如果每个进程都有 4gb 的空间,那么如果有 100 个进程正在运行,这将是每一个巨大的空间——这大于交换区域。有人可以解释一下吗?我很迷茫。
操作系统如何为进程分配内存?假设一个进程有
a = malloc(2)
。谁将把这块内存分配给进程?操作系统会将这些 2 字节内存分配给进程吗?
(我们访问 a[2] 它会产生分割错误)。进程的不同部分(代码、数据、堆栈、堆)在主内存或辅助内存中的位置。
请给我一些好的链接,以便我也可以理解虚拟内存及其整个机制,因为我找到的链接并没有完全解释虚拟内存。