6 内存管理
内存抽象:
如果看过设计模式的人可能会知道,设计模式中提到最多的概念之一就是抽象,纯虚的基类作为接口就是对各种派生类对象的抽象。调用接口的用户,并不知道内部如何实现,因此内部实现的方法可能也有多种。地址空间也可以这样理解,32位机上,创建进程时操作系统为进程分配4GB的独立地址空间,用户可以使用这4GB的独立地址空间。但是,反过来一想,给每个进程都分配4GB地址空间,对于8GB内存的计算机而言岂不也就能同时运行两个进程。对于现代计算机而言,这显然是不可能的。所以实际上,用户能使用的4GB地址空间并不是对应物理内存的4GB,具体怎么实现被封装了,所以叫内存抽象。
现代操作系统能够同时运行多个程序,程序被运行时,需要占用内存的一块空间,如果同时运行的程序太多,物理内存装不下了怎么办?因此出现了两种技术,交换技术和虚拟内存。
6.1 交换技术
交换技术:就是指当内存满了以后,就将一个程序从内存换出,将另一个程序放入内存,换出的内存数据保存在硬盘上,当该程序再次被换入的时候,就将硬盘上的数据拷贝到内存。
6.2 虚拟内存
**虚拟内存:**操作系统为了管理内存,给每个进程都分配独立的地址空间,对32位的系统而言,这个空间的大小是4GB。