真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

短作業(yè)優(yōu)先調(diào)度算法(c++)-創(chuàng)新互聯(lián)

操作系統(tǒng)進程的基本調(diào)度算法,短作業(yè)優(yōu)先是先來先服務(wù)算法的一種改進,能獲得大的系統(tǒng)吞吐率。它和先來先服務(wù)算法的區(qū)別在于當有多個進程在就緒隊列時,要選擇一個服務(wù)時間最短的進行執(zhí)行,這樣的話在一定時間內(nèi)能夠執(zhí)行的進程數(shù)量最多(吞吐率大)

創(chuàng)新互聯(lián)于2013年成立,先為尉氏等服務(wù)建站,尉氏等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為尉氏企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

輸入即將到達的進程數(shù)還有進程的信息,時間片大小,初始化pcb

最先到達且最短的進程換到1號位,計算第一個進程的完成時間,

將系統(tǒng)時間設(shè)為這個值,設(shè)下一個執(zhí)行進程序號nextprocess

已完成進程數(shù)sum=1

進入死循環(huán)

{? ? ?if(完成進程數(shù)>= 進程總數(shù))

跳出死循環(huán)

設(shè)nextprocess為sum+1

循環(huán)查找有沒有已到達且更短的進程,換到nextprocess位

if(nextprocess位的進程沒到達)

系統(tǒng)時間變?yōu)樗竭_的時間

計算nextprocess進程完成時間,系統(tǒng)時間等于這個時間,sum+1

}

代碼實現(xiàn)如下

#define N 5     //進程數(shù)量
#includeusing namespace std;

struct pcb
{
	char process_name[10];   //進程名字
	int arrive_time;   		//到達時間
	int service_time;   	//服務(wù)時間
	int complete_time;   	//完成時間

}PCB[N+1];             //0號單元不存數(shù)據(jù),只做交換

int sjf(int n)
{
	int i;
	cout<< "\n請輸入各進程的信息\n"<< endl;
	for(i=1;i<=n;i++)      //輸入各進程信息
	{
		cout<< "------\n請輸入第"<< i<< "進程名字: ";
		cin >>PCB[i].process_name ;
		cout<< "請輸入到達時間: " ;
		cin >>PCB[i].arrive_time  ;
		cout<< "請輸入服務(wù)時間: " ;
		cin >>PCB[i].service_time ;

	}
	{	//最先到達且最短的進程換到1號位
		int temp = 1;
		for (i = 2; i<= n; i++)
		{
			if (PCB[temp].arrive_time >PCB[i].arrive_time ||
				(PCB[temp].arrive_time == PCB[i].arrive_time && PCB[temp].service_time >PCB[i].service_time))
			{
				temp = i;
			}
		}
		PCB[0] = PCB[temp];
		PCB[temp] = PCB[1];
		PCB[1] = PCB[0];				
	}
	
	int sum=1;     			  //已完成進程數(shù)
	PCB[1].complete_time = PCB[1].arrive_time + PCB[1].service_time;
	int time = PCB[1].complete_time;    //第一個進程結(jié)束時間(最先到達且最短的) ,也是當前系統(tǒng)時間

	cout<< "\n第1次進程調(diào)度運行的進程為 :   "<< PCB[1].process_name<< endl;

	int nextprocess ;     //下一次調(diào)度進程的pcb序號
	while(1)
	{	if(sum >= n)
		  break;

		nextprocess = i = sum+1;
		while(i<=n)
		{								//未執(zhí)行進程中有已到達且更短的
			if(time >= PCB[i].arrive_time  && PCB[i].service_time< PCB[nextprocess].service_time )
				nextprocess = i ;
			i++;
		}

		{
			PCB[0]=PCB[nextprocess];       		//將下一個執(zhí)行進程換到sum+1位
			PCB[nextprocess]=PCB[sum+1];
			PCB[sum+1]=PCB[0];
			nextprocess = sum + 1;
		}
		
		if(PCB[nextprocess].arrive_time >time)
		{
			time = PCB[nextprocess].arrive_time ;
		}

		time +=  PCB[nextprocess].service_time;     //nextprocess執(zhí)行完的時間
		PCB[nextprocess].complete_time = time;
		sum++;
		cout<< "第"<< sum<< "次進程調(diào)度運行的進程為 :   "<< PCB[nextprocess].process_name<< endl;
	}

	return 0;
}


void print()
{
	int i = 1;
	float round_time[N+1], force_round_time[N+1], sum = 0;
	cout<< "\n 進程   |"<< "到達時間  |"<< "  服務(wù)時間   |"<< "  完成時間   |"<< "  周轉(zhuǎn)時間  |"<< " 帶權(quán)周轉(zhuǎn)時間"<< endl;
	while (i

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧


網(wǎng)頁題目:短作業(yè)優(yōu)先調(diào)度算法(c++)-創(chuàng)新互聯(lián)
網(wǎng)頁URL:http://weahome.cn/article/cdgdjs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部