最近最久未使用页面置换算法

#include

void main()

{

int m,i=0,j=0,j0,min,n=0,s,page,k=0,A[100],B[100],C[100],count=0;

printf("请输入页框(物理块) 数:");

scanf("%d",&m);

printf("请输入页面顺序(以-999结束):\n");

scanf("%d",&page);

while(page!=-999)

{

A[i]=page;

i++;n++;

scanf("%d",&page);

}

printf("\n---------------最近最久未被使用(LRU)页面置换算法--------------------------------\n"); printf("\t页面顺序\t 内存块\t \t是否缺页(Y/N)\n");

i=0;

while(i

{

printf("\t%d\t\t",A[i]); /* 一若内存块B[]未满, 直接将页面A[]装入,C[]为所对应B[]的出现位*/ if(i

{

B[j]=A[i];i++;

C[j]=i;

j++;

for(j0=0;j0

printf("%3d",B[j0]);

printf("\t\tY\n");

count++;

}

/* 二. 若内存块B 已满, 分两种情况*/

else

{

for(j=0;j

{

if(A[i]!=B[j])k++;

else

break;

}

//1.原内存块B 无此页面, 找C 值最小(即最近最久未使用), 换出页面A//

if(k==m)

{

min=C[0];

s=0;

for(j0=0;j0

{

if(C[j0]

{

min=C[j0];

s=j0;

}

}

B[s]=A[i];i++;

C[s]=i;

j++;

for(j0=0;j0

printf("%3d",B[j0]);

printf("\t\tY\n");

count++;

}

//2.原内存块B 有此页面, 改变B 所对应的C 所出现的位置, 再读下一页面//

else

{

i++;C[k]=i;

printf("\n");

}

k=0;

}

}

printf("\n---------- 缺页中断数为%d 总页数为%d 缺页率为%.2f --------------------\n\n",count,i,(float)count/i); }

#include

void main()

{

int m,i=0,j=0,j0,min,n=0,s,page,k=0,A[100],B[100],C[100],count=0;

printf("请输入页框(物理块) 数:");

scanf("%d",&m);

printf("请输入页面顺序(以-999结束):\n");

scanf("%d",&page);

while(page!=-999)

{

A[i]=page;

i++;n++;

scanf("%d",&page);

}

printf("\n---------------最近最久未被使用(LRU)页面置换算法--------------------------------\n"); printf("\t页面顺序\t 内存块\t \t是否缺页(Y/N)\n");

i=0;

while(i

{

printf("\t%d\t\t",A[i]); /* 一若内存块B[]未满, 直接将页面A[]装入,C[]为所对应B[]的出现位*/ if(i

{

B[j]=A[i];i++;

C[j]=i;

j++;

for(j0=0;j0

printf("%3d",B[j0]);

printf("\t\tY\n");

count++;

}

/* 二. 若内存块B 已满, 分两种情况*/

else

{

for(j=0;j

{

if(A[i]!=B[j])k++;

else

break;

}

//1.原内存块B 无此页面, 找C 值最小(即最近最久未使用), 换出页面A//

if(k==m)

{

min=C[0];

s=0;

for(j0=0;j0

{

if(C[j0]

{

min=C[j0];

s=j0;

}

}

B[s]=A[i];i++;

C[s]=i;

j++;

for(j0=0;j0

printf("%3d",B[j0]);

printf("\t\tY\n");

count++;

}

//2.原内存块B 有此页面, 改变B 所对应的C 所出现的位置, 再读下一页面//

else

{

i++;C[k]=i;

printf("\n");

}

k=0;

}

}

printf("\n---------- 缺页中断数为%d 总页数为%d 缺页率为%.2f --------------------\n\n",count,i,(float)count/i); }


相关文章

  • 课程设计 请求页式存储器管理
  • 课程设计说明书 题目: 请求页式存储器管理程序 院 系: 计算机科学与工程学院 专业班级: 计算机09-15班 学 号: [1**********]5 学生姓名: 某某某 指导教师: 某 某 2011年 12 月 18日 日 摘 要 分页存 ...查看


  • 大连理工大学操作系统实验报告
  • 大连理工大学 本科实验报告 课程名称:操作系统实验 学院(系):计算机科学与技术学院 专 班 学业:计算机科学与技术级:号:电计 学生姓名: 年月日 实验项目列表序号 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...查看


  • 模拟比较页面置换页算法及缺页率 源代码
  • #include #include #include int add[256]/*地址*/,page[256]/*页面*/; int k,j,ram,t; float rate;/*缺页率*/ struct s1 { int page; i ...查看


  • 操作系统第2阶段测试题
  • 考试科目:<操作系统>第5章至第7章(总分100分) 时间:90分钟 一. 名词解释(12分) 1. 2. 3. 系统抖动:导致系统效率急剧下降的主存和辅存之间的频繁页面置换现象称为颠簸,又称为系统抖动. 置换算法:当要索取一页 ...查看


  • 软件评测师教程知识点精讲(一)
  • 软件评测师教程知识点精讲(一) 软件评测师考试属于全国计算机技术与软件专业技术资格考试中的一个中级考试.下面由希赛小编为大家整理了软件评测师教程中几个重要的知识点,希望对大家有所帮助. 操作系统 操作系统定义:用以控制和管理系统资源,方便用 ...查看


  • 东南大学操作系统实验报告
  • 操作系统课程设计 操作系统实验 -- 基于WRK 的进程工作集实验 1 掌握虚拟机和调试工具等的使用. 2 阅读Windows 源码中工作集管理相关部分. 3 修改Windows 内核中页面置换算法,深入理解工作集和页面置换算法如何在一个完 ...查看


  • 页面置换算法
  • 页面置换算法 实验名称:页面置换算法 实验目的:编写页面置换算法演示程序,理解页面置换算法在虚拟存储器管理中的作用,理解常见的页面置换算法,学会OPT .LRU 和FIFO 算法的应用. 实验学时:2 实验内容:设计并编写一个页面置换算法模 ...查看


  • 页面置换算法模拟(原创)
  • #inlcde i#nculed >#nilcde #efdie BLnOKC_MXA_SZI 2E0//最物大块大理小e nmu{F IO=1,LFUR,OP}T s;truc node_pagt{ ein addrtss;/e指/ ...查看


  • FIFO页面置换算法
  • 实验题目:页面置换算法(FIFO) 院 系: 班级学号: 姓 名: 指导老师: 二 0 一 四 年 上 学 期  实验题目: 页面置换FIFO算法  实验内容: 编程实现页面置换FIFO算法.  实验目的:理解并掌握模拟分页式虚拟存储 ...查看


热门内容