中 南 大 学 计算机体系结构 实验报告 学 院: 信息科学与工程 专 业: 计算机科学与技术 学 号: 0902030925 姓 名: 刘 敏 时 间: 2006年 4月 10日 一、实验名称 使用LRU 方法更新Cache 二、实验目的 了解和掌握寄存器分配和内存分配的有关技术 三、实验内容 结合数据结构的相关知识,使用LRU 的策略,对一组访问序列进行内部的Cache 更新
四、问题描述与分析 最近最久未使用(LRU)置换算法,是根据页面调入内存后的使用情况进行决策的
由于无法预测各页面将来的使用情况,只能利用“最近的过去”作为“最近的将来”的近似,因此,LRU 置换算法是选择最近最久未使用的页面予以淘汰
该算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间 t,,当须淘汰一个页面时,选择现有页面中其 t 值最大的,即最近最久未使用的页面予以淘汰
五、函数说明 typedef struct node{ int id; struct node *next; }page_node; /* 页面逻辑结构,结构为方便算法实现设计*/ int page_id_status[MAX_ID]; /*该数组为状态数组,用于说明作业的某一页是否在内存中*/ int page_id[NUM]={0,1,7,2,3,2,17,1,0,3,0,3,0,3,0,10}; /*作业页号数组*/ page_node *initialize(int total); /*初始化内存单元、缓冲区*/ void LRU(page_node *head); /*LRU算法,用到一个链表,表头为 work_head 指针指向内存中最久未被访问过的页面,表尾为 work_tail 指针指向内存中最近被访问过的页面*/ main(); /*主函数*/ 六、程序流程图 1、page_