所以我的理解是每个进程都有自己的虚拟内存空间,范围从0x0到0xFF .... F.这些虚拟地址对应于物理内存(RAM)中的地址.为什么这种抽象级别有用?为什么不直接使用直接地址?
我理解为什么分页是有益的,但不是虚拟内存.
我对这些问题非常困惑.
在32位处理器上,每个进程都有4 GB的虚拟内存.但是,如果evey进程有4GB的空间,那么如果100个进程正在运行,那么它将是每个巨大的数量 - 这大于交换区域.有人可以解释一下; 我很迷茫.
操作系统如何将内存分配给进程?假设一个过程有a = malloc(2).谁将这个记忆分配给这个过程?操作系统是否会为进程提供这2个字节的内存.
(我们访问a [2]它会产生分割错误).
进程的不同部分(主代码或数据,堆栈,堆)在主存储器或辅助存储器中的位置.
请给我一些很好的链接,这样我也可以理解虚拟内存及其整个机制,因为我发现的链接并不能完全解释虚拟内存.