操作系统中内存管理的页面置换算法
2013-10-14 18:56
666 查看
转自:/article/2316782.html
转载自:http://yinzhezq.blog.163.com/blog/static/1648628902010112961039187/
考虑下述页面走向:
1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6
当内存块数量分别为3时,试问FIFO、LRU、OPT这三种置换算法的缺页次数各是多少?
答:缺页定义为所有内存块最初都是空的,所以第一次用到的页面都产生一次缺页。
当内存块数量为3时:
发生缺页中断的次数为16。
在FIFO算法中,先进入内存的页面被先换出。当页6要调入时,内存的状态为4、1、5,考查页6之前调入的页面,分别为5、1、2、4,可见4为最先进入内存的,本次应换出,然后把页6调入内存。
发生缺页中断的次数为15。
在LRU算法中,最近最少使用的页面被先换出。当页6要调入时,内存的状态为5、2、1,考查页6之前调入的页面,分别为5、1、2,可见2为最近一段时间内使用最少的,本次应换出,然后把页6调入内存。
发生缺页中断的次数为11。
在OPT算法中,在最远的将来才被访问的页面被先换出。当页6要调入时,内存的状态为1、2、5,考查页6后面要调入的页面,分别为2、1、2、…,可见5为最近一段时间内使用最少的,本次应换出,然后把页6调入内存。
OPT算法因为要知道后面请求的页框,因此我觉得这个算法有个小小的bug,如果在某个请求中,若在该请求的页框之后的页框序列中至少存在一个和当前内存块中不匹配的页框,则按照内存块的顺序(从上往下)替换没有出现的页框。比如上面那个OPT例子。对于最后一个页框请求,因为6未命中,且6之后没有请求的序列,因此应该替换3,所以替换后的序列为6
, 2 ,1 当然,这只是针对做题而言。
转载自:http://yinzhezq.blog.163.com/blog/static/1648628902010112961039187/
考虑下述页面走向:
1,2,3,4,2,1,5,6,2,1,2,3,7,6,3,2,1,2,3,6
当内存块数量分别为3时,试问FIFO、LRU、OPT这三种置换算法的缺页次数各是多少?
答:缺页定义为所有内存块最初都是空的,所以第一次用到的页面都产生一次缺页。
当内存块数量为3时:
发生缺页中断的次数为16。
在FIFO算法中,先进入内存的页面被先换出。当页6要调入时,内存的状态为4、1、5,考查页6之前调入的页面,分别为5、1、2、4,可见4为最先进入内存的,本次应换出,然后把页6调入内存。
发生缺页中断的次数为15。
在LRU算法中,最近最少使用的页面被先换出。当页6要调入时,内存的状态为5、2、1,考查页6之前调入的页面,分别为5、1、2,可见2为最近一段时间内使用最少的,本次应换出,然后把页6调入内存。
发生缺页中断的次数为11。
在OPT算法中,在最远的将来才被访问的页面被先换出。当页6要调入时,内存的状态为1、2、5,考查页6后面要调入的页面,分别为2、1、2、…,可见5为最近一段时间内使用最少的,本次应换出,然后把页6调入内存。
OPT算法因为要知道后面请求的页框,因此我觉得这个算法有个小小的bug,如果在某个请求中,若在该请求的页框之后的页框序列中至少存在一个和当前内存块中不匹配的页框,则按照内存块的顺序(从上往下)替换没有出现的页框。比如上面那个OPT例子。对于最后一个页框请求,因为6未命中,且6之后没有请求的序列,因此应该替换3,所以替换后的序列为6
, 2 ,1 当然,这只是针对做题而言。
相关文章推荐
- 操作系统中内存管理的页面置换算法
- 描述 Windows 操作系统内存管理的方法
- 操作系统中的页面置换算法
- java实现操作系统中的页面置换算法、进程调度算法、磁盘调度算法
- 操作系统--内存管理
- 轻量级操作系统FreeRTOS的内存管理机制(二)
- 轻量级操作系统FreeRTOS的内存管理机制(二)
- 操作系统内存管理机制
- 操作系统内存管理——分区、页式、段式管理
- 操作系统内存管理之 内部碎片vs外部碎片
- 操作系统内存管理——分区、页式、段式管理
- 性能优化之操作系统内存管理
- 操作系统内存管理
- 操作系统内存管理——分区、页式、段式管理
- 操作系统页面置换算法命中率比较
- 操作系统之分段式内存管理1
- 操作系统:基于页面置换算法的缓存原理详解(上)
- 操作系统对堆棧内存管理的不同看出内存管理的本质
- 通过Linux理解操作系统(五):内存管理(中)
- 操作系统之内存管理(一)(未引入虚拟内存之前部分)