版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 长螺旋钻孔灌注桩施工方案(完整版)
- 学校义务教育均衡发展工作实施方案
- 2025-2030现代服务业培育成长政策方案与创新分析
- 2025-2030物联网技术应用领域发挥供需状况分析及产业升级路径研究报告
- 2025-2030物流配送行业市场供需研究投资机会评估发展规划研究
- 2025-2030物流行业运输管理仓储规划效率提升市场竞争投资评估规划分析研究报告
- 2025-2030物流自动化设备市场发展与趋势前瞻报告
- 2025-2030物流仓储配送网络行业市场供需对接及投资发展策略分析研究报告
- 预制叠合梁吊装施工技术方案
- 骨干教师跟岗学习心得总结
- 2026年乡村医生传染病考试题含答案
- 新零售模式下人才培养方案
- 上海市徐汇区2026届初三一模化学试题(含答案)
- 2025年辽铁单招考试题目及答案
- 医疗行业数据安全事件典型案例分析
- 2026年生物医药创新金融项目商业计划书
- 湖南名校联考联合体2026届高三年级1月联考化学试卷+答案
- 龟的解剖课件
- 山东省潍坊市2024-2025学年二年级上学期期末数学试题
- 空气源热泵供热工程施工方案
- 2026届潍坊市重点中学高一化学第一学期期末教学质量检测试题含解析
评论
0/150
提交评论