一个先近先出置换算法,一个最近最久未使用算法,模拟一下过程。
/*页面置换算法,先近先出算法,就是个队列操作
*/
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
//内存可提供的页面的个数
#define MEMERY_PAGE_NUM 3
//FIFO页面置换算法的数据结构
struct FIFOQueue
{
int number; //数据个数
int data[MEMERY_PAGE_NUM]; //数据(页面代号)
}fifo;
//初始化操作
void Init();
//一组对对列的操作
//加入对列
void Add(int pageID);
//在对列中找指定的数据
int Find(int pageID);
//打印操作
void PrintQueue();
int main()
{
Init();
//随机10个数据测试
time_t t;
srand(unsigned(time(&t)));
int i;
int tmp;
for(i = 0;i<10;++i)
{
tmp = rand()%10;
Add(tmp);
PrintQueue();
}
return 0;
}
void Init()
{
fifo.number = 0;
int i;
for(i = 0;i<MEMERY_PAGE_NUM;i++)
{
fifo.data[i] = -1;
}
}
void Add(int pageID)
{
printf("加入页面%d/n",pageID);
if(fifo.number < MEMERY_PAGE_NUM)
&nb

该博客介绍了如何用C语言实现两种常见的页面置换算法:FIFO(先进先出)和LRU(最近最久未使用)。通过创建特定的数据结构并模拟页面替换过程,展示了这两种算法的基本操作和工作原理。
最低0.47元/天 解锁文章
2518

被折叠的 条评论
为什么被折叠?



