操作系统课程设计(LRU算法)完整版--内含代码.doc 立即下载
2024-11-19
约3.8千字
约9页
0
75KB
举报 版权申诉
预览加载中,请您耐心等待几秒...

操作系统课程设计(LRU算法)完整版--内含代码.doc

操作系统课程设计(LRU算法)完整版--内含代码.doc

预览

免费试读已结束,剩余 4 页请下载文档后查看

8 金币

下载文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开



操作系统课程设计
	
LRU页面调度算法



学号:

姓名:

学院:

专业:

班级:
指导老师:

日期:


目录

TOC\o"1-1"\h\uHYPERLINK\l_Toc22329一、实验题目	PAGEREF_Toc223291

HYPERLINK\l_Toc17887二、课程设计的目的	PAGEREF_Toc178871

HYPERLINK\l_Toc27452三、设计内容	PAGEREF_Toc274521

HYPERLINK\l_Toc20390四、设计要求	PAGEREF_Toc203901

HYPERLINK\l_Toc27540五、设计思想	PAGEREF_Toc275401

HYPERLINK\l_Toc10299六、主要数据结构及其说明	PAGEREF_Toc102992

HYPERLINK\l_Toc15649七、硬件支持	PAGEREF_Toc156493

HYPERLINK\l_Toc26955八、源程序文件	PAGEREF_Toc269553

HYPERLINK\l_Toc489九、程序运行结果	PAGEREF_Toc4897

HYPERLINK\l_Toc1960十、实验体会	PAGEREF_Toc19608

PAGE\*MERGEFORMAT7

一实验题目
LRU页面调度算法
二课程设计的目的
操作系统课程设计是计算机专业重要的教学环节,它为学生提供了一个既
动手又动脑,将课本上的理论知识和实际有机的结合一起,独立分析和解
决实际问题的机会。
1.进一步巩固和复习操作系统的基础知识。
2.培养学生结构化程序、模块化程序设计的方法和能力。
3.提高学生调试程序的技巧和软件设计的能力。
4.提高学生分析问题、解决问题以及综合利用C语言进行程序设计的能力。
三设计内容
程序应模拟实现LRU算法思想,对n个页面实现模拟调度。
四设计要求
1.不同的功能使用不同的函数实现(模块化),对每个函数的功能和调用接口要注释清楚。对程序其它部分也进行必要的注释。
2.对系统进行功能模块分析、画出总流程图和各模块流程图。
3.用户界面要求使用方便、简洁明了、美观大方、格式统一。所有功能可以反复使用,最好使用菜单。
4.通过命令行相应选项能直接进入某个相应菜单选项的功能模块。
5.所有程序需调试通过。
五设计思想
最近最久未使用(LRU)页调度算法是选择最近最久未使用的页面予以淘汰。算法赋予每个页面一个访问字段,用来记录一个页面自上次被访问以来所经历的时间,当所要访问的页面在内存块中时,就不淘汰页面,否则,淘汰页面中时间最长的,即淘汰最近最久未使用的页面。













Lru(a[i],b)

Init(b,c)

输入页面号

开始

















输出queue[i]缺页次数和缺页率





是否继续?


y




n
结束




算法流程图

六主要数据结构及其说明
程序执行是稳定的,高效的。在LRU算法中,要找出最近最久未使用的页面的话,就必须设置有关的访问记录项,且每一次访问这些记录项,叶面都必须更新这些记录项。这个记录项在此程序中为:
typedefstructpage
{
intnum;/*记录页面号*/
inttime;/*记录调入内存时间*/
}Page;//页面逻辑结构,结构为方便算法实现设计
如此,显然要花费较大的系统开销(包括时间和空间上的),这也是实际系统中不采用LRU算法的直接原因,但由于其页面置换的优越性,实际系统中常使用LRU的近似算法。
七硬件支持
为了了解一个进程在内存中的各个页面各有多少时间未被进程访问,以及如何快速的知道哪一页是最近最久未使用的页面,须有两类硬件之一的支持:寄存器或栈。
寄存器:为了记录某进程在内存中各页的使用情况,须为每个在内存中的页面配置一个移位寄存器。
栈:可利用一个特殊的栈来保存当前使用的各个页面的页面号。每当进程访问某页面时,便将该页面的页面号从战中移出,将它压入栈顶。因此,栈顶始终是最新被访问页面的编号,而栈底则是最近最久未使用页面的页面号。
八源程序文件
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#defineM3//物理块数
#defineN10//页面数
#defineMyprintf1
printf("\t************************\t\t\n\n");//表格控制
#defineMyprintf2
printf("***************
查看更多
单篇购买
VIP会员(1亿+VIP文档免费下)

扫码即表示接受《下载须知》

操作系统课程设计(LRU算法)完整版--内含代码

文档大小:75KB

限时特价:扫码查看

• 请登录后再进行扫码购买
• 使用微信/支付宝扫码注册及付费下载,详阅 用户协议 隐私政策
• 如已在其他页面进行付款,请刷新当前页面重试
• 付费购买成功后,此文档可永久免费下载
全场最划算
12个月
199.0
¥360.0
限时特惠
3个月
69.9
¥90.0
新人专享
1个月
19.9
¥30.0
24个月
398.0
¥720.0
6个月会员
139.9
¥180.0

6亿VIP文档任选,共次下载特权。

已优惠

微信/支付宝扫码完成支付,可开具发票

VIP尽享专属权益

VIP文档免费下载

赠送VIP文档免费下载次数

阅读免打扰

去除文档详情页间广告

专属身份标识

尊贵的VIP专属身份标识

高级客服

一对一高级客服服务

多端互通

电脑端/手机端权益通用