C语言模拟LRU页面置换算法

 时间:2026-02-15 16:58:08

1、首先打开VC++6.0

C语言模拟LRU页面置换算法

2、选择文件,新建

C语言模拟LRU页面置换算法

3、选择C++ source file 新建一个空白文档

C语言模拟LRU页面置换算法

4、首先声明头文件和常量

#include<stdio.h>

#include<stdlib.h>

#define PAGENUM 6 /*主存中允许的最大的页数*/

#define MAXPAGENUM 15 /* 一个程序包含的最大页数*/

C语言模拟LRU页面置换算法

5、定义栈的结构  即置换器

typedef struct stack

{

int page[PAGENUM];

int head;

}PAGER;

C语言模拟LRU页面置换算法

6、定义一个置换器

PAGER pager;其实就是声明一个pager对象

C语言模拟LRU页面置换算法

7、栈的初始化

void InitPager()

{

int top = 0;

int i,j,tmp;

int r;

randomize();

r = random(MAXPAGENUM);

pager.page[top++] = r;

while(top < PAGENUM )

{

       randomize();

r = random(MAXPAGENUM);

for(j =0;j<top;j++)

{

if(r == pager.page[j])

{

break;

}

if(j == top-1)

pager.page[top++] = r;

}

}

pager.head = PAGENUM - 1;

}

C语言模拟LRU页面置换算法

8、栈中成员的移动,即移动页面的操作

void MovingPage(int Begin )

{

int i;

for(i = Begin; i < PAGENUM-1; i++)

{

pager.page[i]  = pager.page[i+1] ;

}

}

C语言模拟LRU页面置换算法

9、出栈操作,即 交换出页面的操作

void PopPage(int p)

{

MovingPage(p);

pager.head = PAGENUM - 2;

}

C语言模拟LRU页面置换算法

10、入栈操作 ,即换进新页面的操作

void PushPage(int page)

{

pager.head = PAGENUM-1;

pager.page[pager.head] = page;

}

C语言模拟LRU页面置换算法

11、/*打印主存中的页面*/

void printPager()

{

       int i;

printf("The pages in the pager is:");

for(i = 0; i< PAGENUM;i++)

{

printf(" %d ",pager.page[i]);

}

printf("\n");

}

C语言模拟LRU页面置换算法

12、处理页面的换进和换出

void PagingProcess()

{

int rdm;

int i;

randomize();

rdm = random(MAXPAGENUM);

for(i = 0; i< PAGENUM; i++)

{

if(rdm == pager.page[i])

{

printPager();

printf("The page [%d]  will be accessed\n",rdm);

PopPage(i);

PushPage(rdm);

printPager();

break;

}

if(i == PAGENUM-1)

{

printPager();

printf("The page [0]  will be paged out\n");

PopPage(0);

printf("The page [%d]  will be paged in\n",rdm);

PushPage(rdm);

printPager();

}

}

}

C语言模拟LRU页面置换算法

13、主函数

int main()

{

int i;

for(i = 0; i<3; i++)

{

InitPager();

printf("ROUND %d:\n\n",i+1);

PagingProcess();

}

getch();

return 0;

}

C语言模拟LRU页面置换算法

  • 地铁检修工作如何?比如工资待遇,工作条件,晋升的希望方法大不大?求帮助详细点。
  • 垂直帘是由哪些部分组成的?
  • word怎么转pdf
  • 切菜总粘刀怎么办
  • wps如何制作证件照
  • 热门搜索
    杭州旅游攻略 旅游的好处 珠海旅游攻略 五一旅游 南京旅游攻略 江浙沪旅游 旅游英语作文 旅游景点排行 老挝旅游 江西旅游景点大全