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

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

?? process.cpp

?? 進程調度模擬程序
?? CPP
字號:
//
//程序名稱:進程調度模擬程序
//程序作者:張煥人
//作者郵箱: renwairen369@yahoo.com.cn
//          renwairen369@hotmail.com
//作者QQ:27949278
//
//
//


#include <iostream.h>
#include <stdio.h>
typedef struct pcb 
{ 
 char name[10];  //進程名
 char state;   //狀態w(就緒)r(運行)f(結束)
 int super;   //優先級
 int atime;   //到達時間
 int ntime;   //需運行的時間
 int rtime;   //已運行的時間
 struct pcb *next;
}*pcb1; 

int time=0;
int alg=1;
pcb1 s,w;//s,w分別是就緒隊列、阻塞隊列的節點


void print(pcb1 p)
//輸出就緒隊列信息
{
 pcb1 p0; //c語言當中指針傳遞直接傳地址!!!
 if(p==NULL) cout<<"  當前隊列為空"<<endl;
 else
 {
       p0=p;
	   cout<<"  "<< p0->name;
	   p0=p0->next;
       while(p0!=NULL)
	   {
	       cout<<" -> ";
		   cout<<p0->name;
		   p0=p0->next;
	   }
       cout<<endl;
 }
 
}

void printpcb()
//輸出pcb信息
{
 pcb1 p0;
 if(s==NULL&&w==NULL) cout<<"  當前沒有進程處于調度中"<<endl;
 else
 {
       cout<<"當前處于調度中進程的PCB信息:"<<endl;
       cout<<"\t進程名 "<<"\t優先級 "<<"\t狀態"<<"\t到達時間 "<<"\t已運行時間 "<<"\t需運行時間"<<endl;
       p0=s;
	   while(p0!=NULL)
	   {
	       cout<<"\t"<<p0->name<<"\t "<<p0->super<<"\t "<<p0->state<<"\t "<<p0->atime<<"\t\t "<<p0->rtime<<"\t\t "<<p0->ntime<<endl;
	       p0=p0->next;
	   }
	   p0=w;
	   while(w!=NULL)
	   {
	       cout<<"\t"<<p0->name<<"\t "<<p0->super<<"\t "<<p0->state<<"\t "<<p0->atime<<"\t\t "<<p0->rtime<<"\t\t "<<p0->ntime<<endl;
	       p0=p0->next;
	   }
 }
 
 
}

//check the queue if empty
bool empty(pcb1 r)
//隊列為空返回true,否則返回false
{
 if(r==NULL)
  return true;
 else
  return false;
}


void sort0(pcb1 &r,pcb1 p)
{  
	pcb1 p0=r;
    bool in=false;
    if(r==NULL)//隊列為空
	{
       r=p;
	}
	else 
	{
		while(p0->next!=NULL)  p0=p0->next;
		p0->next=p;
	}
}

void sort(pcb1 &r,pcb1 p)
//根據優先級將進程排序,插入到就緒隊列或阻塞隊列當中
{
 pcb1 p1,p2;
 bool in=false;
 if(r==NULL)//隊列為空
 {
  r=p;
 }
 else  
 {
  if(p->super>=r->super)//待插入的進程優先級比隊列第一個進程優先級要高
  {         
   p->next=r;
   r=p;
  }
  else
  {
   p1=r;
   p2=r->next;
   if(p2==NULL)//only one process in the queue
   {
    r->next=p;
   }
   else
   {
    while(in==false&&p2!=NULL)//insert to the middle of the queue
    {
     if(p->super>=p2->super)
     {
      p->next=p2;
      p1->next=p;
      in=true;
     }
     else
     {
      p1=p1->next;
      p2=p2->next;
     }
    }
   }
   
   if(!in)//如果進程沒有插入到隊列之中(優先級最小)將進程插入到就緒隊列最后
    p1->next=p;
  }
 }
}


void block()
//將進程阻塞并插入到阻塞隊列當中block one process and insert to block queue
{
 if(!empty(s))  //就緒隊列不空  
 {
  if(s->next==NULL)
  {
   if(alg) sort(w,s);
   else   sort0(w,s);
   s=s->next;
  }
  else
  {
   pcb1 p1;
   p1=s;  
   s=s->next;
   p1->next=NULL;
   if(alg) sort(w,p1);
   else   sort0(w,p1);
   
  }
 }
 else
 {
  cout<<endl<<endl;
  cout<<"  現在就緒隊列已經為空,再沒有進程需要阻塞"<<endl;
 }
}


void wake()
//喚醒阻塞隊列當中的一個進程并插入到就緒隊列當中
{
 if(!empty(w))  //就緒隊列不空
 {
  pcb1 p1;
  p1=w;  
  w=w->next;
  p1->next=NULL;
  if(alg) sort(s,p1);
   else   sort0(s,p1);
   
 }
 else 
 {
  cout<<endl<<endl;
  cout<<"  阻塞隊列已經為空,沒有進程再需要喚醒"<<endl;
 }
}


bool finished()
//檢查就緒隊列的第一個進程是否完成
{
 pcb1 p;
 p=s;
 if(p->rtime==p->ntime)
 {
  p->state='F';//進程運行結束
  cout<<endl<<"  進程"<<p->name<<" 已經結束"<<endl<<endl;
  return true;
 }
 else
  return false;
}

void run()
{
  time++;
  if(!empty(s)) //就緒隊列不空
 {
  pcb1 p;
  p=s;
  if(!finished()) //就緒隊列隊首進程是否運行結束
  {//沒有運行結束
   s=s->next;
   p->rtime++;
   p->super--; 
   p->next=NULL;
   if(alg) sort(s,p);
   else   sort0(s,p);
   
  }
  else
  {//已經運行結束
   s=s->next;
   delete p;
  }
 }
 else  //就緒隊列為空
 {
    cout<<endl<<"  就緒隊列已經為空"<<endl<<endl;
 }
 cout<<"就緒隊列的信息:"<<endl;
 print(s);
 printpcb();
 printf("%s","按任意鍵繼續...");
 getchar();
 
}


void creat()
//創建進程
{
  pcb1 p;
  p=new pcb;
  cout<<"請輸入進程的相應信息"<<endl;
  cout<<"  進程名: ";
  cin>>p->name;
  cout<<"  進程優先級: ";
  cin>>p->super;
//  cout<<"程序到達時間時間: ";
//  cin>>p->atime;
  p->atime=time;
  cout<<"  需要運行時間: ";
  cin>>p->ntime;
 
  p->atime=time;
  p->rtime=0;
  p->state='W'; //就緒狀態
  p->next=NULL;
  if(alg) sort(s,p);//按優先級將進程p插入到就緒隊列當中
   else   sort0(s,p); 
}

void menu()
{
	 cout<<endl<<"                               進程調度程序"<<endl<<endl;
     cout<<"               1.  創建進程                  2.  運行進程      "<<endl;    
	 cout<<"               3.  阻塞進程                  4.  喚醒進程      "<<endl;
     cout<<"               5. 查看就緒隊列               6. 查看阻塞隊列   " <<endl;
	 cout<<"               7. 查看進程 PCB               8.  退出程序      "<<endl<<endl;
}

//main function
void main()
{
 char ch;
 s=NULL;
 w=NULL;
 cout<<"請選擇用于調度的算法 0.先來先服務 1.優先權算法:  ";
 cin>>alg;
 menu();
 cout<<"請選擇相應功能: ";
 cin>>ch;
 while(ch!='8')
 {
  
  switch(ch)
  {
   case '1': creat();   break;
   case '2': run();     break;
   case '5': cout<<"就緒隊列進程信息:"<<endl;
	         print(s);  
			 printf("%s","按任意鍵繼續...");
             getchar();
			 break;
   case '6': cout<<"阻塞隊列進程信息:"<<endl;
	         print(w);  
			 printf("%s","按任意鍵繼續...");
             getchar();
			 break;
   case '7': printpcb();
	         printf("%s","按任意鍵繼續...");
             getchar();
	         break; 
   case '4': wake();    break;
   case '3': block();   break;
  }
  menu();
  cout<<"請選擇相應功能: ";
  cin>>ch;
 }
}
















?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
经典三级视频一区| 久久精品在这里| 久久99精品久久久久久| 国产精品成人一区二区艾草 | 国产一区二区三区在线观看免费 | 六月婷婷色综合| 亚洲三级免费观看| 久久综合一区二区| 在线精品亚洲一区二区不卡| 国产一区二区调教| 污片在线观看一区二区| 亚洲品质自拍视频网站| 国产网红主播福利一区二区| 91高清视频在线| 99re这里只有精品视频首页| 国产一区二区三区观看| 三级影片在线观看欧美日韩一区二区| 国产偷国产偷精品高清尤物| 欧美成人官网二区| 91精品国产一区二区三区| 欧美无砖砖区免费| 不卡欧美aaaaa| 精品福利一区二区三区免费视频| 一区二区三区四区不卡视频| 日本道免费精品一区二区三区| 亚洲无线码一区二区三区| 日本道色综合久久| 国产制服丝袜一区| 九九在线精品视频| 日本精品一级二级| 不卡免费追剧大全电视剧网站| 国产在线精品一区二区夜色 | 欧美性三三影院| bt7086福利一区国产| 粉嫩久久99精品久久久久久夜| 午夜伦欧美伦电影理论片| 亚洲一区免费观看| 一区二区三区国产精华| 蜜桃在线一区二区三区| xnxx国产精品| 精品国产精品一区二区夜夜嗨| 欧美一区二区三区四区久久| 欧美日韩一区三区四区| 成人手机在线视频| 成人免费毛片高清视频| 丁香六月综合激情| 99精品国产91久久久久久| 北条麻妃国产九九精品视频| 成人午夜私人影院| 91免费观看国产| 欧洲激情一区二区| 欧美日韩一区在线观看| 欧美丝袜自拍制服另类| 7777精品伊人久久久大香线蕉超级流畅 | 色综合久久综合| 在线观看欧美精品| 欧美美女一区二区| 欧美成人精品3d动漫h| 精品免费一区二区三区| 久久欧美一区二区| 综合激情成人伊人| 亚洲超碰精品一区二区| 裸体一区二区三区| 国产大片一区二区| 91福利社在线观看| 欧美一区二区三区视频免费播放| 精品成人一区二区三区四区| 日韩精品一二三| 亚洲人成人一区二区在线观看 | 在线观看视频一区二区欧美日韩| 欧美日韩国产在线播放网站| 日韩欧美精品三级| 国产日韩欧美精品综合| 亚洲乱码一区二区三区在线观看| 亚洲成人自拍网| 国产乱一区二区| 99久久综合精品| 91精品久久久久久蜜臀| 国产欧美日本一区视频| 夜夜亚洲天天久久| 蜜桃在线一区二区三区| 97久久精品人人做人人爽50路| 欧美人伦禁忌dvd放荡欲情| 国产农村妇女毛片精品久久麻豆| 综合电影一区二区三区| 另类小说欧美激情| 欧美中文一区二区三区| 久久精品免费在线观看| 亚洲成人动漫一区| 大美女一区二区三区| 日韩一级免费一区| 亚洲欧美电影院| 丝袜脚交一区二区| 不卡在线观看av| 日韩三级中文字幕| 亚洲男人电影天堂| 国产精品99久久久| 欧美网站大全在线观看| 国产区在线观看成人精品| 视频一区在线播放| 日本韩国精品在线| 欧美国产日产图区| 麻豆成人av在线| 欧美视频中文字幕| 国产精品久久国产精麻豆99网站| 人妖欧美一区二区| 成人国产免费视频| www一区二区| 三级亚洲高清视频| 欧美午夜视频网站| 亚洲丝袜另类动漫二区| 国产资源精品在线观看| 日韩一区二区三区观看| 亚洲国产日产av| 91丝袜美腿高跟国产极品老师| 国产亚洲欧美激情| 91麻豆免费观看| 欧美一区二区在线观看| 一区二区三区精品久久久| 国产乱淫av一区二区三区| 日韩一级免费观看| 天天免费综合色| 色综合久久综合| 一区视频在线播放| 国产成人一级电影| 欧美sm极限捆绑bd| 奇米一区二区三区| 欧美理论电影在线| 午夜精品福利视频网站| 在线观看成人小视频| 亚洲综合视频网| 欧美亚洲综合在线| 亚洲日本乱码在线观看| 91美女视频网站| 亚洲精品日韩专区silk| 在线观看亚洲精品| 夜夜嗨av一区二区三区四季av| 色偷偷成人一区二区三区91| 亚洲婷婷综合久久一本伊一区| 色综合欧美在线视频区| 亚洲欧美激情小说另类| 一道本成人在线| 亚洲午夜电影在线观看| 欧美日本一区二区在线观看| 日韩电影在线免费看| 久久丝袜美腿综合| 老司机精品视频一区二区三区| 91精品欧美久久久久久动漫| 欧美aⅴ一区二区三区视频| 欧美电影免费观看高清完整版| 六月丁香综合在线视频| 久久网这里都是精品| 国产成人午夜精品影院观看视频| 久久久久久免费| 91视频一区二区| 亚洲大尺度视频在线观看| 日韩一区二区在线看| 国产九色精品成人porny| 中文字幕av一区二区三区| 99国产精品久久久久久久久久| 亚洲第一搞黄网站| 久久亚洲一级片| 色综合天天狠狠| 人人狠狠综合久久亚洲| 国产肉丝袜一区二区| 欧美在线|欧美| 久久电影网站中文字幕| 国产精品视频一区二区三区不卡| 91久久线看在观草草青青 | 亚洲狠狠爱一区二区三区| 6080午夜不卡| 国产精品1区二区.| 亚洲一区二区欧美激情| 久久久久久久久蜜桃| 91丨九色丨蝌蚪丨老版| 欧美丝袜第三区| 激情都市一区二区| 狠狠狠色丁香婷婷综合激情| 亚洲特黄一级片| 精品国精品自拍自在线| 91丝袜国产在线播放| 老司机免费视频一区二区| 最新国产成人在线观看| 日韩欧美一级二级三级| 日本精品裸体写真集在线观看| 激情都市一区二区| 亚洲国产另类精品专区| 国产精品无遮挡| 91精品国产色综合久久| 99国产精品久久| 国产乱人伦偷精品视频不卡 | 亚洲日本在线视频观看| 日韩一二在线观看| bt7086福利一区国产| 久久se这里有精品| 亚洲一区二区三区精品在线| 国产午夜精品久久久久久久 | 视频一区二区三区入口| 国产精品免费看片| 日韩美女视频一区二区在线观看|