搜档网
当前位置:搜档网 › 计算机系统结构课程实验

计算机系统结构课程实验

计算机系统结构课程实验
计算机系统结构课程实验

计算机系统结构课程

实验指导书

2016——2017 学年

第 2学期

姓名:徐益

学号:201415725

指导教师:薛素静

教研室:计算机系统结构教研室

实验:存贮层次模拟器1

学时:4学时

实验类型:(综合/设计):设计

一、实验目的与要求

使学生清楚认识虚拟存贮层次结构,熟练掌握常用的几种存储地址映像与变换方法,以及FIFO、LRU等替换算法的工作全过程。

要求用程序实现任意地址流在存储层次上的命中情况,实验结束后提交源程序和实验说明书。

二、实验内容

在模拟器上实现在任意地址流下求出在 Cache—主存两层存贮层次上的命中率。

三、实验步骤

1.Cache—主存:映像方式要实现全相联、直接映象、组相联方式三种方式,并选择每一种映像方式下输出结果;替换算法一般使用LRU算法。

2.要求主存容量、Cache大小、块大小以及组数等可以输入修改。

3.求出命中率;显示替换的全过程;任选一种高级语言来做。

4.要设计简洁、易于操作的界面。

四、实验仪器设备

计算机(装有java、Apache tomcat)

五、实验过程

1、设计思想:

(1)在本次实验中,我使用的是java语言来实现。

(2)首先,建一个web项目,然后将整个实验分为前端和后端两部分,前端为jsp页面,用来输入数据和显示实验结果。后端为Java,在本次实验我用了一个MyServlt类,在这个类中用来接收前端的数据,然后进行一系列的逻辑处理;即各个算法的具体实现。最后将数据传送给前端输出。

(3)将整个cache看成是一个对象,然后建一个实体类Cache。在这个类中有cache的大小、块大小、块数、块地址、计数器、计时器等属性。块地址用于存放地址流,计数器用于计算命中率,当命中一次,计数器加1。计时器用于LRU 算法。当命中时,计时器清零。每一个循环结束,有地址的块计时器加1;替换时,找到计时器最大的块地址,然后把它替换出去。

(4)将要输出的数据封装成一个类,然后进行输出。

六、实验代码

1、前端代码:

Index.jsp代码(用于输入数据):在本页面中用到jqurey插件以达到美观效果,其中的js、css等代码就不粘贴出来了。

<%@page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+p ath;

%>

体系结构实验一

Main.jsp代码(用于输出数据):在本页面中用到jqurey插件以达到美观效果,其中的js、css等代码就不粘贴出来了。

<%@page import="com.xu.entity.OutPut"%>

<%@page import="java.util.List"%>

<%@page import="com.xu.entity.Cache"%>

<%@ page language="java" contentType="text/html; charset=UTF-8"

pageEncoding="UTF-8"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+p ath;

%>

Insert title here

<%

List dataList= (List)request.getAttribute("dataList");

float hit = (Float)request.getAttribute("hit");

%>

相关主题
时间流地址流>cache里的地址流