操作系统实验_lru

来源:互联网 发布:python twisted过时 编辑:程序博客网 时间:2024/06/14 22:34
#include<stdio.h>static int stack_0_Size,currentIndex;//内存分配大小stack_1_Size,输出序列的大小int stack_1_Size=5,currentSize=0;//定义输入序列stack_0和内存stack_1int stack_0[50],stack_1[5];void lru(int a[],int b);void init(){printf("请输入页表的个数:");scanf("%d",&stack_0_Size);printf("请输页号:");for(currentIndex=0;currentIndex<stack_0_Size;currentIndex++){scanf("%d",&stack_0[currentIndex]);}printf("您的页号为:");for(currentIndex=0;currentIndex<stack_0_Size;currentIndex++){printf("%d\t",stack_0[currentIndex]);}printf("\n");printf("分配结果为:");printf("\n");lru(stack_0,stack_1_Size);}void lru(int a[],int b){    int flag=0;    int tem,i,j;    printf("stack_0是:");    for(i=0;i<stack_0_Size;i++)    {        printf("%d\t",stack_0[i]);    }    printf("\n");    for(currentIndex=0;currentIndex<stack_0_Size;currentIndex++)    {        tem=stack_0[currentIndex];        //输出序列的长度逐渐增大        currentSize++;        //printf("tem:%d,currentIndex:%d,stack_1_Size:%d",tem,currentIndex,stack_1_Size);        for(i=0;i<stack_1_Size;i++)        {            if(tem==stack_1[i])            {                for(j=i;j>0;j--)                {                    stack_1[j]=stack_1[j-1];                }                stack_1[0]=tem;                flag=0;                //每次命中后调换顺序,整个输出序列保持不变                currentSize--;                printf("currentSize:%d\n",currentSize);                for(i=0;i<currentSize;i++)                {                    printf("%d\t",stack_1[i]);                }                printf("\n");                break;            }            else            {                flag=1;            }        }        printf("currentSize:%d\n",currentSize);        while(flag)        {            if(currentSize<stack_1_Size)            {                for(i=currentSize;i>0;i--)                {                    stack_1[i]=stack_1[i-1];                }                stack_1[0]=tem;                for(i=0;i<currentSize;i++)                {                    printf("%d\t",stack_1[i]);                }                printf("\n");                break;            }            else            {                //printf("5不小于5");                for(i=stack_1_Size-1;i>0;i--)                {                    stack_1[i]=stack_1[i-1];                }                stack_1[0]=tem;                for(i=0;i<stack_1_Size;i++)                {                    printf("%d\t",stack_1[i]);                }                printf("\n");                break;            }        }    }}int main(){    int g;init();return 0;}

原创粉丝点击