




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 / 11计算机系统结构课程实 验 报 告2010 2011 学年第 2 学期姓名:银河战舰学号:2008xxxxx 指导教 师:孙全红教研室:计算机系统结构教研室2011 年5 月6 日2 / 11实验一: 存贮层次模拟器学时:2 学时实验类型:(综合/ 设计) :设计一、实验目的与要求使学生清楚认识虚拟存贮层次结构,熟练掌握常用的几种存储地址映象与变换方法,以及fifo、lru 等替换算法的工作全过程。要求用程序实现任意地址流在存储层次上的命中情况,实验结束后提交源程序和实验说明书。二、实验内容在模拟器上实现在任意地址流下求出在主存辅存两层存贮层次上的命中率。三、实验步骤1主存辅存:映像
2、方式采用组相联,替换算法分别选择fifo、lru两种算法实现。2要求主存容量、页大小以及组数等可以输入修改。3求出命中率;显示替换的全过程;任选一种高级语言来做。4要有简洁、易于操作的界面。四、实验仪器设备计算机(装有常用编程环境,如c、vc+ 等)五、考核方式 1 平时考勤占10% 。 (两次上机时间,一次不到扣5 分)2最终源程序运行情况、提交的源程序和实验说明书占90% 。六、主要代码void cmemorysimulatordlg:onbuttonreport() / todo: add your control notification handler code here / 数据检
3、验if (!updatedata(true) return; if (m_npagesizem_nmaincapacity) messagebox(; return; int naddr100,naddrnum=0,naddrmax=0; cstring saddr=m_saddr; char *p = saddr.getbuffer(saddr.getlength() + 1); saddr.releasebuffer(); 3 / 11char *divstr=strtok(p,); while (divstr!=null) /读取页地址流字符串 if (naddrnum=100) mes
4、sagebox( 页地址流中的页号不得超过100 个!); return; naddrnaddrnum=atoi(divstr); if (naddrnaddrnumnaddrmax) naddrmax=naddrnaddrnum; naddrnum+; divstr=strtok(null,); if (naddrnum=0) messagebox( 页地址流输入不合法!); return; if (m_algorithm=0) fifo(naddr,naddrnum,naddrmax); else lru(naddr,naddrnum,naddrmax); updatedata(false
5、); bool cmemorysimulatordlg:oninitdialog() cdialog:oninitdialog(); / ,/ todo: add extra initialization here crect rect; getclientrect(rect); rect.left +=10; rect.bottom -=10; rect.top += 225; rect.right -=10; m_clstreplace.create(ws_child|ws_visible|ws_border|lvs_report, rect, this, 1); m_clstreplac
6、e.setextendedstyle(lvs_ex_fullrowselect|lvs_ex_gridlines|lvs_ex_headerdragdrop); 4 / 11m_clstreplace.setbkcolor(rgb(185,185,255); return true; / return true unless you set the focus to a control void cmemorysimulatordlg:fifo(int naddr,int naddrnum,int naddrmax) int nmainpagenum=m_nmaincapacity/m_npa
7、gesize; / 主存的页数int ngrouppagenum=(nmainpagenum-1)/m_ngroupnum+1; / 每组的页数int nvirareanum=naddrmax/nmainpagenum+1; / 组相联映像虚存分区数int* nsign=new intnmainpagenum; / 设置的标记位int* nmainpage=new intnmainpagenum; / 主存页位置映像的虚页地址int i,j,k,x,flag,nhit=0; int nmax; cstring str; for (i=0;inmainpagenum;i+) nsigni=-1;
8、 crect rect; getclientrect(rect); rect.left +=10; rect.bottom -=10; rect.top += 225; rect.right -=10; m_clstreplace.destroywindow(); m_clstreplace.create(ws_child|ws_visible|ws_border|lvs_report, rect, this, 1); m_clstreplace.setextendedstyle(lvs_ex_fullrowselect|lvs_ex_gridlines|lvs_ex_headerdragdr
9、op); m_clstreplace.setbkcolor(rgb(185,185,255); m_clstreplace.settextbkcolor(rgb(185,185,255); m_clstreplace.insertcolumn(0,lvcfmt_center,80); for (i=1;i=naddrnum;i+) str.format(%d,i); m_clstreplace.insertcolumn(i,str,lvcfmt_center,40); m_clstreplace.insertitem(0,页地址流 ); for (i=0;inmainpagenum;i+) s
10、tr.format(主存页面 %d,i); m_clstreplace.insertitem(i+1,str); m_clstreplace.insertitem(nmainpagenum+1,命中情况 ); for (i=0;inaddrnum;i+) str.format(%d,naddri); 5 / 11m_clstreplace.setitemtext(0,i+1,str); flag=0; x=naddri%nmainpagenum/ngrouppagenum; /组号for (j=x*ngrouppagenum;j-1&nmainpagej=naddri) nhit+;
11、flag=1; /命中break; if (flag=1) for (j=0;j=0) str.format(%d,nmainpagej); m_clstreplace.setitemtext(j+1,i+1,str); m_clstreplace.setitemtext(nmainpagenum+1,i+1,命中 ); continue; for (j=x*ngrouppagenum;j(x+1)*ngrouppagenum;j+) if (nsignj=-1) k=j; flag=2; /调进break; if (flag=2) for (j=0;j-1) str.format(%d,nm
12、ainpagej); m_clstreplace.setitemtext(j+1,i+1,str); nsignj+; m_clstreplace.setitemtext(nmainpagenum+1,i+1,调进 ); continue; nmax=0; for (j=x*ngrouppagenum;jnmax) nmax=nsignj; k=j; for (j=0;j-1) str.format(%d,nmainpagej); m_clstreplace.setitemtext(j+1,i+1,str); nsignj+; m_clstreplace.setitemtext(nmainpa
13、genum+1,i+1,替换 ); m_shit.format(命中率为 :n%-5.2f%,float(nhit)/naddrnum*100); delete nsign; delete nmainpage; 7 / 11void cmemorysimulatordlg:lru(int naddr, int naddrnum, int naddrmax) int nmainpagenum=m_nmaincapacity/m_npagesize; / 主存页数int ngrouppagenum=(nmainpagenum-1)/m_ngroupnum+1; / 每组页数int nvirarea
14、num=naddrmax/nmainpagenum+1; / 组相联映像虚存分区数int* nsign=new intnmainpagenum; / 标记位int* nmainpage=new intnmainpagenum; / 主存页位置映像的虚页地址int i,j,k,flag,x,nhit=0; int nmax; cstring str; for (i=0;inmainpagenum;i+) nsigni=-1; crect rect; getclientrect(rect); rect.left +=10; rect.bottom -=10; rect.top += 225; re
15、ct.right -=10; m_clstreplace.destroywindow(); m_clstreplace.create(ws_child|ws_visible|ws_border|lvs_report, rect, this, 1); m_clstreplace.setextendedstyle(lvs_ex_fullrowselect|lvs_ex_gridlines|lvs_ex_headerdragdrop); m_clstreplace.setbkcolor(rgb(185,185,255); m_clstreplace.settextbkcolor(rgb(185,18
16、5,255); m_clstreplace.insertcolumn(0,lvcfmt_center,80); for (i=1;i=naddrnum;i+) str.format(%d,i); m_clstreplace.insertcolumn(i,str,lvcfmt_center,40); m_clstreplace.insertitem(0,页地址流 ); for (i=0;inmainpagenum;i+) str.format(主存页面 %d,i); m_clstreplace.insertitem(i+1,str); m_clstreplace.insertitem(nmain
17、pagenum+1,命中情况 ); for (i=0;inaddrnum;i+) str.format(%d,naddri); m_clstreplace.setitemtext(0,i+1,str); flag=0; x=naddri%nmainpagenum/ngrouppagenum; /组号8 / 11for (j=x*ngrouppagenum;j(x+1)*ngrouppagenum&j-1&nmainpagej=naddri) nhit+; k=j; flag=1; /命中break; if (flag=1) for (j=0;j-1) str.format(%d
18、,nmainpagej); m_clstreplace.setitemtext(j+1,i+1,str); nsignj+; m_clstreplace.setitemtext(nmainpagenum+1,i+1,命中 ); continue; for (j=x*ngrouppagenum;j(x+1)*ngrouppagenum&jnmainpagenum;j+) if (nsignj=-1) k=j; flag=2; /调进break; if (flag=2) for (j=0;j-1) str.format(%d,nmainpagej); m_clstreplace.setitemtext(j+1,i+1,str); nsignj+; m_clstreplace.setitemtext(nmainpagenum+1,i+1,调进 ); continue; nmax=0; for (j=x*ngrouppagenum;j(x+1)*ngrouppagenum&jnmax) nmax=nsignj; k=j; for (j=0;j-1) str.format(%d,nmainpagej); m_clstreplace.setitemtext(j+1,i+1,str); nsignj+; m_clstrep
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024成都工业职工大学辅导员招聘笔试真题
- 锻造车间安全员考试试卷及答案
- 2025年非接触式温度计项目发展计划
- 2025年PE电缆专用料项目发展计划
- 2025年江苏省常州市中考地理试题(原卷版)
- 2025年智能压力发生器项目合作计划书
- 2025年假肢、人工器官及植(介)入器械项目合作计划书
- 2025年精密箱体系统项目合作计划书
- 聊城市2025年农产品成本调查分析报告
- 湘艺版九年级上册音乐 第二单元 梁山伯与祝英台教案
- JBT 5300-2024 工业用阀门材料 选用指南(正式版)
- 2024年4月自考02613单片机与接口技术试题
- (2024年)诊疗规范培训课件
- 《大学法语简明教程》课件
- 2024年广东汕头市投资控股集团有限公司招聘笔试参考题库含答案解析
- 急性肺栓塞课件
- 高校中外合作办学人才培养机制
- 《肢体残疾评定》课件
- 停车场数据分析与管理
- 全等三角形经典辅助线做法汇总
- 客运列车保洁作业服务方案
评论
0/150
提交评论