内存管理(操作系统)操作系统课程设计

内存管理(操作系统)操作系统课程设计

ID:9512694

大小:710.16 KB

页数:27页

时间:2018-05-02

内存管理(操作系统)操作系统课程设计_第1页
内存管理(操作系统)操作系统课程设计_第2页
内存管理(操作系统)操作系统课程设计_第3页
内存管理(操作系统)操作系统课程设计_第4页
内存管理(操作系统)操作系统课程设计_第5页
资源描述:

《内存管理(操作系统)操作系统课程设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、附件2:封面(打印时清除本行内容。只许填空,不许变动结构)《操作系统》课程设计说明书设计题目:存储管理专业:计算机科学与技术指导教师:班级:学号:姓名:同组人:计算机科学与工程学院2015年1月9日前言本课程设计是编制页面置换算法FIFO、LRU、LFU、NUR和OPT的模拟程序,并模拟其在内存的分配过程。同时根据页面走向,分别采用FIFO、LRU、LFU、NUR和OPT算法进行页面置换,统计命中率;同时系统可以随意设置当前分配给作业的物理块数。系统运行时,任意输入一个页面访问序列,可以设定不同的页面置换算法和物理块数,输出其页面淘汰的情

2、况,计算其缺页次数和缺页率。系统结束后,比较同一个页面访问序列,可以得出在不同的页面置换算法和物理块数的情况下,其产生的缺页次数和缺页率。使用FIFO算法,由于测试数据相同的页面比较少,所以采用FIFO算法时,需要置换的页面多,比较繁琐,没有优化效果,所以FIFO算法性能不好。使用LRU的算法,此组数据显示LRU的算法使用比较繁琐,总的来说,NUR、LFU、LRU算法介于FIFO和OPT之间。通过系统模拟得出,OPT算法的性能高,LRU、NUR、LRU算法的性能次之,FIFO的算法性能最差,较少应用;由于OPT算法在实际上难于实现,所以实

3、际应用一般用LRU算法。本程序实现了操作系统中页式虚拟存储管理中缺页中断理想型淘汰算法,该算法在访问串中将来再也不出现的或是在离当前最远的位置上出现的页淘汰掉。这样,淘汰掉该页将不会造成因需要访问该页又立即把它调入的现象。该程序能按要求随机确定内存大小,随机产生页面数,进程数,每个进程的页数,给进程分配的页数等,然后运用理想型淘汰算法对每个进程进行计算缺页数,缺页率,被淘汰的序列等功能。 目录一.系统环境11.1硬件环境11.2软件环境1二.设计目的2三.总体设计33.1程序设计组成框图33.2流程图4四.详细设计74.1模块功能说明74

4、.11数据结构74.12函数定义84.13变量定义84.2算法分析8五.调试与测试105.1调试方法105.11使用Vi编译程序105.12运行程序125.2结果分析与讨论135.3测试问题及采取措施13六.源程序14七.心得体会23八.参考文献24一.系统环境1.1硬件环境PC机一台,0.99G内存,2.0GHZ主频1.2软件环境设计和实验将Windows环境下,gcc和虚拟机软件VMWare24二.设计目的存储管理的主要功能之一是合理地分配空间。请求页式管理是一种常用的虚拟存储管理技术。本设计的目的是通过请求页式存储管理中页面置换算法

5、模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。要求:(1)通过随机数产生一个指令序列,共320条指令。指令的地址按下述原则生成:①50%的指令是顺序执行的;②25%的指令是均匀分布在前地址部分;③25%的指令是均匀分布在后地址部分。具体的实施方法是:①在[0,319]的指令地址之间随机选取一起点m;②顺序执行一条指令,即执行地址为m+l的指令;③在前地址[0,m+1]中随机选取一条指令并执行,该指令的地址为m’;④顺序执行一条指令,其地址为m’+1;⑤在后地址[m’+2,319]中随机选取一条指令并执行;⑥重复上述

6、步骤①~⑤,直到执行320次指令。(2)将指令序列变换成为页地址流。设:①页面大小为1K;②用户内存容量为4页到32页;③用户虚存容量为32K。在用户虚存中,按每页存放10条指令排列虚存地址,即320条指令在虚存中的存放方式为:第0条~第9条指令为第0页(对应虚存地址为[0,9]);第10条~第19条指令为第1页(对应虚存地址为[10,19]);………第310条~第319条指令为第31页(对应虚存地址为[310,319])。按以上方式,用户指令可组成32页。(3)计算并输出下述各种算法在不同内存容量下的命中率(要为以下各种算法定义数据结构

7、)。①先进先出的算法(FIFO);②最近最少使用算法(LRU);③最近最不经常使用算法(NUR/NRU/CLOCK)。命中率=1-页面失效次数/页地址流长度在本设计中,页地址流长度为320,页面失效次数为每次访问相应指令时,该指令所对应的页不在内存的次数。(4)关于随机数产生办法,Linux/UNIX系统提供函数srand()和rand(),分别进行初始化和产生随机数。例如:srand()语句可初始化一个随机数:a[0]=10*rand()/32767*319+1,a[1]=10*rand()/32767*a[0];………语句可用来产生a

8、[0]、a[1]、…中的随机数。24三.总体设计3.1程序设计组成框图系统分为4个子模块:初始化模块,FIFO、LRU、LFU、NUR和OPT的五个算法模块。初始化模块:initialize(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。