当前位置:文档之家› 虚拟存储器管理实验报告书

虚拟存储器管理实验报告书

虚拟存储器管理实验报告书
虚拟存储器管理实验报告书

淮海工学院计算机科学系实验报告书

课程名:《操作系统》

题目:虚拟存储器管理

页面置换算法模拟实验

班级:

学号:

姓名:

一、实验目的与要求

1.目的:

请求页式虚存管理是常用的虚拟存储管理方案之一。通过请求页式虚存管理中对页面置换算法的模拟,有助于理解虚拟存储技术的特点,并加深对请求页式虚存管理的页面调度算法的理解。

2.要求:

本实验要求使用C语言编程模拟一个拥有若干个虚页的进程在给定的若干个实页中运行、并在缺页中断发生时分别使用FIFO和LRU算法进行页面置换的情形。其中虚页的个数可以事先给定(例如10个),对这些虚页访问的页地址流(其长度可以事先给定,例如20次虚页访问)可以由程序随机产生,也可以事先保存在文件中。要求程序运行时屏幕能显示出置换过程中的状态信息并输出访问结束时的页面命中率。程序应允许通过为该进程分配不同的实页数,来比较两种置换算法的稳定性。

二、实验说明

1.设计中虚页和实页的表示

本设计利用C语言的结构体来描述虚页和实页的结构。

在虚页结构中,pn代表虚页号,因为共10个虚页,所以pn的取值范围是0—9。pfn代表实页号,当一虚页未装入实页时,此项值为-1;当该虚页已装入某一实页时,此项值为所装入的实页的实页号pfn。time项在FIFO算法中不使用,在LRU中用来存放对该虚页的最近访问时间。

在实页结构中中,pn代表虚页号,表示pn所代表的虚页目前正放在此实页中。pfn代表实页号,取值范围(0—n-1)由动态指派的实页数n所决定。next是一个指向实页结构体的指针,用于多个实页以链表形式组织起来,关于实页链表的组织详见下面第4点。

2.关于缺页次数的统计

为计算命中率,需要统计在20次的虚页访问中命中的次数。为此,程序应设置一个计数器count,来统计虚页命中发生的次数。每当所访问的虚页的pfn项值不为-1,表示此虚页已被装入某实页内,

此虚页被命中,count加1。最终命中率=count/20*100%。

3.LRU算法中“最近最久未用”页面的确定

为了能找到“最近最久未用”的虚页面,程序中可引入一个时间计数器countime,每当要访问

一个虚页面时,countime的值加1,然后将所要访问的虚页的time项值设置为增值后的当前

countime值,表示该虚页的最后一次被访问时间。当LRU算法需要置换时,从所有已分配实页的虚页中找出time值为最小的虚页就是“最近最久未用”的虚页面,应该将它置换出去。

4.算法中实页的组织

因为能分配的实页数n是在程序运行时由用户动态指派的,所以应使用链表组织动态产生的多个实页。为了调度算法实现的方便,可以考虑引入free和busy两个链表:free链表用于组织未分配出去的实页,首指针为free_head,初始时n个实页都处于free链表中;busy链表用于组织已分配出去的实页,首指针为busy_head,尾指针为busy_tail,初始值都为null。当所要访问的一个虚页不在实页中时,将产生缺页中断。此时若free链表不为空,就取下链表首指针所指的实页,并分配给该虚页。若free链表为空,则说明n个实页已全部分配出去,此时应进行页面置换:对于FIFO 算法要将busy_head 所指的实页从busy链表中取下,分配给该虚页,然后再将该实页插入到busy 链表尾部;对于LRU算法则要从所有已分配实页的虚页中找出time值为最小的虚页,将该虚页从装载它的那个实页中置换出去,并在该实页中装入当前正要访问的虚页。

三、程序流程图

三个模块的流程图

〈1〉登录模块

〈2〉参数输入模块

〈3〉算法实现模块

四、主要程序清单

模块之间的调用关系

#include

#include

#include

int producerand(int remainder);

void initprocess();

void chosedisplace();

struct linknode * fifo(struct linknode *head,int randcount);

void Optimal(struct linknode*head,int randprocess);

struct linknode* LRU(struct linknode *head,int randprocess);

struct linknode* initlink();

void choicestey();

int allotment(struct linknode *head);

bool checkfifooptimal(struct linknode* head,int checkpage);

void recover(struct linknode *head,int randprocess);

void recovermemory();

int process[10][20];//数组的横坐标为进程序列,纵坐标为每个进程的页号int processallotment[6];//存储每个进程已经分配的块数

int finishp[6];//标志进程是否完成(1完成0不完成)

int finishprocess=0;//进程完成的个数

int findpage[6];//每个进程命中的个数

struct linknode *plinkhead[6];

struct linknode *plink[6];

int memoryallotment[6];

int stey=0;

struct linknode

{

struct linknode *linkper;//空链表的前驱指针

int page;

int processpage;

int used;

int memorypage;

struct linknode *linknext;//空链表的后继指针

struct linknode *processper;//进程的前去指针

struct linknode *processnext;//进程的后继指针};

int main()

{

struct linknode *head=initlink();

initprocess();

choicestey();

int re=allotment(head);

if(re==0)

{printf("内存分配出现问题。");system("pause");} chosedisplace();

recovermemory();

system("pause");

}

void recovermemory()

{

int n=0;

printf("是否回收全部已分配的内存空间?\n回收输入1,不回收输入2\n");

scanf("%d",&n);

if(n==1)

{

for(int i=1;i<=5;i++)

recover(plinkhead[i],i);

}

if(n==2)

printf("您这么做会浪费内存空间");

}

void recover(struct linknode *head,int randprocess)

{

while(head!=0)

{

head->used=0;

head=head->processnext;

}

}

void choicestey()

{

printf("请选择置换算法\n");

printf("1 表示FIFO\n2 表示Optimal\n3 表示LRU\n");

bool flag=true;

while(flag)

{

scanf("%d",&stey);

switch(stey)

{

case 1:{printf("您选择的是FIFO替换算法\n");flag=false; break;}

case 2:{printf("您选择的是Optimal替换算法\n");flag=false;break;}

case 3:{printf("您选择的是LRU替换算法\n");flag=false;break;}

default :printf("输入错误,请重新输入\n");

}

}

}

void chosedisplace()//选择置换算法

{

struct linknode *head;

int randcount;//进程序号

bool find;

while(finishprocess<5)

{

randcount=producerand(5);

while(processallotment[randcount]

{

find=false;

head=plinkhead[randcount];

if(stey==1||stey==2)

find=checkfifooptimal(head,process[randcount][processallotment[randcount]+1]);

if(find==true)

{

存储管理实验报告

实验三、存储管理 一、实验目的: ? 一个好的计算机系统不仅要有一个足够容量的、存取速度高的、稳定可靠的主存储器,而且要能合理地分配和使用这些存储空间。当用户提出申请存储器空间时,存储管理必须根据申请者的要求,按一定的策略分析主存空间的使用情况,找出足够的空闲区域分配给申请者。当作业撤离或主动归还主存资源时,则存储管理要收回作业占用的主存空间或归还部分主存空间。主存的分配和回收的实现虽与主存储器的管理方式有关的,通过本实验理解在不同的存储管理方式下应怎样实现主存空间的分配和回收。 在计算机系统中,为了提高主存利用率,往往把辅助存储器(如磁盘)作为主存储器的扩充,使多道运行的作业的全部逻辑地址空间总和可以超出主存的绝对地址空间。用这种办法扩充的主存储器称为虚拟存储器。通过本实验理解在分页式存储管理中怎样实现虚拟存储器。 在本实验中,通过编写和调试存储管理的模拟程序以加深对存储管理方案的理解。熟悉虚存管理的各种页面淘汰算法通过编写和调试地址转换过程的模拟程序以加强对地址转换过程的了解。 二、实验题目: 设计一个可变式分区分配的存储管理方案。并模拟实现分区的分配和回收过程。 对分区的管理法可以是下面三种算法之一:(任选一种算法实现) 首次适应算法 循环首次适应算法 最佳适应算法 三.实验源程序文件名:cunchuguanli.c

执行文件名:cunchuguanli.exe 四、实验分析: 1)本实验采用可变分区管理,使用首次适应算法实现主存的分配和回收 1、可变分区管理是指在处理作业过程中建立分区,使分区大小正好适合作业的需求,并 且分区个数是可以调整的。当要装入一个作业时,根据作业需要的主存量查看是否有足够的空闲空间,若有,则按需要量分割一个分区分配给该作业;若无,则作业不能装入,作业等待。随着作业的装入、完成,主存空间被分成许多大大小小的分区,有的分区被作业占用,而有的分区是空闲的。 为了说明那些分区是空闲的,可以用来装入新作业,必须有一张空闲说明表 ? 空闲区说明表格式如下:? 第一栏 第二栏 其中,起址——指出一个空闲区的主存起始地址,长度指出空闲区的大小。 长度——指出从起始地址开始的一个连续空闲的长度。 状态——有两种状态,一种是“未分配”状态,指出对应的由起址指出的某个长度的区域是空闲区;另一种是“空表目”状态,表示表中对应的登记项目是空白(无效),可用来登记新的空闲区(例如,作业完成后,它所占的区域就成了空闲区,应找一个“空表目”栏登记归还区的起址和长度且修改状态)。由于分区的个数不定,所以空闲区说明表中应有适量的状态为“空表目”的登记栏目,否则造成表格“溢出”无法登记。 2、当有一个新作业要求装入主存时,必须查空闲区说明表,从中找出一个足够大的空闲区。 有时找到的空闲区可能大于作业需要量,这时应把原来的空闲区变成两部分:一部分分

VR实验报告

《虚拟现实技术》课堂实验报告(2015-2016学年第2学期) 班级:地信1102 姓名:曹晓东 学号:31130503

实验一:Sketch Up软件认识与使用 一、实验目的与要求: 1. 目的 通过本次实验,使学生掌握Sketch Up软件的基本架构,理解利用Sketch Up进行场景制作的基本步骤,能够熟练运用Sketch Up软件的主要功能及相关工具。 2. 要求 每位学生进行Sketch Up软件的安装和配置,操作练习Sketch Up的主要功能及相关工具,理解体会各种操作的执行结果,并独立总结撰写完成实验报告。 二、Sketch Up的主要功能: 边缘和平面:这是绘图最基本的元素 每个 Sketch Up 模型皆由两种元素组成:边缘和平面。边缘是直线,而平面是由几条边缘构成一个平面循环时所形成的平面形状。例如,矩形平面是由四条边缘以直角角度互相连接在一起所构成的。自己可在短时间内学会使用 Sketch Up 的简单工具,从而绘制边缘和平面来建立模型。一切就是这么简单容易! 推/拉:从 2D 迅速转为 3D 使用 Sketch Up 专利设计的 [推/拉] 工具,可以将任何平面延伸成立体形状。单击鼠标就可开始延伸,移动鼠标,然后再单击即可停止延伸。自己可以将一个矩形推/拉成一个盒子。或绘制一个楼梯的轮廓并将其推/拉成立体的 3D 形状。想绘制一个窗户吗?只需在墙上推/拉出一个孔即可。Sketch Up 易于使用而广受欢迎,原因就在于其推/拉的功能。 精确测量:以精确度来进行作业处理 Sketch Up 特别适合在 3D 环境中进行迅速的绘图处理,但是它的功能不仅仅只是一只神奇的电子画笔而已。因为当自己在计算机上进行绘图处理时,自己在 Sketch Up 中所建立的一切对象都具有精确的尺寸。当自己准备好要建立模型时,自己可以随意根据自己想要的精确度来进行模型的建立。如果自己愿意,自己可以将模型的比例视图打印

四川大学 操作系统上机实验 实验五 Windows虚拟存储器管理

实验报告 实验名称:Windows虚拟存储器管理 实验时间:2013年5月27日 实验人员:____郑笑凡___(姓名)__1143041243__(学号)____2011____(年级) 实验目的:1、了解Windows 2000/XP的内存管理机制,掌握页式虚拟存储技术。 2、理解内存分配原理,特别是以页面为单位的虚拟内存分配方法。 3、学会使用Windows 2000/XP下内存管理的基本API函数 实验环境:windows xp 实验步骤: 1、下载virtumem.cpp; 2、建立工程,将virtumen.cpp加入; 3、编译工程,观察结果,确信六种状态都出现至少一次,必要时可改程 序,方便观察结果; 4、看懂程序,按要求另写一段小程序; 5、编译,执行,观察结果。 6,总结。 实验陈述: 1、基础知识: pagefile.sys文件的位置在:__安装的系统盘根目录下____________________________________此文件的作用:____实现物理内存的扩展__________________________________________________ 改变此文件大小的方法:右击”我的电脑”,依次选择”属性”—“高级”—“性能选项”— “更改”_______________________________________ 虚拟地址空间中的页面分为:提交页面,保留页面,空闲页面 页面的操作可以分为:保留、提交、回收、释放、加锁 2、编程准备. 页面属性是在结构体MEMORY_BASIC_INFORMATION_的字段AllocationProtect 和字段中Protect体现出来的。 简述VirtualFree,VirtualPtotect,VirtualLock,VirtualUnlock,VirtualQuery的作用:_ VirtualFree:__释放虚存___________________________________________________ VirtualPtotect:_保留虚存_________________________________________________ VirtualLock:___加锁虚存_________________________________________________ VirtualUnlock:_解锁虚存________________________________________________ VirtualQuery:____查询虚存_______________________________________________ 3、编程 1)将virtumem.cpp加入工程,编译,执行。 是否能编译成功?是 请描述运行结果:

虚拟存储器管理 页面置换算法模拟实验

淮海工学院计算机工程学院实验报告书 课程名:《操作系统原理A 》 题目:虚拟存储器管理 页面置换算法模拟实验 班级:软件*** 学号:20**1228** 姓名:****

一、实验目的与要求 1.目的: 请求页式虚存管理是常用的虚拟存储管理方案之一。通过请求页式虚存管理中对页面置换算法的模拟,有助于理解虚拟存储技术的特点,并加深对请求页式虚存管理的页面调度算法的理解。 2.要求: 本实验要求使用C语言编程模拟一个拥有若干个虚页的进程在给定的若干个实页中运行、并在缺页中断发生时分别使用FIFO和LRU算法进行页面置换的情形。其中虚页的个数可以事先给定(例如10个),对这些虚页访问的页地址流(其长度可以事先给定,例如20次虚页访问)可以由程序随机产生,也可以事先保存在文件中。要求程序运行时屏幕能显示出置换过程中的状态信息并输出访问结束时的页面命中率。程序应允许通过为该进程分配不同的实页数,来比较两种置换算法的稳定性。 二、实验说明 1.设计中虚页和实页的表示 本设计利用C语言的结构体来描述虚页和实页的结构。 在虚页结构中,pn代表虚页号,因为共10个虚页,所以pn的取值范围是0—9。pfn代表实 页号,当一虚页未装入实页时,此项值为-1;当该虚页已装入某一实页时,此项值为所装入的实页 的实页号pfn。time项在FIFO算法中不使用,在LRU中用来存放对该虚页的最近访问时间。 在实页结构中中,pn代表虚页号,表示pn所代表的虚页目前正放在此实页中。pfn代表实页号, 取值范围(0—n-1)由动态指派的实页数n所决定。next是一个指向实页结构体的指针,用于多个实页以链表形式组织起来,关于实页链表的组织详见下面第4点。 2.关于缺页次数的统计 为计算命中率,需要统计在20次的虚页访问中命中的次数。为此,程序应设置一个计数器count,来统计虚页命中发生的次数。每当所访问的虚页的pfn项值不为-1,表示此虚页已被装入某实页内,此虚页被命中,count加1。最终命中率=count/20*100%。 3.LRU算法中“最近最久未用”页面的确定

虚拟现实与仿真实验报告

合肥工业大学 计算机与信息学院 实验报告 课程:虚拟现实与仿真技术 专业班级:计算机科学与技术11-2班 学号: 姓名:谢云飞 实验一 一.实验名称

从3Dmax8中导出mesh并添加mesh到场景。 二.实验过程或实验程序(增加的代码及代码注解) 启动3Dmax 1.在安装有3Dmax8的计算机上,可以使用两种不同的方法来启动3Dmax8: (1)在桌面上双击“3Dmax8”图标 (2)点击“开始”菜单,在“程序”中的选择“3Dmax8” 2.观察3Dmax8主窗口的布局。3Dmax8主要由若干元素组成:菜单栏、工具栏、以及停靠在右边的命令面板和底部的各种工具窗口 使用3Dmax8建模并导出mesh 导出mesh的步骤如下: 1.启动3Dmax8 2.在停靠在右边的命令面板中,点击几何体按钮 3.选择标准几何体 4.在对象类型中选择对象(如:长方体),在“前”视口中,通过单击鼠标左键,创建出模型 5.在工具栏中单击“材质编辑器”按钮,通过上步操作,可开启“材质编辑器”对话框 6.在“材质编辑器”对话框中,点击漫反射旁方形按钮,进入到“材质/贴图浏览器” 7.在“材质/贴图浏览器”中选择位图,鼠标左键双击位图 8.弹出选择位图图像文件对话框,从本地电脑中选择一张图片 9.选择好图片,在材质编辑器对话框中,点击将材质指令给选定对象 10.点击菜单栏上的oFusion按钮,在弹出的菜单栏中选择Export Scene 11.选择文件夹并输入文件名qiu,点击保存,在弹出的对话框中勾选Copy Textures,点击Export按钮,此时mesh文件已成功导出 导出的mesh文件放入到指定位置 1.找到mesh文件,把mesh文件放到当前电脑的OgreSDK的models中,以我的电脑为例,OgerSDK放在C盘中 2.打开C盘,找到OgreSDK,打开OgreSDK,找到media,打开media文件夹,找到models,打开models文件夹,将mesh文件复制到此文件夹中 3.将导出mesh文件附带的材质文件放到OgreSDK的scripts (C:\OgreSDK\media\materials\scripts)中 4.将导出mesn文件时同时导出的图片放到OgreSDK的textures (C:\OgreSDK\media\materials\textures)中

存储管理实验报告.doc

存储管理实验报告

北方工业大学 《计算机操作系统》实验报告 实验名称存储管理实验序号 2 实验日期2013.11.27实验人 一、实验目的和要求 1.请求页式存储管理是一种常用的虚拟存储管理技术。本实验目的 是通过请求页式存储管理中页面置换算法的模拟设计,了解虚拟存储 技术的特点,掌握请求页式存储管理的页面置换算法。 二、相关背景知识 1.随机数产生办法 关于随机数产生办法, Linux 或 UNIX 系统提供函数 srand() 和 rand() ,分 别进行初始化和产生随机数。 三、实验内容 (1).通过随机数产生一个指令序列,共320条指令。指令的地址按下述原则生成: 1.50% 的指令是顺序执行的; 2.25% 的指令是均匀分布在前地址部分; 3.25% 的指令是均匀分布在后地址部 分;具体的实施方法是: 1.在[0, 319]的指令地址之间随机选取一起点 m; 2.顺序执行一条指令,即执行地址为 m+1 的指令; 3.在前地址[0,m+1]中随机选取一条指令并执行,该指令的地址为m’; 4.顺序执行一条指令,其地址为 m’+1; 5.在后地址 [m ’+2, 319]中随机选取一条指令并执行; 6.重复上述步骤 1~5,直到执行 320 次指令。 (2)将指令序列变换成页地址流,设 1.页面大小为 1K ; 2.用户内存容量为 4 页到 32 页; 3.用户虚存容量为 32K 。 在用户虚存中,按每 K 存放 10 条指令排列虚存地址,即 320 条指令在虚存 中存放的方式为: 第 0 条至第 9 条指令为第 0 页(对应虚存地址为 [0, 9]); 第 10 条至第 19 条指令为第 1 页(对应虚存地址为 [10, 19]); 第 310 条至第 319 条指令为第 31 页(对应虚存地址为 [310,319]); 按以上方式,用户指令可以组成 32 页。 (3)计算并输出下述各种算法在不同内存容量下的命中率。

操作系统实验五虚拟存储器管理

操作系统实验 实验五虚拟存储器管理 学号1115102015 姓名方茹 班级11 电子A 华侨大学电子工程系

实验五虚拟存储器管理 实验目的 1、理解虚拟存储器概念。 2、掌握分页式存储管理地址转换盒缺页中断。 实验内容与基本要求 1、模拟分页式存储管理中硬件的地址转换和产生缺页中断。 分页式虚拟存储系统是把作业信息的副本存放在磁盘上,当作业被选中时,可把作业的开始几页先装入主存且启动执行。为此,在为作业建立页表时,应说 明哪些页已在主存,哪些页尚未装入主存。作业执行 时,指令中的逻辑地址指出了参加运算的操作存放的页号和单元号,硬件的地址转 换机构按页号查页表,若该页对应标志为“ 1”,则表示该页 已在主存,这时根据关系式“绝对地址 =块号×块长 +单元号”计算出欲访问的主 存单元地址。如果块长为 2 的幂次,则可把块号作为高地址部分,把单元号作为低 地址部分,两者拼接而成绝对地址。若访问的页对 应标志为“ 0”,则表示该页不在主存,这时硬件发“缺页中断”信号, 有操作系统按该页在磁盘上的位置,把该页信息从磁盘读出装入主存后 再重新执行这条指令。设计一个“地址转换”程序来模拟硬件的地址转 换工作。当访问的页在主存时,则形成绝对地址,但不去模拟指令的执 行,而用输出转换后的地址来代替一条指令的执行。当访问的页不在主 存时,则输出“ * 该页页号”,表示产生了一次缺页中断。 2、用先进先出页面调度算法处理缺页中断。 FIFO 页面调度算法总是淘汰该作业中最先进入主存的那一页,因此可以用一个数组来表示该作业已在主存的页面。假定作业被选中时, 把开始的 m 个页面装入主存,则数组的元素可定为m 个。 实验报告内容 1、分页式存储管理和先进先出页面调度算法原理。 分页式存储管理的基本思想是把内存空间分成大小相等、位置固定

虚拟现实实验报告

虚拟现实实验报告 篇一:虚拟现实技术实验报告 虚拟现实技术实验报告 实验一:Sketch Up软件认识与使用 一、实验目的与要求: 1. 目的 通过本次实验,使学生掌握Sketch Up软件的基本架构,理解利用Sketch Up进行场景制作的基本步骤,能够熟练运用Sketch Up软件的主要功能及相关工具。 2. 要求 每位学生进行Sketch Up软件的安装和配置,操作练习Sketch Up的主要功能及相关工具,理解体会各种操作的执行结果,并独立总结撰写完成实验报告。 二、Sketch Up的主要功能: 边缘和平面:这是绘图最基本的元素 每个 Sketch Up 模型皆由两种元素组成:边缘和平面。边缘是直线,而平面是由几条边缘构成一个平面循环时所形成的平面形状。例如,矩形平面是由四条边缘以直角角度互相连接在一起所构成的。自己可在短时间内学会使用Sketch Up 的简单工具,从而绘制边缘和平面来建立模型。一切就是这么简单容易! 推/拉:从 2D 迅速转为 3D

使用 Sketch Up 专利设计的 [推/拉] 工具,可以将任何平面延伸成立体形状。单击鼠标就可开始延伸,移动鼠标,然后再单击即可停止延伸。自己可以将一个矩形推/拉成一个盒子。或绘制一个楼梯的轮廓并将其推/拉成立体的 3D 形状。想绘制一个窗户吗?只需在墙上推/拉出一个孔即可。Sketch Up 易于使用而广受欢迎,原因就在于其推/拉的功能。 精确测量:以精确度来进行作业处理 Sketch Up 特别适合在 3D 环境中进行迅速的绘图处理,但是它的功能不仅仅只是一只神奇的电子画笔而已。因为当自己在计算机上进行绘图处理时,自己在 Sketch Up 中所建立的一切对象都具有精确的尺寸。当自己准备好要建立模型时,自己可以随意根据自己想要的精确度来进行模型的建立。如果自己愿意,自己可以将模型的比例视图打印出来。如果自己有 Sketch Up Pro,自己甚至还可将自己的几何图形导出到 AutoCAD 和 3ds MAX 等其他程序内。 路径跟随:建立复杂的延伸和板条形状 使用 Sketch Up 创新万能的 [路径跟随] 工具,可以将平面沿预先定义的路径进行延伸以建立 3D 形状。沿 L 形线路延伸一个圆形即可建立一个弯管的模型。绘制瓶子的一半轮廓,然后使用 [路径跟随] 工具沿一个圆形来扫动,就能建立一个瓶子。自己甚至还可以使用 [路径跟随] 工具

南京中医药大学虚拟存储器管理实验

实验三虚拟存储管理 实验性质:验证 建议学时:3 实验目的: 存储管理的主要功能之一是合理的分配空间。请求页式管理是一种常用的虚拟存储管理技术。本实验的目的是请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换方法。 预习内容: 阅读教材《计算机操作系统》第四章,掌握存储器管理相关概念和原理。 实验内容: (1)通过随机数产生一个指令序列,共320条指令。指令的地址按下述原则生成: ①50%的指令是顺序执行的; ②25%的指令是均匀分布在前地址部分; ③25%的指令是均匀分布在后地址部分。 具体的实施方法是: ①在[0,319]的指令地址之间随机选取一起点m; ②顺序执行一条指令,即执行地址为m+1的指令; ③在前地址[0,m+1]中随机选取一条指令并执行,该指令的地址为m’; ④顺序执行一条指令,其地址为m’+1; ⑤在后地址[m’+2,319]中随机选取一条指令并执行; ⑥重复上述步骤,直至执行320次指令。 (2)将指令序列变换成页地址流。 设:①页面大小为1K; ②用户内存容量为10块到32块; ③用户虚存容量为32K; 在用户虚存中,按每页存放10条指令排列虚存地址,即320条指令在虚存中的存放方式为: 第0条~第9条指令为第0页(对应的虚存地址为[0,9]); 第10条~第19条指令为第1页(对应的虚存地址为[10,19]); …… 第310条~第319条指令为第31页(对应的虚存地址为[310,319]); 按以上方式,用户指令可组成32页。 (3)计算并输出下述各种算法在不同的内存容量下的缺页率。 ①先进先出的算法(FIFO); ②最近最少使用算法(LRU); ③最佳淘汰法(OPT):先淘汰最不常用的页地址; ④最少访问页面算法(LFU)。 缺页率=(页面失效次数)/(页地址流长度)= 缺页中断次数/ 320 在本实验中,页地址流的长度为320,页面失效次数为每次访问相应指令时,该指令所对应的页不在内存的次数。

网络存储实验报告

湖北文理学院《网络存储》 实验报告 专业班级:计科1211 姓名:*** 学号:*** 任课教师:李学峰 2014年11月16日

实验01 Windows 2003的磁盘阵列技术 一、实验目的 1.掌握在Windows 2003环境下做磁盘阵列的条件和方法。 2.掌握在Windows 2003环境下实现RAID0的方法。 3. 掌握在Windows 2003环境下实现RAID1的方法。 4. 掌握在Windows 2003环境下实现RAID5的方法。 5. 掌握在Windows 2003环境下实现恢复磁盘阵列数据的方法。 二、实验要求 1.在Windows 2003环境下实现RAID0 2.在Windows 2003环境下实现RAID1 3.在Windows 2003环境下实现RAID5 4.在Windows 2003环境下实现恢复磁盘阵列数据 三、实验原理 (一)磁盘阵列RAID技术的概述 RAID是一种磁盘容错技术,由两块以上的硬盘构成冗余,当某一块硬盘出现物理损坏时,换一块同型号的硬盘即可自行恢复数据。RAID有RAID0、RAID1、RAID5等。RAID 技术是要有硬件来支持的,即常说的RAID卡,如果没RAID卡或RAID芯片,还想做RAID,那就要使用软件RAID技术,微软Windows系统只有服务器版本才支持软件RAID技术,如Windows Server 2003等。 (二)带区卷(RAID0) 带区卷是将多个(2-32个)物理磁盘上的容量相同的空余空间组合成一个卷。需要注意的是,带区卷中的所有成员,其容量必须相同,而且是来自不同的物理磁盘。带区卷是Windows 2003所有磁盘管理功能中,运行速度最快的卷,但带区卷不具有扩展容量的功能。它在保存数据时将所有的数据按照64KB分成一块,这些大小为64KB的数据块被分散存放于组成带区卷的各个硬盘中。 (三)镜像卷(RAID1) 镜像卷是单一卷的两份相同的拷贝,每一份在一个硬盘上。它提供容错能力,又称为RAID1技术。 RAID1的原理是在两个硬盘之间建立完全的镜像,即所有数据会被同时存放到两个物理硬盘上,当一个磁盘出现故障时,系统仍然可以使用另一个磁盘内的数据,因此,它具备容错的功能。但它的磁盘利用率不高,只有50%。 四、实验设备 1.一台装有Windows Server 2003系统的虚拟机。 2.虚拟网卡一块,类型为“网桥模式”。 3.虚拟硬盘五块。 五、实验步骤 (一)组建RAID实验的环境 (二)初始化新添加的硬盘 (三)带区卷(RAID0的实现)

OS实验指导四——虚拟存储器管理

OS实验指导四——虚拟存储器管理

————————————————————————————————作者:————————————————————————————————日期: 2

《操作系统》实验指导四 开课实验室:A207、A209 2015/11/23 、2015/11/24 实验类型设计 实验项目(四)虚拟存储器管理实验 实验学时 4 一、实验目的 设计一个请求页式存储管理方案,并编写模拟程序实现。 二、设备与环境 1. 硬件设备:PC机一台 2. 软件环境:安装Windows操作系统或者Linux操作系统,并安装相关的程序开发 环境,如C \C++\Java 等编程语言环境。 三、实验要求 1) 上机前认真复习页面置换算法,熟悉FIFO算法和LRU页面分配和置换算法的过程; 2) 上机时独立编程、调试程序; 3) 根据具体实验要求,完成好实验报告(包括实验的目的、内容、要求、源程序、实例运行 结果截图)。 四、实验内容 1、问题描述: 设计程序模拟FIFO和LRU页面置换算法的工作过程。假设内存中分配给每个进程的最小物理块数为m,在进程运行过程中要访问的页面个数为n,页面访问序列为P1, … ,Pn,分别利用不同的页面置换算法调度进程的页面访问序列,给出页面访问序列的置换过程,并计算每种算法缺页次数和缺页率。 2、程序具体要求如下: 编写程序用来模拟虚拟页式存储管理中的页面置换 要求: 1)快表页面固定为4块 2)从键盘输入N个页面号 3)输出每次物理块中的页面号和缺页次数,缺页率 4)实现算法选择

3、程序流程图 3、源程序参考: (1)FIFO 算法部分 #include "stdio.h" #define n 12 #define m 4 void main() { int ym[n],i,j,q,mem[m]={0},table[m][n]; char flag,f[n]; printf("请输入页面访问序列\n "); for(i =0;i

实验四 虚拟存储器管理实验

实验四虚拟存储器管理实验 ◆实验名称:存储器管理实验 ◆仪器、设备:计算机 ◆参考资料:操作系统实验指导书 ◆实验目的: 设计一个请求页式存储管理方案,并编写模拟程序实现。 ◆实验内容: 编写程序用来模拟虚拟页式存储管理中的页面置换 要求: 1.快表页面固定为4块 2.从键盘输入N个页面号 3.输出每次物理块中的页面号和缺页次数,缺页率 ◆实验原理、数据(程序)记录: #define PAGES 4 /* 物理块数*/ #define N 16 /*最多输入的页面号*/ int pages[PAGES][2]; /*page[i][0]保存页面号,page[i][1]保存页面存留时间*/ int queue[N]; /*页面号数组*/ void initialise(void) /*------------初始化:快表和页面号数组++++++++++++++*/ { int i; for(i=0;i

虚拟现实实习报告

虚拟现实实习报告 篇一:VR虚拟现实实验报告 《虚拟现实技术》课堂实验报告 (XX-XX学年第2学期) 班级:地信一班 姓名:冯正英 学号: 3 实验一:Sketch Up软件认识与使用 一、实验目的与要求: 1. 目的 通过本次实验,使学生掌握Sketch Up软件的基本架构,理解利用Sketch Up进行场景制作的基本步骤,能够熟练运用Sketch Up软件的主要功能及相关工具。 2. 要求 每位学生进行Sketch Up软件的安装和配置,操作练习Sketch Up的主要功能及相关工具,理解体会各种操作的执行结果,并独立总结撰写完成实验报告。 二、Sketch up的主要功能: 1、独特而便捷的推拉工具:功能强大且操作简便的推拉工具,所有的造型几乎都可从推拉方式中完成。 2、可汇入导出AutoCAD的各式图面:可读取与写出各版本的AutoCAD DWG格式,并可自模型中汇出平、立、剖面

的DWG图面,让您延用原有的设计而无须重新处理。 3、精确的尺寸输入与文字注释:所有的外型不再只是大约的视觉比例,透过数值输入框可赋予精密而正确的尺寸,也能直接在立体图面上进行尺寸标注和注释,大大地增强图面解说力。 4、随贴即用的材质彩绘功能:任何的图像档均能搭配彩绘工具贴附于模型表面,无须经过彩现计算,便能直接呈现出材质的原貌,既快速又有效率。所有材质均可立即编修大小比例、角度与扭转变形,并直接调整透明度。 5、随贴即用的材质彩绘功能:任何的图像档均能搭配彩绘工具贴附于模型表面,无须经过彩现计算,便能直接呈现出材质的原貌,既快速又有效率。所有材质均可立即编修大小比例、角度与扭转变形,并直接调整透明度。 6、动态剖面:提供即时互动的剖面功能,清楚的呈现出剖切后的空间状态。透过场景功能,还可以动态模拟剖面的生成效果。 7、卓越的路径跟随建构能力:只需设计出所要的断面,便能沿着路径组合出各种复杂的造型。 8、全新的Layout布图能力:以类似于AutoCAD图纸空间的方式,将多种不同的图面角度和内容,依您的需要置放在Layout图纸上,并可直接标注尺寸、注释和加注图框,完全不需要再使用传统的2D软件即可完成图说。

存储管理实验报告

综合性实验报告 一、实验目的 通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式管理的页面置换算法。 页面置换算法是虚拟存储管理实现的关键,通过本次实验理解内存页面调度的机制,在模拟实现FIFO、LRU、OPT、LFU、NUR几种经典页面置换算法的基础上,比较各种置换算法的效率及优缺点,从而了解虚拟存储实现的过程。 二、总体设计 1、编写函数计算并输出下述各种算法的命中率 ①OPT页面置换算法 OPT所选择被淘汰的页面是已调入内存,且在以后永不使用的,或是在最长时间内不再被访问的页面。因此如何找出这样的页面是该算法 的关键。可为每个页面设置一个步长变量,其初值为一足够大的数,对 于不在内存的页面,将其值重置为零,对于位于内存的页面,其值重置 为当前访问页面与之后首次出现该页面时两者之间的距离,因此该值越 大表示该页是在最长时间内不再被访问的页面,可以选择其作为换出页 面。 ②FIFO页面置换算法 FIFO总是选择最先进入内存的页面予以淘汰,因此可设置一个先进先出的忙页帧队列,新调入内存的页面挂在该队列的尾部,而当无空闲 页帧时,可从该队列首部取下一个页帧作为空闲页帧,进而调入所需页 面。 ③LRU页面置换算法 LRU是根据页面调入内存后的使用情况进行决策的,它利用“最近的过去”作为“最近的将来”的近似,选择最近最久未使用的页面予以 淘汰。该算法主要借助于页面结构中的访问时间time来实现,time记

录了一个页面上次的访问时间,因此,当须淘汰一个页面时,选择处于 内存的页面中其time值最小的页面,即最近最久未使用的页面予以淘 汰。 ④LFU页面置换算法 LFU要求为每个页面配置一个计数器(即页面结构中的counter),一旦某页被访问,则将其计数器的值加1,在需要选择一页置换时,则 将选择其计数器值最小的页面,即内存中访问次数最少的页面进行淘 汰。 ⑤NUR页面置换算法 NUR要求为每个页面设置一位访问位(该访问位仍可使用页面结构中的counter表示),当某页被访问时,其访问位counter置为1。需要 进行页面置换时,置换算法从替换指针开始(初始时指向第一个页面) 顺序检查处于内存中的各个页面,如果其访问位为0,就选择该页换出, 否则替换指针下移继续向下查找。如果内存中的所有页面扫描完毕未找 到访问位为0的页面,则将替换指针重新指向第一个页面,同时将内存 中所有页面的访问位置0,当开始下一轮扫描时,便一定能找到counter 为0的页面。 2、在主函数中生成要求的指令序列,并将其转换成页地址流;在不同 的内存容量下调用上述函数使其计算并输出相应的命中率。 三、实验步骤(包括主要步骤、代码分析等) 主要步骤: 、通过随机数产生一个指令序列,共320条指令。其地址按下述原则生成: ①50%的指令是顺序执行的; ②25%的指令是均匀分布在前地址部分; ③25%的指令是均匀分布在后地址部分; 具体的实施方法是: A.在[0,319]的指令地址之间随机选区一起点M; B.顺序执行一条指令,即执行地址为M+1的指令; C.在前地址[0,M+1]中随机选取一条指令并执行,该指令的地址为M’; D.顺序执行一条指令,其地址为M’+1; E.在后地址[M’+2,319]中随机选取一条指令并执行;

虚拟现实技术实验报告----创建VRML基本造型

虚拟现实技术实验报告----创建VRML基本 造型 华北水利水电学院虚拟现实技术实验报告 20XX~20XX学年第二学期 20XX 级计算机科学与技术专业班级: 20XX153 学号: 20XX15320 姓名:李晓娜 实验二创建VRML基本形体 一、实验目的: 掌握创建虚拟现实复杂形体的方法与步骤,掌握虚拟现实背景环境、光照、纹理贴图、视点的创建与使用。 二、试验内容: 1)虚拟现实复杂组合形体的构建 2)虚拟现实背景建模与特殊场景效果的实现 3)虚拟现实光照与纹理贴图 4)虚拟现实视点的创建与使用 三、试验步骤: 1)虚拟现实复杂组合形体的构建 1、设置背景颜色,skyColor 1 1 1,即白色。 2、构造Shape造型节点。设置外观,材质漫反射颜色为:,即红色;几何造型为Box,其size为:10 5。 3、创建坐标变换节点。位置变换translation为- 0 ,旋转rotation为:1 0 0 ,子结点为挤压造型,外观颜色

设置为红色,其中crossSection [0 0 0 2 0 2 ] spine [ 0 0 0 9 0 0] solid 为:FALSE。 4、构造坐标变换节点,translation 为:2 - - rotation为: 0 1 0 其子结点children为文本造型,字符串为:“20XX15320”。 5、构造坐标变换节点,translation为:-4 -5 ,其子结点children中定义shape节点造型,命名为:leg,材质漫反射颜色为红色,几何造型节点为:Box,其size为: 6 6、连续创建3个坐标变换节点,分别设置其translation 值,子结点children引用leg。 7、创建桌子下面的横木。构造坐标变换节点,translation为:-4 -6 0 子结点children中为shape节点命名为:hengmu,外观漫反射颜色为:红色;几何造型为:Box,大小size为: 3。然后再构造一个坐标变换节点,子结点引用hengmu。 2)虚拟现实背景建模与特殊场景效果的实现 1、背景建模。构建空间全景:skyAngle [ ] skyColor [ 0 0 1 0 1 1 ] groundAngle [ ] groundColor [ ] 2、创建树坐标变换节点,命名为Tree,子节点项目children中的值为老师所给的素材shu, 第 1 页共 4 页 以备以后调用。

实验四 虚拟存储器管理

实验四虚拟存储器管理 一、实验目的 1、为了更好的配合《操作系统》有关虚拟存储器管理章节的教学。 2、加深和巩固学生对于请求页式存储管理的了解和掌握。 3、提高学生的上机和编程过程中处理具体问题的能力。 二、实验内容 请求页式存储管理是一种常用的虚拟存储管理技术。本实验的目的是通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法。 1.通过随机数产生一个指令序列,共320条指令。 指令的地址按下述原则生成: a.50%的指令是顺序执行的。 b.25%的指令是均匀分布在前地址部分。 c.25%的指令是均匀分布在后地址部分。 具体的实施方法是: a.在[0,319]指令地址之间随机选取一起点; b.顺序执行一条指令,即执行地址为m+1的指令; c.在前地址[0,m+1]中随机选取一条指令并执行,该指令的地址为m’; d.顺序执行一条指令,其地址为m’; e.在后地址[m’+2,319]中随机选取一条指令并执行; f.重复上述步骤a~e,直到执行320次指令。 2.将指令序列变换成为页地址流 设: a.页面大小为1K; b.用户内存容量为4到32页; c.用户虚存容量为32K。 在用户虚存中,按每K存放10条指令排列虚存地址,即320条指令在虚存中的存放方式为: 第0条~第9条指令为第0页,对应虚存地址为[0,9];

第10条~第19条指令为第1页,对应虚存地址为[10,19] . . 第310条~第319条指令为第31页,对应虚存地址为[310,319]。 按以上方式,用户指令可组成32页。 3、输出下述各种算法在不同内存容量下的命中率。 a.先进先出的算法; b.最近最少访问算法; c.最近最不经常使用算法。 其中:命中率=1-页面失效次数/页地址流长度 页地址流长度为320,页面失效次数为每次访问相同指令时,该指令所对应的页不在内存的次数。 三、实验要求 实验课时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_kernel( ); if (!page) return -1;

虚拟存储器管理实验报告

淮海工学院计算机科学系实验报告书 课程名:《操作系统》 题目:虚拟存储器管理 页面置换算法模拟实验 班级: 学号: 姓名:

一、实验目的与要求 1.目的: 请求页式虚存管理是常用的虚拟存储管理方案之一。通过请求页式虚存管理中对页面置换算法的模拟,有助于理解虚拟存储技术的特点,并加深对请求页式虚存管理的页面调度算法的理解。 2.要求: 本实验要求使用C语言编程模拟一个拥有若干个虚页的进程在给定的若干个实页中运行、并在缺页中断发生时分别使用FIFO和LRU算法进行页面置换的情形。其中虚页的个数可以事先给定(例如10个),对这些虚页访问的页地址流(其长度可以事先给定,例如20次虚页访问)可以由程序随机产生,也可以事先保存在文件中。要求程序运行时屏幕能显示出置换过程中的状态信息并输出访问结束时的页面命中率。程序应允许通过为该进程分配不同的实页数,来比较两种置换算法的稳定性。 二、实验说明 1.设计中虚页和实页的表示 本设计利用C语言的结构体来描述虚页和实页的结构。 在虚页结构中,pn代表虚页号,因为共10个虚页,所以pn的取值范围是0—9。pfn代表实页号,当一虚页未装入实页时,此项值为-1;当该虚页已装入某一实页时,此项值为所装入的实页的实页号pfn。time项在FIFO算法中不使用,在LRU中用来存放对该虚页的最近访问时间。 在实页结构中中,pn代表虚页号,表示pn所代表的虚页目前正放在此实页中。pfn代表实页号,取值范围(0—n-1)由动态指派的实页数n所决定。next是一个指向实页结构体的指针,用于多个实页以链表形式组织起来,关于实页链表的组织详见下面第4点。 2.关于缺页次数的统计 为计算命中率,需要统计在20次的虚页访问中命中的次数。为此,程序应设置一个计数器count,来统计虚页命中发生的次数。每当所访问的虚页的pfn项值不为-1,表示此虚页已被装入某实页内, 此虚页被命中,count加1。最终命中率=count/20*100%。 3.LRU算法中“最近最久未用”页面的确定 为了能找到“最近最久未用”的虚页面,程序中可引入一个时间计数器countime,每当要访问 一个虚页面时,countime的值加1,然后将所要访问的虚页的time项值设置为增值后的当前

虚拟现实技术-实习报告

虚拟现实技术小组实习报告 学院遥感信息工程学院 班级XXX班 组员 汤XX 王XX 郑XX 指导教师XXX 日期20XX.11.XX

(一)小组实习报告 一、实习目的 1、了解和熟悉了3ds max、unity 3D等虚拟现实设计建模及开发软件各自的功能和操作。 2、了解并掌握利用c++进行虚拟现实漫游系统开发的基本算法和理念。 3、加深对课本所学的理论知识的理解和掌握,掌握虚拟现实技术的基本概念、原理、分类、特性等,学会利用一些常用的虚拟现实设计软件进行虚拟现实系统的开发设计。 二、实习内容 设计并实现了古代小镇五侠镇虚拟现实的漫游系统。本次实习我们小组在3DS MAX里进行三维场景创建、修改导出为FBX模型之后,导入unity3D再通过使用unity3D 进行三维漫游系统设计与开发,最后导出exe文件。 三、实习实现方案 对于此次虚拟现实漫游系统设计,我们组考虑以古代小镇为背景场景设计建模漫游系统对象,所建立的漫游系统将包括小镇房屋、地形、河流、喷泉、天气变化等基本对象,使用unity3D添加河流、光照、喷泉等特效;使用脚本编辑完成天气的变化;每个房屋和树木进行碰撞体添加之后完成碰撞检测功能;通过添加粒子系统完成了落叶等效果。 3.1 3dsmax简介 3dsmax是美国Autodesk公司旗下优秀的电脑三维动画、模型和渲染软件,全称:3D Studio MAX。该软件早期名为3DS,是应用在dos下的三维软件,之后随着PC机的高速发展,Autodesk公司于1993年开始研发基于PC 下的三维软件,终于在1996年3D Studio MAX V1.0问世,图形化的操作界面,使应用更为方便。3D Studio MAX从V4.0开始简写成3dsmax,随后历经V1.2,2.5,3.0,4.0,5.0(未细分).....Autodesk坚持不懈的努力不断更新更高级的版本,逐步完善了灯光、材质渲染,模型和动画制作。广泛应用于三维动画、影视制作、建筑设计等各种静态、动态场景的模拟制作。 3.2 Unity 3D简介 Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游

相关主题
文本预览
相关文档 最新文档