虚拟内存
why、what、how
为什么需要虚拟内存?
早期计算机在运行时,直接把整个程序加载入内存。这会产生一些问题:
- 如果程序很大或很多时,内存很快会被耗尽。
- 进程间不独立,一个进程可能修改另一个进程数据,导致出错。
虚拟内存是什么?
于是就有了虚拟内存,它是一种内存管理技术,能为每个进程提供一个独有的、连续的虚拟地址空间。并通过内存交换技术,把不常用的内存换出到硬盘,需要时再换入内存,从而让有限的内存能运行更大的程序。
虚拟内存怎么用?
当有进程被创建时,操作系统会为其分配虚拟内存,并通过内存管理单元(MMU)的映射关
系,将虚拟地址转化为物理地址。这主要有分段和分页两种方式。
分段
分段根据程序的逻辑角度,分成了栈、堆、数据、代码等不同属性的段。