<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 36,  comments - 3,  trackbacks - 0
    /*本算法為LUR算法,基本需要為寄存器和棧,尤其是棧的英語為核心,棧中的頁面號變化如下:
    如果進程訪問的某頁面與棧中頁面號相同,則將該頁面號取出,將它壓入棧頂,若沒,則將棧底頁面號取出,
    該進程頁面號壓入棧頂。
    */
    #include<stdio.h>
    #include<iostream>
    using namespace std;
    #define MAX 66565        //最大數(shù)量
    #define SIZE 3      //頁框
    int page[MAX];      //物理塊數(shù)組
    int lack[MAX];
    typedef struct            //棧定義;
    {
    int top;        //棧頂指針
    int data[MAX+2];  //棧數(shù)據(jù)
    }Stack;
    void InitStack(Stack *&s)  //棧初始化
    {
    s=(Stack *)malloc(sizeof(Stack));
    s->top=-1;
    }
    void in_Stack(Stack *&s,int e,int j) //定位置入棧函數(shù)1(已經(jīng)找到)
    {
    int i;
    for(i=j;i<=s->top;i++)
    {
    s->data[i]=s->data[i+1]; //棧下移位
    s->data[s->top]=e;
    }
    void out_Stack(Stack *s,int e) //定位置入棧函數(shù)2(沒找到)
    {
    if(s->top==-1)
    return ;
    int i,j=0;
    for(i=0;i<=s->top;i++)
    {
    if(s->data[i]==e)
    {
    j=i;
    }
    }
    for(i=j;i<=s->top;i++)
    {
    s->data[i]=s->data[i+1];
    }
    s->data[s->top]=e;
    }
    void LUR(int p[],int n)    //LUR算法函數(shù)
    {
    Stack *s;
    InitStack(s);
    int i,j,k,flag,size;
    for(i=0;i<n;i++)
    {
    flag=-1;
    if(s->top<SIZE)      //棧未滿時候
    {
    s->top++;
    if(i==0) //當為0時候直接入棧;
    {
    page[0]=s->data[i]=p[i];
    printf("%d m_stack: ",p[i]);
    printf("%d---page:",s->data[i]);
    printf("%d\n",page[0]);
    continue;
    }
    for(j=0;j<=s->top;j++) //尋找棧中是否已該進程的頁面號
    {
    if(s->data[j]==p[i])
    flag=j;
    }
    if(flag==-1)//假如找不到
    {
    page[s->top]=s->data[s->top]=p[i]; //入棧
    if(s->top==SIZE)
    {
    page[0]=p[i];        //頁框滿了的話與棧底頁號互換
    }
    }
    else
    {
    s->top--;             //找到指針無須上移
    in_Stack(s,p[i],flag);
    lack[i]=1;
    }
    }
    else //棧滿時候
    {
    out_Stack(s,p[i]); 
    for(k=0;k<SIZE;k++)
    {
    if(page[k]==p[i])
    {
    lack[i]=1;
    break;
    }
    }
    for(k=0;k<SIZE;k++)
    {
    if(s->data[0]==page[k]) //查找棧底的物理塊
    {
    page[k]=p[i];
    }
    }
    }
    //以下為輸出
    printf("%d m_stack: ",p[i] );
    for(j=0;j<=s->top;j++)
    printf("%d ",s->data[j]);
    printf("---page:");
    size=SIZE-1;
    if(s->top<SIZE)
    {
    size=s->top;
    }
    if(lack[i]==0)
    {
    //printf("   ");
    for(j=0;j<=size;j++)
    printf("%d ",page[j]);
    }
    else
    {
    printf(" null");
    }
    printf("\n");
    }
    }
    void main()
    {
    memset(lack,0,sizeof(lack));
    int n,j,p[MAX]={7,0,1,2,0,3,0,4,2,3,0,3,2,1,2,0,1,7,0,1};
    n=20;
    for(j=0;j<=n;j++)
    printf("%d ",p[j]);
    printf("\n");
    LUR(p,n);
    }
    PS:我竟然忘記放在電腦哪里了,名字又不記得。。還好找到,放在這里先
    posted on 2013-05-09 22:55 天YU地___PS,代碼人生 閱讀(573) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發(fā)表評論。


    網(wǎng)站導(dǎo)航:
     
    <2013年5月>
    2829301234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678

     一定要好好學(xué)習(xí),天天向上!

    常用鏈接

    留言簿

    隨筆分類(8)

    隨筆檔案(35)

    文章分類

    文章檔案(1)

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚欧乱色国产精品免费视频| 夜色阁亚洲一区二区三区| eeuss免费影院| 亚洲中文字幕无码久久| 亚洲AV无码久久精品成人 | 久久精品夜色噜噜亚洲A∨| 成年性羞羞视频免费观看无限| 97无码人妻福利免费公开在线视频 | 亚洲精品动漫人成3d在线 | 亚洲av午夜精品无码专区| 国产亚洲av片在线观看播放| 国产乱子伦精品免费无码专区| 成人女人A级毛片免费软件| 久久大香香蕉国产免费网站| 国产精品99爱免费视频| 国产精品亚洲片在线花蝴蝶| 亚洲大成色www永久网址| 亚洲人成在线精品| 亚洲精品美女久久久久9999| 久久亚洲精品成人| 亚洲高清国产AV拍精品青青草原| 亚洲国产激情一区二区三区| 国产网站免费观看| 成全视频免费高清 | 亚洲人成色77777在线观看| 亚洲精品一区二区三区四区乱码 | 亚洲欧美成人av在线观看| 亚洲电影在线播放| 亚洲日本国产乱码va在线观看| 亚洲视频免费在线观看| 久久精品国产亚洲av麻豆色欲 | 亚洲AV日韩综合一区| 亚洲综合激情五月色一区| 亚洲国产乱码最新视频| 最新亚洲精品国偷自产在线 | 野花高清在线电影观看免费视频| 久久精品免费一区二区| 1000部国产成人免费视频| 亚洲一级免费视频| 影音先锋在线免费观看| 国产成人免费一区二区三区|