页面置换算法(局部、全局)-局部性很关键

页面置换算法(局部、全局)-局部性很关键_第1张图片

功能与目标:

页面置换算法(局部、全局)-局部性很关键_第2张图片

页面锁定!

更少的缺页中断,更优的性能

页面置换算法(局部、全局)-局部性很关键_第3张图片

最优页面置换算法:理想情况,作为评价标准

页面置换算法(局部、全局)-局部性很关键_第4张图片

最长占用时间:

页面置换算法(局部、全局)-局部性很关键_第5张图片

页面置换算法(局部、全局)-局部性很关键_第6张图片

页面置换算法(局部、全局)-局部性很关键_第7张图片

维护了一个链表,要注意

最久未被使用:

页面置换算法(局部、全局)-局部性很关键_第8张图片

程序的局部性原理

页面置换算法(局部、全局)-局部性很关键_第9张图片

每次访问,都需要查找栈,比较费时的

找一个方法,效果又好,效率又高

页面置换算法(局部、全局)-局部性很关键_第10张图片

SX-BYTE,操作系统定期清零该位

页面置换算法(局部、全局)-局部性很关键_第11张图片

页面置换算法(局部、全局)-局部性很关键_第12张图片

二次机会法:

访问:读操作还是写操作,若是读操作的话,换页直接释放,写操作的话,需要实际交换

页面置换算法(局部、全局)-局部性很关键_第13张图片

页面置换算法(局部、全局)-局部性很关键_第14张图片

减少硬盘读取的消耗!

页面置换算法(局部、全局)-局部性很关键_第15张图片

有什么数据结构的方式来减小消耗?计数器?硬件?

页面置换算法(局部、全局)-局部性很关键_第16张图片

页面置换算法(局部、全局)-局部性很关键_第17张图片

页面置换算法(局部、全局)-局部性很关键_第18张图片

有动态信息没有表达出来

页面置换算法(局部、全局)-局部性很关键_第19张图片

页面置换算法(局部、全局)-局部性很关键_第20张图片

面临具有局部性的访问序列时,LRU和clock才会发挥效果

页面置换算法(局部、全局)-局部性很关键_第21张图片

页面置换算法有效且存在的前提是局部性,若程序不具备局部性,那么页面置换算法则不具有任何意义

经典:最长占有,最久未被使用(LRU),时钟页面置换

 

全局页置换算法:

在局部算法里面并没有考虑各个进程之间的访存差异,全局置换算法为进程分配可变数目的物理页面。常驻集是指进程在运行时,当前时刻实际驻留在内存当中的页面集合。而工作集是进程在运行过程所固有的特征。置换算法的工作就是在进程的工作集的前提下,确定常驻集的大小以及相应页面。

页面置换算法(局部、全局)-局部性很关键_第22张图片

页面置换算法(局部、全局)-局部性很关键_第23张图片

页面置换算法(局部、全局)-局部性很关键_第24张图片

页面置换算法(局部、全局)-局部性很关键_第25张图片

页面置换算法(局部、全局)-局部性很关键_第26张图片

理想情况下:期望工作集与常驻集相等

在整个系统的层面来看,整个系统的缺页率是比较低的?

维护一个范围内的页情况,超出页范围的,不再记录,如果此时需要,且页范围内不存在的页种类,则需要置换上来(跟谁置换?)

页面置换算法(局部、全局)-局部性很关键_第27张图片

页面置换算法(局部、全局)-局部性很关键_第28张图片

工作集是逻辑上的,常驻集是实际情况的,单位是进程

操作系统balance

基于工作集的置换算法

页面置换算法(局部、全局)-局部性很关键_第29张图片

超出工作集的,就要给换出去!

基于缺页率的置换算法

页面置换算法(局部、全局)-局部性很关键_第30张图片

工作集实际是虚拟的内存空间么?针对于单个进程来说?

页面置换算法(局部、全局)-局部性很关键_第31张图片

页面置换算法(局部、全局)-局部性很关键_第32张图片

页面置换算法(局部、全局)-局部性很关键_第33张图片

belady现象是物理内存增多,但缺页中断也增多!

抖动是进程发生频繁的缺页中断!

页面置换算法(局部、全局)-局部性很关键_第34张图片

CPU时间,用来处理缺页中断?

页面置换算法(局部、全局)-局部性很关键_第35张图片

抖动问题:内存不够,需要大量的页置换

平均页缺失时间=页缺失服务时间?????

 

置换有两种操作:1.只读页,直接释放就可以 2.只写页,需要置换回硬盘

你可能感兴趣的:(页面置换算法(局部、全局)-局部性很关键)