资源简介
这个呢是大二的操作系统的课程设计,我选的页面置换,好久没看了,运行没问题可能排版什么的不太妥当,大家参考参考就好啦,不过我不知道为什么发出去都要积分才可以看,本来想发不用积分就可以下载的,但是不太会,哈哈哈毕竟刚开始上传资源嘛
代码片段和文件信息
#include
#include
#include
int knum; //物理的块数
int ynum; //访问页面个数
static int memery[10]={0}; //块中的页号
static int page[100]={0}; //页面号
static int temp[100][10]={0}; //存入输出需要用到的数组
void FIFO();//先进先出置换算法
void LRU();//最近最久未使用算法
void OPT();//最佳置换算法
void print(unsigned int count);//输出函数
void main()
{
int i;
int chance;
printf(“欢迎来到页面置换!\n“);
system(“pause“);//请按任意键继续
system(“cls“);//清屏
printf(“请输入块数:\n“);
scanf(“%d“&knum);
printf(“请输入访问页面数:\n“);
scanf(“%d“&ynum);
printf(“请输入访问页面:\n“);
for(i=0;i scanf(“%d“&page[i]);
do{
printf(“--------------------------\n“);
printf(“看看哪个算法能被你抽中呀!\n“);
printf(“\n“);
printf(“1.先进先出\n“);
printf(“2.最近最久未使用\n“);
printf(“3.最优算法\n“);
printf(“--------------------------\n“);
printf(“请输入你所选择的算法序号:“);
scanf(“%d“&chance);
switch(chance)
{
case 1:
FIFO();
break;
case 2:
LRU();
break;
case 3:
OPT();
break;
case 4:
exit(0);
default:
printf(“输入错误,请重新输入:“);
}
}while (chance!=4);
getch();
}
void print(unsigned int count)
{
int ijkl;
for(j=0;j {
for(i=0;i {
if(i>=j)
printf(“ %d“temp[i][j]);
else
printf(“ “);
}
}
printf(“----------------------------------------\n“);
printf(“缺页次数:%d\t\t“count+knum);
printf(“缺页率:%d/%d\n“count+knumynum);
printf(“置换次数:%d\t\t“count);
printf(“----------------------------------------\n“);
}
void FIFO()//先进先出
{
int memery[10]={0};
int time[10]={0}; /*记录进入物理块的时间*/
int ijkm;
int max=0; /*记录换出页*/
int count=0; /*记录置换次数*/
/*前mSIZE个数直接放入*/
for(i=0;i {
memery[i]=page[i];
time[i]=i;
for(j=0;j temp[i][j]=memery[j];
}
for(i=knum;i {
/*判断新页面号是否在物理块中*/
for(j=0k=0;j {
if(memery[j]!=page[i])
k++;
}
if(k==knum) /*如果不在物理块中*/
{
count++;
/*计算换出页*/
max=tim
- 上一篇:VFP源码图书管理系统
- 下一篇:最优化大作业
评论
共有 条评论