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

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

?? 調度算法.cpp

?? ○1 設計進程進程控制塊PCB表結構
?? CPP
字號:
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>  
#include <time.h>
#include "Ulti.h"
#include "pcb.h"
#include "Equeue.h"
#define DEBUG 1
#define STA_READY 0
#define STA_RUN   1
#define STA_END   2
struct PCBNode
 {
       char processName[20];
       int  processID;
       int  remainSecs;
       int  status, priorityNum;
       struct PCBNode* next;
 };
typedef struct PCBNode* PCBList;
typedef struct PCBNode* ptrPCBNode;
struct Process
{
       char processName[20];
       int processID;
       int status;
       int priorityNum;
       int remainSecs;
       struct Process* next;
};
 typedef struct Process* ptrProcess;

char *inFileName="inputData.txt";
char *outFileName="outputData.txt";
int main(int argc,char* argv[])
{
   /*--------Open file--------*/
   FILE* inputFile;
   FILE* outputFile;
   int bDelay;
   /*=--------creation part-------*/
   char mode;
   int numOfThread; 
   PCBList pcbList,p;
   ptrPCBNode tmpNode;
   /*--------main process-------*/
   pQueue readyQueue,endQueue;
   ptrProcess runProcess,tmpProcess;
   int count;
   if((inputFile=fopen(inFileName,"rb"))==NULL)
   {   
       printf("open inputFile error\n");
       return -1;
   }
   if((outputFile=fopen(outFileName,"wb"))==NULL)
   {
       printf("open outputFile error\n");
       return -1;
   }
       printf("oepn files success \n");
   /*Create the PCB Table*/
   /*create a pcbList with a null head.*/  
   pcbList=(ptrPCBNode)malloc(sizeof(struct PCBNode));
   p=pcbList;
   fscanf(inputFile,"mode=%c\r\n",&mode);
   fscanf(inputFile,"numOfThread=%d\r\n",&numOfThread);
   fscanf(inputFile,"delay=%d\r\n",&bDelay);
   printf("------------program init starts------------\n");
   fprintf(outputFile,"------------program init starts------------\r\n");
   if(mode=='0')/*Read process definition from the file*/
       {
                   /*Creation with input list*/
                   int i;
                   for(i=0;i<numOfThread;i++)
                  {
                           tmpNode=(ptrPCBNode)malloc(sizeof(struct PCBNode));
                          fscanf(inputFile,"%d,%d,%s\r\n",&tmpNode->priorityNum,&tmpNode->remainSecs,tmpNode->processName);   
                           tmpNode->processName[strlen(tmpNode->processName)]='\0';
                           tmpNode->processID=i;
                           tmpNode->staturs=STA_READY;
      
                           if(tmpNode->remainSecs>0)

                           {

                                   p->next=tmpNode;

                                   p=p->next;

           

           printf("ProcessID:%d,Name:%s,Priority:%d,RemainSecs:%d Staturs: Ready\n",tmpNode->processID,tmpNode->processName,tmpNode->priorityNum,tmpNode->remainSecs);

           fprintf(outputFile,"ProcessID:%d,Name:%s,Priority:%d,RemainSecs:%d Staturs: Ready\r\n",tmpNode->processID,tmpNode->processName,tmpNode->priorityNum,tmpNode->remainSecs);

 

                           }   

                   }

       p->next=NULL;//Correction: add this to has effects in sort algorithm

           }

   else if(mode=='1')

       {

                   int i;

                   srand((unsigned int)time (NULL));

                   

                   for(i=0;i<numOfThread;i++)

                   {

                       tmpNode=(ptrPCBNode)malloc(sizeof(struct PCBNode));                        tmpNode->priorityNum=(int)eRandom(10);  

                       tmpNode->remainSecs=(int)eRandom(10);   

                       tmpNode->processID=i;   

                           strcpy(tmpNode->processName,"Process");

                           tmpNode->processName[7]=48+i;

                           tmpNode->processName[8]='\0';

                           

                           tmpNode->staturs=STA_READY;

                           

                           if(tmpNode->remainSecs>0)

                           {

                                   p->next=tmpNode;

                                   p=p->next;

           printf("ProcessID:%d,Name:%s,Priority:%d,RemainSecs:%d Staturs: Ready\n",tmpNode->processID,tmpNode->processName,tmpNode->priorityNum,tmpNode->remainSecs);

           fprintf(outputFile,"ProcessID:%d,Name:%s,Priority:%d,RemainSecs:%d Staturs: Ready\r\n",tmpNode->processID,tmpNode->processName,tmpNode->priorityNum,tmpNode->remainSecs);

                           }   

                   }

                   p->next=NULL;//Correction: add this to has effects in sort algorithm

       }   

   else

       {

           printf("mode is illegal!\n");

           return -1;

       }

   printf("------------program init ends------------\n");

   fprintf(outputFile,"------------program init ends------------\r\n");

   /*Sort the pcb table*/      

   sortPCB(pcbList);                           //8:56 test ok

   if(DEBUG)printf("sortPCB successfully\n");  

   

   /*init queue*/

   endQueue=createNullQueueWithHead();

   readyQueue=createNullQueueWithHead();

       

   tmpNode=pcbList;

   tmpNode=tmpNode->next;

   

   while(tmpNode!=NULL)                        //9:38 test ok

   {

       tmpProcess=(ptrProcess)malloc(sizeof(struct Process));

       tmpProcess->processID=tmpNode->processID;

       tmpProcess->staturs=tmpNode->staturs;

       tmpProcess->priorityNum=tmpNode->priorityNum;

       tmpProcess->remainSecs=tmpNode->remainSecs;

       strcpy(tmpProcess->processName,tmpNode->processName);

       enQueue(readyQueue,tmpProcess);

       tmpNode=tmpNode->next;

   }

   

   if(DEBUG)printf("create readyQueue successfully\n");

   runProcess=NULL;

   /*The core of process management*/

   printf("------------start of main simulation program------------\n");

   fprintf(outputFile,"------------start of main simulation program------------\r\n");

   count=0;

   while(!isEmpty(readyQueue)||runProcess!=NULL)

   {

       if(bDelay)

           eDelay(1000);/*DELAY 1 SECS*/

       

       if(runProcess!=NULL)

           {

           count++;

   printf("Line:%d ProcessID:%d,Name:%s,Priority:%d,RemainSecs:%d Staturs: Running\n",count,runProcess->processID,runProcess->processName,runProcess->priorityNum,runProcess->remainSecs);

   fprintf(outputFile,"Line:%d ProcessID:%d,Name:%s,Priority:%d,RemainSecs:%d Staturs: Running\r\n",count,runProcess->processID,runProcess->processName,runProcess->priorityNum,runProcess->remainSecs);

                   runProcess->priorityNum++;

                   runProcess->remainSecs--;

                   

                   if(runProcess->remainSecs==0)/*if time use out,end the process*/

                       {

                           runProcess->staturs=STA_END;

                           enQueue(endQueue,runProcess);

                           updatePCBList(pcbList,runProcess);

                           count++;

   printf("Line:%d ProcessID:%d,Name:%s,Priority:%d,RemainSecs:%d Staturs: Ends\n",count,runProcess->processID,runProcess->processName,runProcess->priorityNum,runProcess->remainSecs);

   fprintf(outputFile,"Line:%d ProcessID:%d,Name:%s,Priority:%d,RemainSecs:%d Staturs: Ends\r\n",count,runProcess->processID,runProcess->processName,runProcess->priorityNum,runProcess->remainSecs);

                       }

                   else if(!isEmpty(readyQueue))

                       {

                           runProcess->staturs=STA_READY;

                           insert(readyQueue,runProcess);

                           updatePCBList(pcbList,runProcess);  

                       }

           }

       

       /*apply new mem for the new node*/

       //Correction:runProcess!=NULL should be placed at front

       if(runProcess!=NULL&&runProcess->remainSecs==0)//for the last thread consult.&& runProcess!=firstNode(NULL)

           runProcess=NULL;

       

       if(!isEmpty(readyQueue))

       {

           runProcess=(ptrProcess)malloc(sizeof(struct Process));  

           /*wake up a new thread*/    

           runProcess=deQueue(readyQueue);

           runProcess->staturs=STA_RUN;

           updatePCBList(pcbList,runProcess);

       }

   }//10:03 test ok

   printf("------------end of main simulation program------------\n");

   fprintf(outputFile,"------------end of main simulation program------------\r\n");

 

   fclose(inputFile);

   fclose(outputFile);

 

   printf("program ends successfully\n");

   getchar();

   return 0;

}


#define STA_READY 0
#define STA_RUN   1
#define STA_END   2
struct PCBNode
 {
       char processName[20];
       int  processID;
       int  remainSecs;
       int  status, priorityNum;
       struct PCBNode* next;
 };
typedef struct PCBNode* PCBList;
typedef struct PCBNode* ptrPCBNode;
struct Process
{
       char processName[20];
       int processID;
       int status;
       int priorityNum;
       int remainSecs;
       struct Process* next;
};
 typedef struct Process* ptrProcess;

 typedef  ptrProcess PtrQueueType;  

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲福利视频一区| 国产精品美女久久久久高潮| 亚洲h在线观看| 欧美日韩高清一区二区三区| 婷婷丁香激情综合| 精品日韩在线一区| 懂色av一区二区三区蜜臀| 国产精品久久久一本精品| 色综合久久中文字幕| 天天操天天综合网| 日韩一区二区三| 国产精品一区三区| 艳妇臀荡乳欲伦亚洲一区| 日韩丝袜美女视频| 成人性色生活片| 亚洲成人动漫精品| 久久久久久久电影| 成人国产精品免费| 五月天网站亚洲| 久久久久99精品国产片| 在线欧美小视频| 黄网站免费久久| 亚洲美女屁股眼交| 精品三级av在线| 色久综合一二码| 精品一区二区三区在线播放视频| 日本一区二区成人| 欧美日韩精品专区| 国产不卡视频在线观看| 亚洲第一久久影院| 中文字幕 久热精品 视频在线| 在线观看av不卡| 国产高清不卡一区二区| 亚洲成人动漫精品| 中文字幕欧美一| 精品国产一区二区三区久久影院| 日本久久电影网| 国产成人午夜视频| 免费在线一区观看| 一区二区三区高清在线| 欧美—级在线免费片| 欧美一级黄色大片| 欧美网站大全在线观看| 成人免费视频caoporn| 日韩国产欧美三级| 亚洲伦在线观看| 国产欧美一区二区三区沐欲| 欧美精品成人一区二区三区四区| hitomi一区二区三区精品| 国内精品伊人久久久久av一坑| 亚洲制服欧美中文字幕中文字幕| 中文字幕av一区二区三区高| 精品少妇一区二区三区| 9191久久久久久久久久久| 色系网站成人免费| av欧美精品.com| 粗大黑人巨茎大战欧美成人| 激情综合色综合久久| 日韩影院免费视频| 亚洲国产美国国产综合一区二区| 中文字幕乱码亚洲精品一区| 精品国产成人系列| 日韩欧美一区二区在线视频| 678五月天丁香亚洲综合网| 欧美在线免费播放| 欧美亚洲国产bt| 色就色 综合激情| 色国产综合视频| 色婷婷精品久久二区二区蜜臂av| 不卡免费追剧大全电视剧网站| 国产成人亚洲精品青草天美| 国产91精品一区二区麻豆网站| 激情五月播播久久久精品| 美女网站视频久久| 奇米四色…亚洲| 美女网站色91| 国产一区二区三区黄视频| 国产一区二区精品久久99| 国产永久精品大片wwwapp| 国产精品1024久久| 成人综合婷婷国产精品久久蜜臀| 国产福利精品一区| av电影在线观看一区| 91在线观看美女| 欧美午夜精品久久久久久超碰| 欧美视频一区在线观看| 欧美日韩国产小视频| 欧美一区二区三区在线| 精品国产一区二区三区久久久蜜月| 精品国产乱码久久久久久牛牛 | 91精品免费在线观看| 337p亚洲精品色噜噜| 日韩女优电影在线观看| 久久理论电影网| 国产精品久久久久毛片软件| 伊人开心综合网| 日韩高清一级片| 国产老妇另类xxxxx| 9久草视频在线视频精品| 欧美性受xxxx黑人xyx性爽| 在线播放日韩导航| 久久久亚洲精华液精华液精华液| 日本一区二区三区视频视频| 亚洲欧美另类久久久精品| 午夜精品福利一区二区三区av| 精品一区二区三区欧美| 成人黄色免费短视频| 欧美主播一区二区三区美女| 欧美成人精品福利| 一区二区中文视频| 免费观看在线色综合| 成人妖精视频yjsp地址| 精品视频在线看| 久久久av毛片精品| 一区二区成人在线| 国产一区二区日韩精品| 色久综合一二码| 久久久久久久性| 午夜婷婷国产麻豆精品| 国产精品一区二区在线观看不卡| 色狠狠一区二区三区香蕉| 精品粉嫩超白一线天av| 一区二区欧美精品| 国产精品亚洲午夜一区二区三区| 在线观看日韩电影| 国产亚洲欧美一区在线观看| 亚洲综合在线第一页| 国产成人av电影免费在线观看| 欧美日本国产一区| 中文字幕一区不卡| 久久99精品国产麻豆不卡| 色悠久久久久综合欧美99| 久久一二三国产| 日韩电影在线免费看| 97se亚洲国产综合自在线不卡| 日韩免费高清视频| 亚洲一区在线视频观看| 成人爱爱电影网址| 2023国产精品视频| 蜜桃av一区二区三区电影| 欧美性大战久久| 亚洲人一二三区| 国产成人av一区二区三区在线| 欧美一二三区在线观看| 亚洲综合成人在线| 91色视频在线| 国产精品欧美久久久久无广告| 美腿丝袜一区二区三区| 8x福利精品第一导航| 亚洲图片欧美色图| 欧美中文字幕不卡| 亚洲精品你懂的| 99re视频精品| 亚洲色图欧洲色图婷婷| 成人高清免费观看| 中文字幕精品三区| 国产精品亚洲午夜一区二区三区| 欧美tickling挠脚心丨vk| 日本不卡在线视频| 欧美一级二级在线观看| 日本不卡一区二区| 91精品国产综合久久精品麻豆 | 国产精品午夜电影| 国产成人av在线影院| 国产视频一区在线播放| 国产东北露脸精品视频| 国产亚洲欧美激情| 国产成人精品免费一区二区| 久久久久久一二三区| 国产成人高清在线| 中文字幕高清不卡| av在线综合网| 中文字幕一区不卡| 色婷婷av一区二区三区之一色屋| 国产精品国产a级| 91麻豆免费视频| 亚洲尤物视频在线| 在线播放欧美女士性生活| 蜜桃久久久久久| 久久久国产午夜精品| 成人a免费在线看| 亚洲亚洲人成综合网络| 欧美精品久久久久久久多人混战| 日本美女一区二区三区视频| 精品国产乱子伦一区| 成人激情免费网站| 亚洲韩国精品一区| 日韩欧美二区三区| 大白屁股一区二区视频| 一区二区高清免费观看影视大全| 欧美久久高跟鞋激| 国内久久婷婷综合| 日韩伦理免费电影| 制服丝袜亚洲色图| 国产高清在线观看免费不卡| 亚洲女同ⅹxx女同tv| 538prom精品视频线放| 成人性生交大片免费看视频在线| 一级精品视频在线观看宜春院| 欧美一级久久久久久久大片|