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

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

?? 1.cpp

?? 先近先出
?? CPP
字號:
#include<stdio.h> 
#include <dos.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h> 
#include<iostream.h> 
const int MAX=100; //定義最大進程數 
struct PCB //定義進程結構體
{
	char name[20];//進程名
	int  stime;//進程啟動時間
	int  ltime;//進程cpu時間
	int  IOstime;//I/O的開始時間
	int  IOltime;//I/O的持續時間
	int  right;//優先級
	char  state;//進程狀態
}pcbs[MAX];
int round=2;
int t=0;//計時器
int count=0;//記錄進程總數
int complete=0;//已完成的進程數
int time=0;//系統時間
int unstarthead=0;//未開始隊列的隊頭
int ready[MAX];//就緒隊列
int readynum=0;//就緒隊列中的進程個數
int wait[MAX];//等待隊列
int waitnum;//等待隊列中的進程個數
int run=-1;//沒有進程在運行

//讀數據函數 
int readData()
{ 
 FILE *fp; 
 char fname[20]; 
 cout<<"請輸入進程流文件名:"; 
 cin>>fname; 
 if((fp=fopen(fname,"r"))==NULL)
 {cout<<"錯誤,文件打不開,請檢查文件名."<<endl;}
 else 
 {while(!feof(fp))
    {fscanf(fp,"%s %d,%d,%d,%d,%d",pcbs[count].name,&pcbs[count].stime,&pcbs[count].ltime,&pcbs[count].IOstime,&pcbs[count].IOltime,&pcbs[count].right); 
     count++;
    }
  cout<<endl<<"*******************************************************"<<endl;
  cout<<"輸出所讀入的數據:"<<endl;
  cout<<"  name stime ltime IOstime IOltime right"<<endl;
  for(int i=0;i<count;i++)
  {cout<<"  "<<pcbs[i].name<<"   "<<pcbs[i].stime<<"     "<<pcbs[i].ltime<<"      "<<pcbs[i].IOstime<<"       "<<pcbs[i].IOltime<<"      "<<pcbs[i].right<<endl;}     
  return(1); 
 }
 return(0); 
}
//初始化函數,讓進程按開始時間先后排列      
void init()
{
	int i,j;
	for(i=0;i<count;i++)
	{
		for(j=0;j<count-i-1;j++)
		{
			if(pcbs[j].stime>pcbs[j+1].stime)
			{
				pcbs[-1]=pcbs[j];
				pcbs[j]=pcbs[j+1];
				pcbs[j+1]=pcbs[-1];
			}
		}
	}	
}
//將進程投入就緒態
void inready(int i)
{
	ready[readynum]=i;
	readynum++;
}
//檢查未開始隊列中是否有進程可進入就緒態
void checkstart()
{
	while(unstarthead<count&&pcbs[unstarthead].stime==time)//未開始隊列不空且進程的開始時間與系統時間一致
	{
		inready(unstarthead);//將進程調入就緒態
		unstarthead++;//隊頭后移
	}
}
//檢查等待隊列中是否有進程可進入就緒態
void checkwait()
{
	for(int i=0;i<waitnum;i++)
	{
		if(--pcbs[wait[i]].IOltime==0)//隊列中I/O等待時間為零時
		{
			inready(wait[i]);//該進程調入就緒隊列
			waitnum--;
			for(int j=i;j<waitnum;j++)
			{
				wait[j]=wait[j+1];
			}
			i--;
		}
		
	}
}
//從就緒隊列中調出進程
void outready()
{
	if(readynum>0)//如果就緒隊列不空,將第一個進程投入運行
	{
		run=ready[0];
		readynum--;
		for(int i=0;i<readynum;i++)
		{
			ready[i]=ready[i+1];//隊列向前移一個單位
		}
	}
	else if(readynum<=0)
		run=-1;
}
//FIFO進程調度算法
void checkrun1()//檢查運行中的進程是否發生狀態轉換
{
	if(run==-1)//沒有進程正在運行,則從就緒隊列中調入
	{
		outready();
	}
	else//有進程運行中
	{
		if(--pcbs[run].ltime==0)//進程運行完調入完成隊列
		{
			complete++;
			run=-1;//沒有進程運行
			outready();//從就緒隊列調入
		}
		else if(--pcbs[run].IOstime==0)//I/O時間到調入等待隊列
		{
			wait[waitnum]=run;
			waitnum++;
			outready();//沒有進程正在運行,則從就緒隊列中調入
		}
	}
}
//優先級算法
void init2()//初始化就緒隊列并按優先級從高到低排列
{	if(readynum>0)

  {int k,j,temp;
	   for(k=0;k<readynum;k++)
	   {
		for(j=0;j<readynum-k-1;j++)
		{
			if(pcbs[ready[j]].right<pcbs[ready[j+1]].right)
			{
				temp=ready[j];
				ready[j]=ready[j+1];
				ready[j+1]=temp;
			}
		}
	   }	
}
}
void checkrun2()//檢查運行中的進程是否發生狀態轉換
{
	if(run==-1)//沒有進程正在運行,則從就緒隊列中調入
	{
		outready();
	}
	else//有進程運行中
	{
       if(--pcbs[run].ltime==0)//進程運行完調入完成隊列
		{
			complete++;
			run=-1;//沒有進程運行
			outready();//從就緒隊列調入
		}
	  else if(--pcbs[run].IOstime==0)//I/O時間到調入等待隊列
	  {     pcbs[run].right--;
			wait[waitnum]=run;
			waitnum++;
			outready();//沒有進程正在運行,則從就緒隊列中調入
		}
	 else if(readynum!=0)
	 {if(--pcbs[run].right<pcbs[ready[0]].right)//如果當前進程的優先級比就緒隊首的低
	 {
		 inready(run);//將運行的進程調入就緒隊列
		 run=-1;//沒有進程運行
	     outready();//從就緒隊列調入
	 }
	}
	}
}
//時間片輪轉算
void checkrun3() //檢查運行中的進程是否發生狀態轉換
{if(run==-1)//沒有進程正在運行,則從就緒隊列中調入
	{
		outready();
	}
else
	{
        if(--pcbs[run].ltime==0)//進程運行完調入完成隊列
		{   t=0;
			complete++;
			run=-1;//沒有進程運行
			outready();//從就緒隊列調入
		}
		if(--pcbs[run].IOstime==0)//I/O時間到調入等待隊列
		{   t=0;
			wait[waitnum]=run;
			waitnum++;
			outready();//沒有進程正在運行,則從就緒隊列中調入
		}
		else if(++t==round)
        { t=0;
		 inready(run);
		 outready();
		}
	}
}

//顯示提示函數
void version1()
{
 cout<<"                       進  程  調  度  課  程  設  計"<<endl;
 cout<<"                       ++++++++++++++++++++++++++++++"<<endl;
 cout<<"                          (FIFO,優先數,時間片輪轉)"<<endl;
 cout<<"                          ------------------------"<<endl;
}
//顯示輸出結果
void version2()
{
	printf("\n*********** time: %d ************\n",time);
	if(run!=-1)
		printf("On running: %s",pcbs[run].name);
	printf("\nOn ready: ");
	for(int i=0;i<readynum;i++)
	{
		printf("%s  ",pcbs[ready[i]].name);
	}
	printf("\nOn waiting: ");
	for(int j=0;j<waitnum;j++)
	{
		printf("%s  ",pcbs[wait[j]].name);
	}
}
//顯示版權信息函數 
void version3() 
{ 
cout<<endl<<endl;

cout<<"             * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl; 
cout<<"             *         辛苦工作人員名單         *"<<endl; 
cout<<"             * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl; 
cout<<"             *                        *"<<endl; 
cout<<"             *                                       *"<<endl; 
cout<<"             *                         *"<<endl; 
cout<<"             * * * * * * * * * * * * * * * * * * * * * * * * * *"<<endl; 
cout<<endl<<endl; 
} 
void FIFO()//先級先出調度算法
{   
	init();//初始化,按開始時間排序
    while(complete!=count)
	{
		checkstart();//檢查是否有進程要開始
		checkwait();//檢查等待隊列中的進程是否進入就緒隊列
		checkrun1();//檢查運行中的進程是否發生狀態轉換
        version2();
		time++;
	}
  version3();
}
void privilege()//優先級調度算法
{  init();//初始化,按開始時間排序

     while(complete!=count)
	{
		checkstart();//檢查是否有進程要開始
		checkwait();//檢查等待隊列中的進程是否進入就緒隊列
		init2();//初始化就緒隊列,按優先級高低排列
		checkrun2();//檢查運行中的進程是否發生狀態轉換
        version2();
		time++;
	}
  version3();
}
void roundrun()//時間片輪轉調度算法
{
 init();//初始化,按時間開始先后排序
 while(complete!=count)
 { 
   checkstart();//檢查是否有進程要開始
   checkwait();//檢查等待隊列中的進程是否進入就緒隊列
   
   checkrun3();//檢查運行中的進程是否發生狀態轉換
   version2();   
   time++;
 }
version3();
}
void main()//主函數 
{ 
int flag; 
version1(); 
init(); 
flag=readData();
cout<<""<<endl;
cout<<"(F-FIFO算法,P-優先數算法,R-時間片輪轉),請選擇(F/P/R):"<<endl;
if(flag==1)
{
  char c;	
  scanf("%c",&c);
  switch(c)
  { case 'F':FIFO();break;
    case 'P':privilege();break;
	case 'R':roundrun();break;
   default:printf("error");
  }
} 
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美日韩三级| 国产精品一区二区三区网站| 青青草原综合久久大伊人精品| 久久精品国产亚洲a| 色欧美88888久久久久久影院| 91精品国产综合久久久久久久| 中文字幕在线免费不卡| 免费看日韩精品| 在线免费观看成人短视频| 国产日韩欧美一区二区三区乱码 | 精品亚洲免费视频| 92精品国产成人观看免费 | 91浏览器入口在线观看| 欧美酷刑日本凌虐凌虐| 中文字幕在线不卡| 国产v日产∨综合v精品视频| 91精品一区二区三区久久久久久| 亚洲男人的天堂在线aⅴ视频 | 日韩欧美亚洲一区二区| 亚洲成人久久影院| 在线影视一区二区三区| 亚洲欧美色一区| av亚洲精华国产精华精华| 精品福利二区三区| 久久电影网站中文字幕| 日韩一区二区在线观看视频| 天堂在线一区二区| 欧美精品777| 午夜久久久久久久久 | 91香蕉国产在线观看软件| 国产欧美日韩另类一区| 国产成人av电影在线播放| 久久精品人人爽人人爽| 国产成人精品影视| 久久久99精品免费观看| 国产一区二区三区精品视频| 久久综合狠狠综合久久激情| 国产精品自拍在线| 国产亚洲成aⅴ人片在线观看 | 日本不卡一区二区三区高清视频| 在线观看成人小视频| 一区二区三区中文字幕在线观看| 91亚洲国产成人精品一区二区三 | 久久国产三级精品| 精品少妇一区二区三区视频免付费| 天天做天天摸天天爽国产一区| 欧美日韩在线直播| 免费一级片91| 久久精品一区二区三区不卡牛牛| 国产成人精品一区二区三区四区 | 不卡一卡二卡三乱码免费网站| 国产精品色哟哟网站| 97精品国产露脸对白| 亚洲午夜久久久久久久久电影网 | 欧美探花视频资源| 丝袜美腿亚洲综合| 久久久亚洲午夜电影| 91网址在线看| 日韩综合小视频| 国产日韩综合av| 91福利社在线观看| 久久99精品久久久久久久久久久久| 亚洲一区二区在线免费看| 欧美久久一二三四区| 韩国av一区二区三区四区| 中文字幕日本不卡| 欧美精品色一区二区三区| 韩国视频一区二区| 亚洲视频一二三| 制服丝袜激情欧洲亚洲| 国产精品小仙女| 亚洲韩国精品一区| 久久亚洲精精品中文字幕早川悠里 | 中文字幕精品—区二区四季| 日本道免费精品一区二区三区| 奇米影视在线99精品| 欧美激情一区二区在线| 欧美一区二区在线播放| 99在线精品观看| 久久99蜜桃精品| 亚洲午夜激情网站| 国产精品国产精品国产专区不蜜| 欧美日本在线播放| av在线不卡电影| 在线免费观看日韩欧美| 国产精品18久久久久久久久| 亚洲成av人影院| 一区精品在线播放| 久久久99精品免费观看不卡| 91精品国产综合久久久久久漫画 | 成人精品视频网站| 免费日韩伦理电影| 亚洲午夜久久久久| 亚洲黄网站在线观看| 国产精品人妖ts系列视频| 欧美mv和日韩mv的网站| 欧美三级视频在线| 91美女在线看| 成人国产精品免费观看动漫| 热久久一区二区| 视频一区视频二区中文字幕| 亚洲黄色小视频| 亚洲欧美激情在线| 国产精品成人一区二区艾草| 日本一区二区三区高清不卡| 日韩欧美aaaaaa| 91精品国产综合久久婷婷香蕉| 欧美日韩一区二区在线观看视频| 99re视频这里只有精品| 不卡一区二区在线| 99视频一区二区| 99re成人在线| 91首页免费视频| 91丝袜美女网| 色综合久久综合中文综合网| av午夜精品一区二区三区| 岛国av在线一区| fc2成人免费人成在线观看播放| 国产精品综合二区| 国产a精品视频| 成人激情电影免费在线观看| 成人动漫一区二区在线| 99国产欧美另类久久久精品| 91一区二区在线| 欧美日韩一级视频| 91精品国产综合久久婷婷香蕉 | 免费观看在线色综合| 午夜成人免费视频| 日韩精品亚洲一区| 国内欧美视频一区二区| 国产69精品久久99不卡| 99re这里只有精品首页| 欧美综合在线视频| 日韩一区二区三区在线观看| 欧美电视剧在线观看完整版| 久久老女人爱爱| 亚洲人吸女人奶水| 五月综合激情网| 精品一二线国产| 99久久免费精品| 久久精品日产第一区二区三区高清版| 久久精品一区二区三区四区| 国产精品久久久久久久久快鸭| 亚洲欧美日韩久久| 视频一区国产视频| 国产精品亚洲视频| 欧洲亚洲国产日韩| 日韩精品一区二区三区视频| 国产精品日日摸夜夜摸av| 亚洲高清在线视频| 国产精品一区二区在线看| 色综合久久天天综合网| 日韩一级成人av| 国产精品剧情在线亚洲| 天天综合色天天| 丁香一区二区三区| 91精品久久久久久久91蜜桃 | 91在线视频观看| 91精品国产黑色紧身裤美女| 2023国产一二三区日本精品2022| 亚洲色图欧洲色图| 国内国产精品久久| 欧美亚洲一区三区| 国产无人区一区二区三区| 亚洲午夜激情av| 成人97人人超碰人人99| 日韩免费成人网| 亚洲精品视频免费看| 激情综合网天天干| 欧美日韩国产高清一区二区三区 | 另类成人小视频在线| 91美女在线看| 国产色爱av资源综合区| 日韩电影在线观看电影| 一本久道久久综合中文字幕| 久久久久久久久蜜桃| 午夜欧美一区二区三区在线播放| 福利视频网站一区二区三区| 日韩欧美中文字幕精品| 亚洲v中文字幕| 91国产成人在线| 中文字幕在线不卡一区| 成人免费视频一区| 国产午夜精品在线观看| 国产在线一区观看| 日韩欧美中文一区二区| 日韩精品视频网站| 色丁香久综合在线久综合在线观看| 精品国产一区二区亚洲人成毛片| 亚洲成人动漫精品| 91国在线观看| 亚洲免费观看高清完整版在线| 高清成人在线观看| 中文文精品字幕一区二区| 国产乱码精品一区二区三| ww亚洲ww在线观看国产| 韩国毛片一区二区三区| 久久亚洲精精品中文字幕早川悠里| 麻豆国产91在线播放| 久久夜色精品一区|