第一范文网 - 专业文章范例文档资料分享平台

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

来源:用户分享 时间:2025/5/31 13:06:03 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

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

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<<\页面置换\

搜索更多关于: 操作系统实验(四)实验报告虚拟内存 的文档
操作系统实验(四)实验报告虚拟内存.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c6j59y8ftkj03gjy5zd2f62h6002tp400l6f_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top