在一个请求分页系统中,采用最佳页面置换算法时,假如一个作业的页面走向为4、3、2、1、4、3、5、4、3、2、1、5,当分配给该作业的物理块数M分别为3和4时,试计算在访问过程中所发生的缺页次数和缺页率。请给出分析过程。
解析:所谓的最佳(Optimal)页面置换算法就是说 所淘汰的页面将是以后永不使用的页面,或者是再未来很长一段时间内都不再被访问的页面。若产生缺页中断,但是后续都未用到其他页面,则根据最先更新原则,将最晚更新的页面给淘汰。
页面置换:内存物理块不够,需要淘汰页面
缺页中断:要访问的页不在主存
缺页率:发生缺页次数/总共的页面数
物理块数为3时:
4 | 3 | 2 | 1 | 4 | 3 | 5 | 4 | 3 | 2 | 1 | 5 |
---|---|---|---|---|---|---|---|---|---|---|---|
4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 2 | 2 | 2 |
3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 1 | 1 | |
2 | 1 | 1 | 1 | 5 | 5 | 5 | 5 | 5 | 5 | ||
页面置换1 | 页面置换2 | 页面置换3 | 页面置换4 | ||||||||
缺页中断1 | 缺页中断2 | 缺页中断3 | 缺页中断4 | 缺页中断5 | 缺页中断6 | 缺页中断7 |
页面置换1:当进程访问页面1时,将会产生页面置换,4 3 2进行淘汰,往远处(右)观察,页面2最远,则淘汰页面2。
页面置换2:当进程访问页面5时,将会产生页面置换,4 3 1进行淘汰,往远处(右)观察,页面1最远,则淘汰页面1。
页面置换3:当进程访问页面2时,将会产生页面置换,4 3 5进行淘汰,往远处(右)观察,看出5还会用到,但是4和3已经没用了,再往前放(左)观察,4更新的最晚,将4淘汰。
页面置换4:当进程访问页面1时,将会产生页面置换,2 3 5进行淘汰,往远处(右)观察,看出5还会用到,但是2和3已经没用了,再往前放(左)观察,3更新的最晚,将3淘汰。
缺页次数:7
缺页率:7/12
物理块数为4时:
4 | 3 | 2 | 1 | 4 | 3 | 5 | 4 | 3 | 2 | 1 | 5 |
---|---|---|---|---|---|---|---|---|---|---|---|
4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 1 | 1 |
3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | 3 | |
2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | ||
1 | 1 | 1 | 5 | 5 | 5 | 5 | 5 | 5 | |||
页面置换1 | 页面置换2 | ||||||||||
缺页中断1 | 缺页中断2 | 缺页中断3 | 缺页中断4 | 缺页中断5 | 缺页中断6 |
页面置换1:当进程访问页面5时,将会产生页面置换,4 3 2 1进行淘汰,往远处(右)观察,页面1最远,则淘汰页面1。
页面置换2:当进程访问页面1时,将会产生页面置换,4 3 2 5进行淘汰,往远处(右)观察,看出5还会用到,但是4 3 2已经没用了,再往前放(左)观察,4更新的最晚,将4淘汰。
缺页次数:6
缺页率:6/12