计算机操作系统 - 内存管理
• Read 摘自 github CS-Notes - 计算机操作系统 一、虚拟内存 将物理内存抽象为地址空间,每个进程都有各自的地址空间,地址空间被分割成多个块, 每一块称为一页 。这些页被 映射到物理内存 ,但不需要映射到连续的物理内存,也不需要所有页都必须在物理内存中。目的是让物理内存扩充成更大的逻辑内存,从而让程序获得更多的可用内存。 1、分页系统地址映射 内存管理单元负责地址空间和物理内存的转换,其中页表存储着 页(程序地址空间) 和 页框(物理内存空间) 的映射表。一个虚拟地址分为 页面号 (16位地址是前4位)和 存储偏移量 。页面号的十进制数对应页表的索引,一个页表项最后一位表示是否存在于内存,前几位即为页框的前几位。 2、页面置换算法 在程序运行过程中,如果要访问的页面不在内存中,就发生缺页中断从而 将该页调入内存 中。此时如果内存已无空闲空间,系统必须从内存中 调出一个页面到磁盘对换区 中来腾出空间。 页面置换算法的主要目的就是 使页面置换频率最低 。 大专栏 计算机操作系统 - 内存管理 > 最佳 (OPT):所选择的被换出的页面将是最长时间内不再被访问(理论上不知道将来使用页面的情况) 最近最久未使用( LRU):通过维护链表保证表尾的页面是最近最久未访问的,代价很高 最近未使用 :每个页面有 R 和 M 两个状态位 先进先出