一、物理内存和虚拟内存的关系
物理内存:计算机实际的内存大小,也就是计算机安装内存条的大小
虚拟内存:是创建进程时分配的虚拟内存,是一个地址连续的地址空间
分配的虚拟内存:每个进程都认为自己拥有4G的空间,这只是每个进程认为的,但是实际上,在虚拟内存对应的物理内存上,可能只对应的一点点的物理内存,实际用了多少内存,就会对应多少物理内存。
二、进程的虚拟地址空间如何分配?
每个程序被运行起来之后,都会拥有自己独立的虚拟地址空间,虚拟地址空间的大小是由CPU的位数决定的,比如32位硬件平台决定了虚拟地址空间是4GB大小
1G:是内核空间,管理进程,内存等
3G:是用户空间,包括栈空间、堆空间、代码段等
操作系统会提供一种机制,能够将不同进程的虚拟地址空间与不同内存的物理地址映射起来,这样所有进程都不能直接访问物理内存,都只能访问自己的虚拟内存空间,提高了安全性
三、为什么引入虚拟内存?
利用虚拟内存技术让每个进程都有4GB 互不干涉的虚拟地址空间。
(1)避免用户直接访问物理内存地址,防止一些破坏性操作,保护操作系统
(2)每个进程都被分配了4GB的虚拟内存,用户程序可使用比实际物理内存更大的地址空间
(3)在程序需要分配连续空间的时候,只需要在虚拟内存分配连续空间,而