2022年实验四虚拟存储器管理 .pdf

上传人:C****o 文档编号:42649608 上传时间:2022-09-16 格式:PDF 页数:12 大小:62.60KB
返回 下载 相关 举报
2022年实验四虚拟存储器管理 .pdf_第1页
第1页 / 共12页
2022年实验四虚拟存储器管理 .pdf_第2页
第2页 / 共12页
点击查看更多>>
资源描述

《2022年实验四虚拟存储器管理 .pdf》由会员分享,可在线阅读,更多相关《2022年实验四虚拟存储器管理 .pdf(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、实验四虚拟存储器管理一、实验目的1、为了更好的配合操作系统有关虚拟存储器管理章节的教学。2、加深和巩固学生对于请求页式存储管理的了解和掌握。3、提高学生的上机和编程过程中处理具体问题的能力。二、实验内容请求页式存储管理是一种常用的虚拟存储管理技术。本实验的目的是通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。1通过随机数产生一个指令序列,共320 条指令。指令的地址按下述原则生成:a.50%的指令是顺序执行的。b.25%的指令是均匀分布在前地址部分。c.25%的指令是均匀分布在后地址部分。具体的实施方法是:a.在0,319指令地址之间随机

2、选取一起点;b.顺序执行一条指令,即执行地址为m+1的指令;c.在前地址 0,m+1中随机选取一条指令并执行,该指令的地址为m;d.顺序执行一条指令,其地址为m;e.在后地址 m+2,319 中随机选取一条指令并执行;f.重复上述步骤ae,直到执行320 次指令。2将指令序列变换成为页地址流设:a.页面大小为1K;b.用户内存容量为4 到 32 页;c.用户虚存容量为32K。在用户虚存中,按每K 存放 10 条指令排列虚存地址,即320 条指令在虚存中的存放方式为:第 0 条第 9 条指令为第0 页,对应虚存地址为0,9;名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 12 页

3、-第 10 条第 19 条指令为第1 页,对应虚存地址为10,19 .第 310 条第 319 条指令为第31 页,对应虚存地址为310,319。按以上方式,用户指令可组成32 页。3、输出下述各种算法在不同内存容量下的命中率。a.先进先出的算法;b.最近最少访问算法;c.最近最不经常使用算法。其中:命中率=1-页面失效次数/页地址流长度页地址流长度为320,页面失效次数为每次访问相同指令时,该指令所对应的页不在内存的次数。三、实验要求实验课时 4 学时。要求画出利用各种算法置换时的置换图,并可以分析说明。编程可分为几个部分完成:指令的分页,算法的选择,算法的实现,命中率的输出。编写程序前可先

4、阅读 Linux 源代码页面换入:static int do_swap_page(struct mm_struct*mm,struct vm_area_struct*vma,unsigned long address,pte_t*page_table,swp_entry_t entry,int write_access)struct page*page=lookup_swap_cache(entry);pte-t pte;if(!pgae)lock_kernel();swapin_readahead(entry);page=read_swap_cache(entry);unlock_kerne

5、l();if(!page)return-1;名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 12 页 -flush_page_to_ram(page);flush_icache_page(vma,page);mm-rss+;pte=mk_pte(page,vma-vm_page_prot);/*Freeze the shared ness of the page,ie page_count+swap_count.*Must lock page before transferring our swap count to already*obtained apge count.*/l

6、ock_page(page);swap_free(entry);if(write_access&!is_page_shared(page)pte=pte_mkwrite(pte_mkdirty(pte);UnlockPage(page);set_pte(page_table,pte);/*No need to invalidate-it was non-present before*/update_mmu_cache(vma,address,pte);return 1;/*Minor fault*/四、源程序指导#include#include#include int i,M,j,k,s,h,

7、t;名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 12 页 -char r;float int_count,page_count,v;float vc29;int l,m,n,o,p;int address320;int page3210,pageNo32,page_Index200,page_IndexNo200,page_change200;pagechange()for(i=0;i32;i+)for(j=0;j1)m=l+1;else goto Loop1;Loop2:x=random(319);if(xo)p=y;else goto Loop3;fifo()for(s=

8、4;s=32;s+)page_change0=page_IndexNo0;int_count=1;page_count=1;for(h=1;h5*M;h+)if(page_IndexNoh!=page_IndexNoh-1)page_count+=1;for(t=0;ts;t+)if(page_IndexNoh=page_changet)goto Loop8;else if(page_IndexNoh!=page_changet&page_changet=999)名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 12 页 -page_changet=page_IndexNoh;in

9、t_count+;goto Loop8;for(k=0;ks;k+)page_changek=page_changek+1;page_changes-1=page_IndexNoh;int_count+=1;Loop8:;v=int_count/page_count;vcs-4=1-v;printf(Vc for page%d:vc%d=%.3f$,s,s-4,vcs-4);for(i=0;i200;i+)page_changei=999;lru()int q,temp;for(s=4;s=32;s+)page_change0=page_IndexNo0;page_count=1;名师资料总结

10、-精品资料欢迎下载-名师精心整理-第 6 页,共 12 页 -int_count=1;for(h=1;h5*M;h+)if(page_IndexNoh!=page_IndexNoh-1)page_count+=1;for(t=0;ts;t+)if(page_IndexNoh!=page_changet&page_changet=999)page_changet=page_IndexNoh;int_count+;goto Loop9;else if(page_IndexNoh=page_changet)for(q=t;qs;q+)if(page_changeq+1!=999)temp=page_

11、changeq;page_changeq=page_changeq+1;page_changeq+1=temp;goto Loop9;for(k=0;ks;k+)page_changek=page_changek+1;page_changes-1=page_IndexNoh;名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 12 页 -int_count+=1;Loop9:;v=int_count/page_count;vcs-4=1-v;printf(The vc for the page%d:vc%d=%.3f$,s,s-4,vcs-4);for(i=0;i200;i+)pag

12、e_changei=999;opt()int i,count32,max,j;for(j=0;j32;j+)countj=0;for(s=4;s=32;s+)page_change0=page_IndexNo0;page_count=1;int_count=1;for(h=1;h5*M;h+)if(page_IndexNoh!=page_IndexNoh-1)page_count+=1;for(t=0;ts;t+)if(page_IndexNoh=page_changet)goto Loop10;名师资料总结-精品资料欢迎下载-名师精心整理-第 8 页,共 12 页 -else if(page

13、_IndexNoh!=page_changet&page_changet=999)page_changet=page_IndexNoh;int_count+;goto Loop10;for(t=0;ts;t+)for(i=h;i5*M;i+)if(page_changet=page_IndexNoi)countt=i;goto Loop11;page_changet=page_IndexNoh;int_count+=1;goto Loop10;Loop11:;max=0;for(t=0;tmax)max=countt;for(t=0;ts;t+)名师资料总结-精品资料欢迎下载-名师精心整理-第

14、 9 页,共 12 页 -if(countt=max)page_changet=page_IndexNoh;int_count+=1;Loop10:;v=int_count/page_count;vcs-4=1-v;printf(The vc for page%d:vc%d=%.3f$,s,s-4,vcs-4);for(i=0;i200;i+)page_changei=999;main()char c;Loop4:clrscr();for(i=0;i320;i+)addressi=rand();for(i=0;i200;i+)page_changei=999;printf(Put The Va

15、lue Of The M:);scanf(%d,&M);pagechange();名师资料总结-精品资料欢迎下载-名师精心整理-第 10 页,共 12 页 -for(j=0;jM;j+)Ram_Make();page_Index5*j+0=l;page_IndexNo5*j+0=l/10;page_Index5*j+1=m;page_IndexNo5*j+1=m/10;page_Index5*j+2=n;page_IndexNo5*j+2=n/10;page_Index5*j+3=o;page_IndexNo5*j+3=o/10;page_Index5*j+4=p;page_IndexNo5*

16、j+4=p/10;for(k=0;k5*M;k+)printf(page_Index%d=%d,page_IndexNo%d=%dn,k,page_Indexk,k,page_IndexNok);printf(n);Loop5:printf(select the method for page_exchange:n);printf(1.)FIFOn2.)LRUn3.)OPTn);printf(Put The select of The method:);scanf(%s,&r);switch(r)case 1:fifo();break;case 2:lru();break;case 3:opt();break;default:名师资料总结-精品资料欢迎下载-名师精心整理-第 11 页,共 12 页 -printf(n);printf(Put the value between 1 to 3!n);goto Loop5;Loop6:printf(n);printf(Do You Want to do againy/n:);scanf(%s,&c);if(c=y)goto Loop4;else if(c=n)exit;else printf(Select for y and n!n);goto Loop6;名师资料总结-精品资料欢迎下载-名师精心整理-第 12 页,共 12 页 -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁