c语言如何改变算法顺序,c语言编写页面置换算法

//熬夜弄出来的,记得加分哦

#include

void Print(int bc[],int blockCount)

{

for(int i=0;i=k)

{

k=a[i];

j=i;

}

}

return j;

}

void LRU(int pc[],int bc[],int pageCount,int blockCount)

{

printf("1:LRU置换算法

");

if(pageCount=max)

{

max=k;

blockIndex=j;

}

}

bc[blockIndex]=pc[i];

}

noPage ;

//printf("物理快情况:

");

//Print(bc,blockCount);

}

//printf("

");

}

printf("OPT缺页次数为:%d

",noPage);

printf("OPT缺页率为:%。

2f%%

",(float)noPage/pageCount*100);

}

}

int main()

{

int pageCount,blockCount,i,pc[100];

printf("输入页面数

");

scanf("%d",&pageCount);

printf("输入页面走向

");

for(i=0;i

{

scanf("%d",&pc[i]);

}

blockCount=3;//物理块数

int bc1[100];

printf("

");

FIFO(pc,bc1,pageCount,blockCount);

int bc2[100];

printf("

");

LRU(pc,bc2,pageCount,blockCount);

int bc3[100];

printf("

");

Optiomal(pc,bc3,pageCount,blockCount);

return 0;

}。

全部

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
FIFO(First In First Out)算法是一种简单的页面置换算法,它按照页面调入内存的先后顺序进行置换。下面是一个用C语言实现FIFO算法的示例代码: ```c #include <stdio.h> #include <stdlib.h> #define MAX_PAGES 10 // 内存中最多存放的页面数 int main() { int pages[MAX_PAGES]; // 存储当前内存中的页面 int num_pages = 0; // 当前内存中页面数量 int page_faults = 0; // 页面缺失次数 int next_page = 0; // 下一个要被置换的页面 int i, j; // 初始化内存中的页面 for (i = 0; i < MAX_PAGES; i++) { pages[i] = -1; } // 读入页面序列,以-1作为结束标志 int page_num; printf("请输入页面序列(以-1作为结束标志):\n"); while (scanf("%d", &page_num) == 1 && page_num != -1) { // 检查页面是否已经在内存中 int found = 0; for (i = 0; i < num_pages; i++) { if (pages[i] == page_num) { found = 1; break; } } // 如果页面不在内存中,进行页面置换 if (found == 0) { page_faults++; if (num_pages < MAX_PAGES) { // 内存未满,直接将页面加入内存 pages[num_pages] = page_num; num_pages++; } else { // 内存已满,置换最先进入内存的页面 pages[next_page] = page_num; next_page = (next_page + 1) % MAX_PAGES; } } // 输出当前内存中的页面 printf("当前内存状态:"); for (j = 0; j < num_pages; j++) { printf("%d ", pages[j]); } printf("\n"); } // 输出页面缺失率 printf("页面缺失次数:%d\n", page_faults); printf("页面缺失率:%.2f%%\n", (float)page_faults / (float)(i-1) * 100); return 0; } ``` 这个程序中,我们首先初始化内存中的页面为-1,表示内存为空。然后读入页面序列,对于每个页面,我们首先检查它是否已经在内存中。如果页面不在内存中,我们将其加入内存中。如果内存已满,我们就需要置换掉最先进入内存的页面,也就是next_page指向的页面。最后,我们输出当前内存中的页面,以及页面缺失次数和页面缺失率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值