欢迎来到天天文库
浏览记录
ID:38632266
大小:204.00 KB
页数:7页
时间:2019-06-16
《操作系统lab4》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、xxxx大学《操作系统》课程实验报告实验题目:储存管理姓名:____xx____学号:___xxxxxxxxxx___班级:__xxxxxx_______指导教师:xxx实验概述【实验目的及要求】通过模拟页面替换算法,感性认识操作系统对内存的管理。【实验原理】设计一个虚拟存储区和内存工作区,并使用下述页面替换算法计算访问命中率。其中,命中率=1-页面失效次数/页地址流长度。1.先进先出算法(FIFO)2.最近最少使用算法(LRU)首先用srand()和rand()函数定义和产生指令序列,然后将指令序列变换成相应的页地址流,并针对不同的算法
2、计算出相应的命中率。(1)通过随机数产生一个指令序列,共320条指令。指令的地址按下述原则生成:A:50%的指令是顺序执行的B:25%的指令是均匀分布在前地址部分C:25%的指令是均匀分布在后地址部分具体的实施方法是:A:在[0,319]的指令地址之间随机选取一起点mB:顺序执行一条指令,即执行地址为m+1的指令C:在前地址[0,m+1]中随机选取一条指令并执行,该指令的地址为m’D:顺序执行一条指令,其地址为m’+1E:在后地址[m’+2,319]中随机选取一条指令并执行F:重复步骤A-E,直到320次指令(2)将指令序列变换为页地址流
3、设:页面大小为1K;用户内存容量4页到32页;用户虚存容量为32K。在用户虚存中,按每K存放10条指令排列虚存地址,即320条指令在虚存中的存放方式为:第0条-第9条指令为第0页(对应虚存地址为[0,9])第10条-第19条指令为第1页(对应虚存地址为[10,19])………………………………第310条-第319条指令为第31页(对应虚存地址为[310,319])按以上方式,用户指令可组成32页。【实验环境】 Linuxgedit、终端实验内容【实验方案设计】#include#include#inclu
4、de#include#defineNULL_110000constintty=320;intd[320];//指令序列intpage[320];//页地址流intp[32];//内存页面intque;//缺页次数inttime[32];//记录页面距离上次被访问的时间//*******初始化内存页面voidcreat(intleng)//leng为内存页面数量{inti;que=0;for(i=0;i5、**先进先出算法voidFIFO(intleng)//leng为内存页面数量{inti,j,k;intn;//n为要被替换的页面号,按0,1,2...leng,0,1,2...leng循环变化creat(leng);//初始化内存页面n=0;for(i=0;i6、n=0;}printf("%-7.3ft",1-(float)que/ty);}//********最近最久未使用算法voidLRU(intleng)//leng为内存页面数量{inti,j,k;inttmax;//存time的最大值intt;//t为要被访问的页面号creat(leng);//初始化内存页面for(i=0;i7、=0){que++;tmax=time[0];t=0;for(j=0;j8、种子"m=(int)((float)(ty-1)*(rand()/(RAND_MAX+1.0)));//选0-319中一数for(i=0;i
5、**先进先出算法voidFIFO(intleng)//leng为内存页面数量{inti,j,k;intn;//n为要被替换的页面号,按0,1,2...leng,0,1,2...leng循环变化creat(leng);//初始化内存页面n=0;for(i=0;i6、n=0;}printf("%-7.3ft",1-(float)que/ty);}//********最近最久未使用算法voidLRU(intleng)//leng为内存页面数量{inti,j,k;inttmax;//存time的最大值intt;//t为要被访问的页面号creat(leng);//初始化内存页面for(i=0;i7、=0){que++;tmax=time[0];t=0;for(j=0;j8、种子"m=(int)((float)(ty-1)*(rand()/(RAND_MAX+1.0)));//选0-319中一数for(i=0;i
6、n=0;}printf("%-7.3ft",1-(float)que/ty);}//********最近最久未使用算法voidLRU(intleng)//leng为内存页面数量{inti,j,k;inttmax;//存time的最大值intt;//t为要被访问的页面号creat(leng);//初始化内存页面for(i=0;i7、=0){que++;tmax=time[0];t=0;for(j=0;j8、种子"m=(int)((float)(ty-1)*(rand()/(RAND_MAX+1.0)));//选0-319中一数for(i=0;i
7、=0){que++;tmax=time[0];t=0;for(j=0;j8、种子"m=(int)((float)(ty-1)*(rand()/(RAND_MAX+1.0)));//选0-319中一数for(i=0;i
8、种子"m=(int)((float)(ty-1)*(rand()/(RAND_MAX+1.0)));//选0-319中一数for(i=0;i
此文档下载收益归作者所有