用最近最少用(LRU)页面调度算法处理缺页中断
1.实验目的
加深对于存储管理的了解,掌握虚拟存储器的实验原理;观察和了解重要的页面置换算法的置换过程.
2.实验原理及相关提示
在分页式虚拟存储系统中,当硬件发出”缺页中断”后,引出操作系统来处理这个中断事件。如果主存中已经没有空闲块,则可用LRU页面调度算法把该作业中最先进入主存的一页调出,存放到磁盘上,然后再把当前要访问的页装入该块。调出和装入后都要修改页表中对应页的标志。
3.实验内容
利用最近最少用置换算法(LRU),将页面依次调入主存,并算出缺页中断次数及缺页中断率。
4.实验步骤
1.分析设计思路:考虑用队列来存储调入主存中的页面号,设置全局变量count来记录缺页中断次数,队列的总长度即为分配的主存的块数,若队列未满则将页面调入,若队列满了,则判断要调入的页面是否已在主存中,若在则记录其下标,将下标后的元素依次往前移,若不在,则将队首元素出队,依次将后面的元素往前移,最后将页面插入在队尾。
2.概要分析:定义队列的结构体,定义数据类型,写出调入主存后的页面展示函数void display(),写出判断队列是否为空即是判断主存中是否有页面存在的判空函数int empty()
3.流程图:
5.程序中使用的数据结构及符号说明。
typedef int datatype; /