亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 2.txt

?? 這是操作系統原理中CPU進程調度的模擬算法
?? TXT
字號:
#include<stdio.h>   
  #include<stdlib.h>   
  #include<time.h>   
  #define   null   0   
  FILE   *   f;   
  int   flag=1;   
  /*保存現場部分*/   
  typedef   struct   sce{   
                          int   midresult;   
                          int   times;   
                            }scen;   
    
  /*進程控制塊*/   
  typedef   struct   pcb_type{   
                            char   name[20];   
                            int   pid;   
                            int   (*fp)();   
                            scen   scene;   
                            int   priority;   
                            int   status;/*4為未結束,5為結束*/   
                            struct   pcb_type   *next;   
                                }pcb;   
  /*按優(yōu)先級入隊列*/   
  pcb   *inqueue(pcb   *head,pcb   *apcb)   
  {   pcb   *p=head;   
      while(p->next!=null)   
      {   if(p->next->priority<apcb->priority)   
                break;   
              p=p->next;   
      }/*while*/   
      if(p->next==null)   
            p->next=apcb;   
      else   
              {   
                apcb->next=p->next;   
                p->next=apcb;   
              }   
      return   head;   
  }/*inqueue*/   
    
  /*出隊列*/   
  pcb   *outqueue(pcb   *head)   
  {   
      pcb   *p=head->next;   
      head->next=p->next;   
      p->next=null;   
      return   p;   
  }/*outqueue*/   
    
  /*判斷隊列是否為空*/   
  int   checkqueue(pcb   *head)   
  {   
    if(head->next==null)   
      return   0;   
      else   return   1;   
  }   
    
  float   Random()   
  {   
      srand(time(0));   
      return   random(1000)/1000;   
  }   
    
  /*進程一*/   
  int   process1(int   *midresult,int   *times)   
  {   int   allTheTimes=3;   
      int   temp=*midresult;   
      int   n=0;   
      int   i=0;   
      for(;i<allTheTimes-(*times);i++)   
      {     temp++;   
            n++;   
        if(Random()>0.33)/*模擬時間片*/   
        {   
          *midresult=temp;   
          *times=*times+n;   
          return   4;   
        }   
      }   
      *midresult=temp;   
      return   5;   
  }   
    
  /*進程二*/   
  int   process2(int   *midresult,int   *times)   
  {   
      int   allTheTimes=4;   
      int   temp=*midresult;   
      int   n=0;   
      int   i=0;   
      for(;i<allTheTimes-(*times);i++)   
            {   
            temp++;   
            n++;   
                if(Random()<0.33||Random()>0.66)   
                      {   
                          *midresult=temp;   
                  *times=*times+n;   
                            return   4;   
                      }   
            }   
  *midresult=temp;   
  return   5;   
  }   
    
  /*進程三*/   
  int   process3(int   *midresult,int   *times)   
  {   
      int   allTheTimes=5;   
      int   temp=*midresult;   
      int   n=0;   
      int   i=0;   
      for(;i<allTheTimes-(*times);i++)   
            {   
                temp++;   
                n++;   
                if(Random()<0.66)   
                      {   
                          *midresult=temp;   
                  *times=*times+n;   
                          return   4;   
                      }   
              }   
    *midresult=temp;   
    return   5;   
  }   
    
  /*調度器*/   
  void   schedule(pcb   *head1,pcb   *head2)   
  {   pcb   *p,*r;   
      pcb   *temp_head;   
      /*檢驗就緒隊列是否為空*/   
      if(!checkqueue(head1))   
          {       
                  /*空則交換兩個優(yōu)先級隊列*/   
                  temp_head=head1;   
  head1=head2;   
  head2=temp_head;   
                  /*如果仍為空,則退出*/   
  if(!checkqueue(head1))   
    {   
      fprintf(f,"All   processes   are   complete!");   
      flag=0;   
      return;   
    }   
          }   
        /*以下為對隊列的現狀的顯示*/   
        r=head1;   
        fprintf(f,"\nhead1     ");   
        while(r->next!=null)   
        {   r=r->next;   
            fprintf(f,"[%s]\t",r->name);   
            }   
        fprintf(f,"null\n");   
        r=head2;   
        fprintf(f,"head2     ");   
        while(r->next!=null)   
        {   
          r=r->next;   
          fprintf(f,"[%s]\t",r->name);   
        }   
        fprintf(f,"null\n");   
      /*以上為對隊列的現狀的顯示*/   
    
      /*不為空,從高優(yōu)先級隊列隊頭取一個PCB*/   
      p=outqueue(head1);   
    
    /*檢查進程的狀態(tài),恢復現場   */   
      if(p->status!=5)   
      {   
          fprintf(f,"%s",p->name);   
        fprintf(f,"   is   using   CPU\t");   
        p->status=p->fp(&(p->scene.midresult),&(p->scene.times));   
      }   
      /*進程結束,打印結果*/   
      if(p->status==5)   
      {   fprintf(f,"%s",p->name);   
          fprintf(f,"   is   complete,the   result   is   ");   
          fprintf(f,"%d\n",p->scene.midresult);   
          /*釋放進程控制塊*/   
          free(p);   
      /*結束本次調度*/   
      return;   
      }   
    /*進程未結束,入隊列*/   
    fprintf(f,"\n%s",p->name);   
    fprintf(f,"   is   in   queue2");   
      inqueue(head2,p);   
    
    /*以下為對隊列的現狀的顯示*/   
      r=head1;   
        fprintf(f,"\nhead1     ");   
        while(r->next!=null)   
        {   r=r->next;   
            fprintf(f,"[%s]\t",r->name);   
            }   
        fprintf(f,"null\n");   
        r=head2;   
        fprintf(f,"head2     ");   
        while(r->next!=null)   
        {   
          r=r->next;   
          fprintf(f,"[%s]\t",r->name);   
        }   
        fprintf(f,"null\n");   
  /*以上為對隊列的現狀的顯示*/   
  }/*schedule*/   
    
  /*初始化進程控制塊*/   
  void   init_process(pcb   *apcb)   
  {   
      apcb->scene.midresult=0;   
      apcb->scene.times=0;   
      /*Set   name*/   
      printf("Please   give   a   name   for   the   process:");   
      fflush(stdin);   
      gets(apcb->name);   
      /*Set   priority*/   
      printf("Please   give   ");   
      printf("%s",apcb->name);   
      printf("   a   priority:   ");   
      fflush(stdin);   
      scanf("%d",&apcb->priority);   
      /*Set   status*/   
      apcb->status=4;   
      apcb->next=null;   
  }/*init_process*/   
    
  /*主函數*/   
  void   main()   
  {   pcb   *r;   
    
      pcb   *head1=(pcb   *)malloc(sizeof(pcb));   
      pcb   *head2=(pcb   *)malloc(sizeof(pcb));   
      pcb   *p1=(pcb   *)malloc(sizeof(pcb));   
      pcb   *p2=(pcb   *)malloc(sizeof(pcb));   
      pcb   *p3=(pcb   *)malloc(sizeof(pcb));   
      f=fopen("a.txt","w");   
      head1->next=null;   
      head2->next=null;   
      p1->fp=process1;   
      p2->fp=process2;   
      p3->fp=process3;   
      init_process(p1);   
      init_process(p2);   
      init_process(p3);   
      head1=inqueue(head1,p1);   
      head1=inqueue(head1,p2);   
      head1=inqueue(head1,p3);   
      while(flag)   
            {   
        /*以下為對隊列的現狀的顯示(在schedule函數外)*/   
        fprintf(f,"/*out   side*/");   
        r=head1;   
        fprintf(f,"\nhead1     ");   
        while(r->next!=null)   
        {   r=r->next;   
            fprintf(f,"[%s]\t",r->name);   
            }   
        fprintf(f,"null\n");   
        r=head2;   
        fprintf(f,"head2     ");   
        while(r->next!=null)   
        {   
          r=r->next;   
          fprintf(f,"[%s]\t",r->name);   
        }   
        fprintf(f,"null\n");   
        fprintf(f,"/*eof*/");   
  /*以上為對隊列的現狀的顯示(在schedule函數外)*/   
    
                schedule(head1,head2);/*調度*/   
            }   
            fclose(f);   
            getch();   
  }/*main*/ 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美亚洲综合色| 亚洲自拍都市欧美小说| 一区二区三区四区激情| 久久精品国产99国产| youjizz国产精品| 日韩欧美激情在线| 一区二区三区久久| 成人av网在线| 久久综合给合久久狠狠狠97色69| 亚洲精选视频免费看| 国产精品亚洲一区二区三区在线 | 91蜜桃网址入口| 久久亚洲私人国产精品va媚药| 亚洲福利视频一区二区| 成人黄色网址在线观看| 久久精品免费在线观看| 久久99热99| 7777精品伊人久久久大香线蕉 | 激情久久久久久久久久久久久久久久| 91麻豆自制传媒国产之光| 国产三级精品三级在线专区| 免费欧美高清视频| 91精品综合久久久久久| 亚洲线精品一区二区三区八戒| 91伊人久久大香线蕉| 一区在线观看免费| 成人av网在线| 亚洲视频在线观看三级| 不卡的看片网站| 中文字幕一区二区三区蜜月| 床上的激情91.| 欧美极品少妇xxxxⅹ高跟鞋| 国产丶欧美丶日本不卡视频| 久久这里只有精品视频网| 韩国欧美一区二区| 久久一二三国产| 国产v综合v亚洲欧| 国产精品女人毛片| www.亚洲精品| 亚洲欧美另类久久久精品| 91麻豆国产福利在线观看| 亚洲精品伦理在线| 欧美色视频在线观看| 日韩高清不卡一区二区三区| 欧美一区二区性放荡片| 久久电影国产免费久久电影| 久久这里都是精品| av在线不卡网| 亚洲中国最大av网站| 欧美丰满一区二区免费视频 | 亚洲欧洲色图综合| 色综合久久久久综合体桃花网| 亚洲人成影院在线观看| 欧美欧美午夜aⅴ在线观看| 日韩影院在线观看| 久久免费午夜影院| 色综合视频在线观看| 亚洲成人av免费| 久久中文娱乐网| 色一情一乱一乱一91av| 日韩高清不卡在线| 亚洲国产精品国自产拍av| 欧美做爰猛烈大尺度电影无法无天| 亚洲国产视频直播| www成人在线观看| 91丨porny丨中文| 免费成人深夜小野草| 国产精品午夜久久| 4hu四虎永久在线影院成人| 国产精品一卡二卡| 亚洲五月六月丁香激情| 久久久久国产精品免费免费搜索| 色综合亚洲欧洲| 久久疯狂做爰流白浆xx| 亚洲久本草在线中文字幕| 欧美www视频| 欧美性猛交xxxxxxxx| 国产精品1区二区.| 亚洲第一福利一区| 国产精品理论片| 欧美tk—视频vk| 欧美三电影在线| 成人视屏免费看| 久久精品国产亚洲5555| 一区二区三区在线影院| 久久久青草青青国产亚洲免观| 欧美视频日韩视频在线观看| 成人午夜电影久久影院| 精品一区二区在线视频| 亚洲一区二区三区四区在线观看 | 91啪亚洲精品| 国产风韵犹存在线视精品| 日产欧产美韩系列久久99| 亚洲视频精选在线| 国产欧美1区2区3区| 日韩一区二区高清| 欧美日韩亚洲综合| 91麻豆精品在线观看| 处破女av一区二区| 国精品**一区二区三区在线蜜桃| 午夜精品视频一区| 亚洲美女屁股眼交3| 中文字幕日本乱码精品影院| 国产亚洲一区二区在线观看| 日韩午夜在线观看| 7777精品伊人久久久大香线蕉超级流畅 | 亚洲线精品一区二区三区| 国产精品国产馆在线真实露脸 | 国产偷v国产偷v亚洲高清| 4438成人网| 欧美一区二区在线免费观看| 欧美男女性生活在线直播观看| 色噜噜狠狠色综合中国| 一本久久精品一区二区| 一本大道久久a久久综合婷婷| 国产成人精品一区二| 国产一区二区h| 国产麻豆欧美日韩一区| 国产一区91精品张津瑜| 国产精品一级在线| 高清免费成人av| 成人免费黄色在线| 99精品国产视频| 色综合久久综合网欧美综合网| 97精品久久久午夜一区二区三区| 99视频精品免费视频| 色综合激情久久| 精品视频1区2区3区| 欧美精选在线播放| 日韩一卡二卡三卡| 精品区一区二区| 中文字幕欧美激情一区| 亚洲人成网站在线| 亚洲一区二区综合| 麻豆精品一区二区综合av| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲成人资源在线| 男人操女人的视频在线观看欧美| 狠狠网亚洲精品| 成人黄页在线观看| 欧美午夜影院一区| 日韩精品在线一区二区| 国产偷国产偷亚洲高清人白洁| 中文字幕亚洲一区二区av在线| 一区二区在线观看视频在线观看| 亚洲aaa精品| 丰满岳乱妇一区二区三区| 91网址在线看| 日韩一区二区高清| 中文字幕在线观看不卡视频| 亚洲国产日产av| 国产真实乱对白精彩久久| 91香蕉视频mp4| 337p日本欧洲亚洲大胆色噜噜| 国产精品蜜臀在线观看| 日韩中文字幕av电影| 成人18视频日本| 欧美一区二区精品久久911| 欧美国产国产综合| 亚洲va韩国va欧美va| 成人午夜在线视频| 91麻豆精品国产自产在线观看一区 | 成人av资源网站| 欧美精品在线观看一区二区| 国产午夜精品一区二区三区嫩草 | 精品一二三四区| 91免费视频网址| 久久久三级国产网站| 亚洲国产精品尤物yw在线观看| 国产一区三区三区| 欧美私模裸体表演在线观看| 久久蜜桃av一区精品变态类天堂| 一区二区三区产品免费精品久久75| 激情五月播播久久久精品| 欧美在线不卡一区| 国产精品毛片大码女人| 美女www一区二区| 欧美色老头old∨ideo| 中文字幕免费不卡| 国产一区二区影院| 在线不卡中文字幕| 一区二区三区国产精华| 国产91在线观看| 欧美xxxxxxxxx| 蜜桃视频在线一区| 欧美高清hd18日本| 亚洲国产精品嫩草影院| 色综合欧美在线视频区| 国产精品视频免费| 国产69精品久久99不卡| 欧美精品一区二区三区在线播放| 午夜视频在线观看一区二区三区| 91麻豆精东视频| 亚洲乱码国产乱码精品精98午夜| 丁香亚洲综合激情啪啪综合| 久久网这里都是精品| 国产主播一区二区三区| 亚洲精品一区二区三区四区高清| 免费久久99精品国产| 日韩精品综合一本久道在线视频|