13.1 早期系统

  • 操作系统曾经是一组函数(实际上是一个库),在内存中,有一个正在运行的程序,在物理内存中,并使用剩余的内存。

image.png

13.2 多道程序和时分共享

一种实现时分共享的方案:让一个进程单独占用全部内存运行一小段时间然后停止,并把他的所有状态信息保存在磁盘上(包括所有的物理内存),加载其他进程的状态信息,再运行一段时间。

然而,这种方案太慢了,特别是当内存增长的时候。将全部内存信息保存到磁盘非常慢!

因此,在进程切换的时候,仍然将进程信息放在内存中

image.png

13.3 地址空间

操作系统提供一个物理内存的抽象:地址空间,这是运行的程序看到的系统中的内存。

  • 进程的地址空间包含运行的程序的所有内存状态,如代码。

image.png

操作系统在虚拟化内存,因为运行的程序认为它被加载到特定地址的内存中,并且具有非常大的地址空间。

13.4 目标

  • 程序不应该感知到内存被虚拟化的事实,相反,程序的行为就好像它拥有自己的物理内存。操作系统(和硬件)完成了让不同工作复用内存的工作。