一、程序执行的局部性:
时间局部性(temporal locality)
被引用过一次的存储器位置很可能在不远的将来再被多次引用。
空间局部性(spatial locality)
如果一个存储器位置被引用了一次,那么程序很可能在不远的将来引用附近的一个存储器位置。步长越小,空间局部性越好
二、交换技术与虚存使用的调入调出技术有何相同和不同之处
1、主要相同点是都要在内存与外存之间交换信息;
2、主要区别在于交换技术换出换进一般是整个进程(proc结构和共享正文段除外),因此一个进程的大小受物理存储器的限制;
3、而虚存中使用的调入调出技术在内存与外存之间来回传递的是存储页或存储段,而不是整个进程,从而使得进程映射具有了更大的灵活性,且允许进程的大小比可用的物理存储空间大的多 。
三、虚拟存储器的定义
所谓“虚拟存储器”,是指具有请求调入功能和置换功能,能从逻辑上对内存容量加以扩充的一种存储器系统
四、作业部分装入的情况下为进程分配内存,涉及的三个问题
1、最小物理块数的确定
2、物理块的分配策略
固定分配、局部置换(物理块数目确定,缺页时从该进程的页面中调换)
可变分配、全局置换(物理块数目不定,空闲空间不足时,可与其他任何进程页面置换)
可变分配、局部置换(物理块数目不定,缺页时,只允许换出该进程在内存的页面,根据缺页率增减进程的物理块数)
3、物理块的分配算法
平均分配算法
按比例分配算法
考虑优先权的分配算法(一部分按比例分配给各进程;另一部分根据各进程优先权,适当地为其增加份额,分配给各进程。)
五、页面置换算法
缺页率:页面调入次数(缺页次数)/总的页面使用次数
1、最佳(Optimal)置换算法
换出以后永不再用的,或在最长(未来)时间内不再被访问的页面。由于无法预知而无法实现。
2、先进先出置换算法(FIFO)
先进入的先淘汰,即选择内存中驻留时间最久的页面予以淘汰。
只看驻留时间,不看是否再次调用。
Belady现象:出现分配的页面数增多,缺页率反而提高的异常现象。
3、最近最久未使用(LRU)置换算法
LRU置换算法选择最近最久未使用(least recently used)的页面予以淘汰。
4、轮转算法(clock)
(1)每个页设一个使用标志位(use bit),首次加载入内存时或该页被访问则将标志位置为1。
(2)设置一个指针,从当前指针位置开始按地址先后检查各页,寻找use bit=0的页面作为被置换页。
(3)若指针经过的页use bit=1,修改use bit=0(暂不凋出,给被用过的页面驻留的机会 ),指针继续向下。到所有页面末尾后再返回队首检查。
5、其他置换算法
(1)最少使用 (LFU, Least Frequently Used)
每当页面被访问时,该页面的访问计数器加1;缺页中断时,淘汰计数值最小的页面,并将所有计数清零;
(2)页面缓冲算法PBA
仍用FIFO算法选择被置换页,但并不将其马上换入外存。
系统将页面放入两个链表之一:如果页面未被修改,就将其归入到空闲页面链表的末尾;否则将其归入到已修改页面链表。
需要调入新的物理页面时,将新页面内容读入到空闲页面链表的第一项所指的页面,然后将第一项删除(从空闲链表摘下)。
空闲页面和已修改页面,仍停留在内存中一段时间,如果这些页面被再次访问,只需较小开销,而被访问的页面可以返还作为进程的内存页。
当已修改页面达到一定数目后,再将它们一起调出到外存,然后将它们归入空闲页面链表,这样能大大减少I/O操作的次数。
五、抖动
每个进程分配得到的物理块太少,在某个临界点上,会出现刚被淘汰的页很快又需重新调入;而调入不久又被淘汰出去;出现频繁缺页。大部分处理器时间都用在来回的页面调度上,使缺页率急剧增加,内存有效存取时间加长,系统吞吐量骤减。
原因:页面淘汰算法不合理;分配给进程的物理页面数(驻留集)太少。
策略:局部置换策略;为缺页率高的增加有限物理块;选择暂停一些进程。
工作集模型的原理:
(1)操作系统跟踪每个进程的工作集,并为进程分配大于其工作集的物理块。
(2)如果还有空闲物理块,则可以再调一个进程到内存以增加多道程序数。
(3)如果所有工作集之和增加以至于超过了可用物理块的总数,那么操作系统会暂停。
(4)一个进程,将其页面调出并且将其物理块分配给其他进程,防止出现抖动现象。
六、请求分段存储管理方式
1、请求分段中的硬件支持
段表机制、缺段中断机构、地址变换机构