版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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简易租房合同下载打印
- 2024年西安陕鼓动力股份有限公司招聘笔试冲刺题(带答案解析)
- 组织行为与领导力智慧树知到期末考试答案2024年
- 四川省公需科目2024年度数字经济与驱动发展考试题库及答案
- 京瓷哲学培训课件
- 部编版三年级语文(上册)标点符号专项训练题(含答案)
- 工程测量部分案例分析
- 美国各州地图ppt模板
评论
0/150
提交评论