分页和分段的特点
局部性原理
局部性原理描述了一个进程中程序和数据引用的集簇倾向。同时,还可以对不远的将来可能会访问的块进行猜测,从而避免系统抖动。
分页
页表项
P:
存在位,表示所对应的页当前是否在内存中。
M:
修改位,表示相应页的内容从上一次装入内存中到现在是否已经改变。
页框号:
表示主存中用来排序的号码
转换检测缓存区(TLB)
转换检测缓存区(TLB)是一个包含最近经常被使用过的页表项的高速缓冲存储器。它的目的是为了减少从磁盘中恢复一个页表项所需的时间。
分段
分段允许程序员把内存看出由多个地址空间或段组成,段的大小是不相等的,并且是动态的。
段表项
段页式
在段页式的系统中,用户的地址空间被程序员划分成许多段。每个段依次划分成许多固定大小的页,页的长度等于内存中的页框大小。
与虚拟内存有关的操作系统策略
读取策略
请求分页:
只有当访问到某页中的一个单元时才将该页取入内存。
预先分页:
读取的页并不是缺页中断请求的页。
放置策略
决定一个进程块驻留在实存中的什么地方。
置换策略
基本算法:最佳(OPT)、最近最少使用(LRU)、先进先出(FIFO)、时钟。
页缓冲
为了提高性能,被置换出的页不是被丢弃,而是被分配到以下两个表之一:如果未被修改,则分配到空闲页表,如果修改了,则分配到修改页表。
另外一个功能:被修改的页以簇方式写回,而不是一次只写一个,这就大大减少了I/O操作的数目,从而减少了磁盘访问的时间。
驻留集管理
问:为什么不可能把全局替换策略和固定分配策略组合起来?
答:固定分配策略要求分配给一个进程的帧的数目是确定的,当一个进程中取入一个新的页时,这个进程驻留页集中的一页必须被替换出来(保持分配的帧的数目不变),这是一种局部替换策略。
问:驻留集和工作集有什么区别?
一个进程的驻留集是指当前在主存中的这个进程的页的个数。一个进程的工作集是指这个进程最近被使用过的页的个数。
清除策略
请求式清除:只有当一页被选择用于置换时才被写回辅存。
预约式清除:将这些被修改的多个页在需要用到它们所占据的页框之前成批的写回辅存。