下载此文档

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


文档分类:IT计算机 | 页数:约12页 举报非法文档有奖
1/12
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/12 下载此文档
文档列表 文档介绍
实验三虚拟存储管理
实验性质:验证
建议学时: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,页面失效次数为每次访问相应指令时,该指令所对应的页不在内存的次数。
(4)随机数产生办法
关于随机数产生办法,可以使用系统提供函数rand(),分别进行初始化和产生随机数。例如:rand();语句可初始化的一个随机数;a[0]=10*rand()/32767*319+1;
a[1]=10*rand()/32767*a[0];
语句可用来产生a[0]与a[1]中的随机数。
实验指导
1、数据类型定义
(1)页面类型
struct pl_type { int pn; //pn为页号
int pfn; //pfn为块号
};
(2)分配给进程的物理块链表
struct pfc_type{ int pn, pfn;
struct pfc_type *next;
};
2、函数定义
void initialize( ); //初始化函数,给每个相关的页面赋值
void FIFO( ); //计算使用FIFO算法时的缺页率
void LRU( ); // 计算使用LRU算法时的缺页率
void OPT( ); //计算使用OPT算法时的缺页率
void LFU( ); //计算使用LFU算法时的缺页率
变量定义
int a[total_struction]; //指令流数据组
int page[total_struction]; //页面访问序列
int total_pf; //用户进程被分配的内存物理块数
pl_type p[total_vp]; //页表(初始化时所有页的pfn均为-1)
pfc_type *freepf_head,*busypf_head, *busypf_tail;
int disaffect; //缺页率
程序框架:
#include<>
#define total_struction 320 //指令条数
#define total_vp 32 //逻辑页数
struct pl_type {
int pn ,pfn,counter,time;
};
pl_type p[total_vp];
struct pfc_type{
int pn , pfn;
struct pfc_type *next;
};
pfc_type pfc[total_vp],*freepf_head,*busypf_head, *busypf_tail;
int diseffect, a[total_struction];
int page[total_struction];
void initialize( ); //页表初始化,创建链表,

南京中医药大学虚拟存储器管理实验 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数12
  • 收藏数0 收藏
  • 顶次数0
  • 上传人164922429
  • 文件大小0 KB
  • 时间2014-01-01
最近更新