<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        //最大數量
    #define SIZE 3      //頁框
    int page[MAX];      //物理塊數組
    int lack[MAX];
    typedef struct            //棧定義;
    {
    int top;        //棧頂指針
    int data[MAX+2];  //棧數據
    }Stack;
    void InitStack(Stack *&s)  //棧初始化
    {
    s=(Stack *)malloc(sizeof(Stack));
    s->top=-1;
    }
    void in_Stack(Stack *&s,int e,int j) //定位置入棧函數1(已經找到)
    {
    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) //定位置入棧函數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算法函數
    {
    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,代碼人生 閱讀(574) 評論(0)  編輯  收藏

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


    網站導航:
     
    <2013年5月>
    2829301234
    567891011
    12131415161718
    19202122232425
    2627282930311
    2345678

     一定要好好學習,天天向上!

    常用鏈接

    留言簿

    隨筆分類(8)

    隨筆檔案(35)

    文章分類

    文章檔案(1)

    搜索

    •  

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 国产精品亚洲а∨无码播放麻豆 | 色婷婷综合缴情综免费观看| 亚洲六月丁香婷婷综合| 亚洲国产成人手机在线电影bd | 国产一级淫片视频免费看| 麻豆国产VA免费精品高清在线| 夜夜爽免费888视频| 日韩成全视频观看免费观看高清| 毛片免费视频播放| 日韩免费视频观看| 免费观看国产精品| 亚洲精品美女久久久久99小说| 亚洲国产成人久久综合碰| 国产精品亚洲mnbav网站| 国产AⅤ无码专区亚洲AV| 亚洲国产精品乱码一区二区| 久久亚洲精品无码| 亚洲youjizz| 国产精品亚洲综合| 久久久久免费视频| 久久免费精彩视频| 男女免费观看在线爽爽爽视频| 大学生美女毛片免费视频| 亚洲AV无码乱码在线观看性色扶| 中文字幕久久亚洲一区| 亚洲AV乱码久久精品蜜桃| 亚洲乱码卡三乱码新区| 亚洲精品无码一区二区| 日本免费精品一区二区三区| 日韩精品无码免费专区午夜| 5g影院5g天天爽永久免费影院| 在线v片免费观看视频| 国产大片91精品免费观看男同| 中文字幕亚洲天堂| 亚洲视频一区二区在线观看| 国产亚洲精品VA片在线播放| 午夜成人无码福利免费视频| 久久九九AV免费精品| 最近中文字幕mv免费高清视频7| 亚洲XX00视频| 亚洲精品视频观看|