本章目标:
1、介绍虚拟内存系统的优点;
2、掌握按需调页概念、页替换算法和帧分配算法;
9.1 背景
虚拟内存(virtual memory): 将用户逻辑内存与物理内存分开,使得程序不再受现有的物理内存空间限制,为用户提供一个巨大的虚拟地址空间;
虚拟内存允许文件和内存通过共享页而被两个或多个进程所共享,这些共享页按只读方式链接到每个进程的空间; 类似地,虚拟内存允许一个进程创建内存区域,这个共享内存可以用来实现进程间通信;
9.2 按需调页
按需调页:执行程序时,需要把代码从磁盘载入内存,一种做法是将整个程序载入到内存,而不考虑这些代码是否全部会被使用; 另一种做法是在需要时调入相应的页,这种技术被称为按需调页;
对于这种方案,需要区别哪些页在内存里,哪些页在磁盘上,可以通过有效-无效位来实现这一目的:当该位设置为有效时,表示相关页在内存中并且有效, 当该位设为无效时,表示相关页无效或者有效但在磁盘上;
当进程访问标记位为无效的页,即尚未调入内存的页时,会产生页错误陷阱,陷入操作系统,由操作系统进行合法的地址访问