好文档 - 专业文书写作范文服务资料分享网站

操作系统实验(四)实验报告虚拟内存

天下 分享 时间: 加入收藏 我要投稿 点赞

操作系统实验(四) 虚拟内存

1、实验题目

页面置换算法模拟——OPT、FIFO和LRU算法

2、实验目的

了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法,如最佳

(Optimal)置换算法、先进先出(Fisrt In First Out)置换算法和最近最久未使用(Least Recently Used)置换算法

3、实验内容

1)OPT算法:需要发生页面置换时,算法总是选择在将来最不可能访问的

页面进行置换。

2)FIFO算法:算法总是选择在队列中等待时间最长的页面进行置换。 3)LRU算法:如果某一个页面被访问了,它很可能还要被访问;相反,如果它长时间不被访问,那么,在最近未来是不大可能被访问的。

4、程序代码

#include #include #include #include

#define L 30///页面走向长度最大为30

using namespace std;

int M=4; ///内存块 struct P///定义一个结构体 {

int num,time; }p[30];

int Input(int m,P p[L])///打印页面走向状态 {

m=30; int i,j;

j=time(NULL);///取时钟时间

srand(j);///以时钟时间x为种子,初始化随机数发生器 cout<<\页面走向: \ for(i=0; i

p[i].num=rand( );///产生1到10之间的随即数放到数组p中 p[i].time=0;

cout<

cout<

}

void print(P *page1)///打印当前的页面 {

P *page=new P[M]; page=page1; for(int i=0; i

cout<

int Search(int e,P *page1 )///寻找内存块中与e相同的块号 {

P *page=new P[M]; page=page1;

for(int i=0; i

int Max(P *page1)///寻找最近最长未使用的页面 用于OPT算法 {

P *page=new P[M]; page=page1;

int e=page[0].time,i=0;

while(i

if(e

for( i=0; i

int Count(P *page1,int i,int t,P p[L])///记录当前内存块中页面离下次使用间隔长度 用于OPT算法 {

P *page=new P[M]; page=page1; int count=0; for(int j=i; j

if(page[t].num==p[j].num )break;///当前页面再次被访问时循环结束 else count++;///否则count+1 }

return count;///返回count的值 }

int main() {

int c=1; int m=0,t=0; float n=0;///缺页次数

m=Input(m,p);///调用input函数,返回m值 M=4;

P *page=new P[M]; ///do

while(c==1||c==2||c==3) {

int i=0;

for(i=0; i

page[i].num=0; page[i].time=m-1-i; }

cout<<\页面置换\

操作系统实验(四)实验报告虚拟内存

操作系统实验(四)虚拟内存1、实验题目页面置换算法模拟——OPT、FIFO和LRU算法2、实验目的了解虚拟存储技术的特点,掌握请求页式存储管理的页面置换算法,如最佳(Optimal)置换算法、先进先出(FisrtInFirstOut)置换算法和最近最久未
推荐度:
点击下载文档文档为doc格式
6j59y8ftkj03gjy5zd2f62h6002tp400l6f
领取福利

微信扫码领取福利

微信扫码分享