重点
- demand paging:请求式分页
- 页替换算法
- allocation of page frames
- Thrashing
背景
虚存用户使用的逻辑内存和物理内存之间的媒介,它的一部分在内存,一部分在交换区
- 可以使得逻辑地址大于实际地址
- 可以使多个进程共享地址空间
- 通过共享进程地址空间,可以使得进程创建更高效(COW,懒加载)
虚地址空间
典型的虚地址空间
往往中间的hole的比例是非常大的,所以将虚地址到实际地址做映射是有意义的。hole往往可以映射到磁盘交换区对应的虚存。
另外,两个进程可以将逻辑地址映射到相同的虚存,从而共享内存空间
Demand Paging
宗旨:只在需要(主存缺页)且合理(对页的引用是valid的)时将磁盘页加载到内存
有效位
v:在内存,i:不在内存
如果访问时不在内存,则称为缺页(page fault)
缺页的处理
问题:
- 重启指令时候的情况
Demand Paging的效率
进程创建
虚存使得进程创建有以下机制:
COW
创建进程时,子进程复制父进程的页表。一个进程写页时,才会为它创建一个页的copy,并更新页表。