操作系统中可以使用LRU(least recently used)内存淘汰旧数据的策略,如果内存需要加载新数据但空间又不足,则会按照最近访问时间进行排序,并将最老的数据淘汰,假设现在内存空间大小为5,原本内存中没有数据,对内存中数据的访问顺序如下: 1,2,5,3,4,6,1,4,3,6,7,8,3,9
求发生的缺页次数
——页面置换过程
1 | 2 | 5 | 3 | 4 | 6 | 1 | 4 | 3 | 6 | 7 | 8 | 3 | 9 | 序列 |
1 | 1 | 1 | 1 | 1 | 2 | 5 | 5 | 5 | 5 | 1 | 4 | 4 | 6 | |
2 | 2 | 2 | 2 | 5 | 3 | 3 | 6 | 1 | 4 | 3 | 6 | 7 | ||
5 | 5 | 5 | 3 | 4 | 6 | 1 | 4 | 3 | 6 | 7 | 8 | |||
3 | 3 | 4 | 6 | 1 | 4 | 3 | 6 | 7 | 8 | 3 | ||||
4 | 6 | 1 | 4 | 3 | 6 | 7 | 8 | 3 | 9 | |||||
缺页 | 缺页 | 缺页 | 缺页 | 缺页 | 缺页 | 缺页 | 命中 | 命中 | 命中 | 缺页 | 缺页 | 命中 | 缺页 |
一开始,内存无数据,前5次请求都发生缺页请求,而后每次访问新页面,判断内存是否存在,
- 若存在则命中,同时把该页面置换优先级放到最低(即放到最新的位置)
- 若不存在,则将页面置换优先级最高的换出,同时新页面放到置换优先级最低处