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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? main.cpp

?? 進(jìn)程調(diào)度算法,優(yōu)先級算法,靜態(tài)優(yōu)先級和運(yùn)行時候優(yōu)先級自動調(diào)整
?? CPP
字號:
#include <iostream.h>
#include <string.h>
#include <fstream.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>

const int TIMESLICE = 1;//時間片
const int FINISH=0;//完成狀態(tài)
const int RUNNING=1;//運(yùn)行狀態(tài)
const int READY=2;//就緒狀態(tài)
const int IO=3;//io狀態(tài)
const int WAIT=4;//等待IO

typedef struct {
	long pid;
	char pname[10];
	int pstate;
	int pneedtime;
	int piostarttime;
	int pioneedtime;
	int ptime;
	int priority;
}pcbs;//pcb結(jié)構(gòu)

class pcbnode;
//隊(duì)列結(jié)點(diǎn)
class pcbnode
{
public:
	pcbs *pcb;
	pcbnode *link;
	pcbnode();
	~pcbnode();
	int run();//運(yùn)行操作
	int runend();//運(yùn)行結(jié)束?
	void runio();//IO操作
	int ioend();//io結(jié)束?
	int insertnode(pcbnode *p,pcbnode *q);//在q后插入結(jié)點(diǎn)p
	int deletenode(pcbnode *p,pcbnode *q);//刪除p結(jié)點(diǎn),q為p的前驅(qū)
	int addnode(pcbnode *p);//增加結(jié)點(diǎn)
	int pcbnode::isio();//是否開始IO
};
pcbnode::pcbnode()
{
	pcb=0;
	link=0;
}
pcbnode::~pcbnode()
{
	if (link)
		delete link;
	if (pcb)
		pcb->pstate=FINISH;
}
int pcbnode::run()
{
	pcb->pstate = RUNNING;
	++(pcb->ptime);
	pcb->priority --;//優(yōu)先級降低
	return 0;
}
int pcbnode::runend()
{
	return (pcb->pneedtime <= pcb->ptime);
}
int pcbnode::isio()
{
	return (pcb->piostarttime == pcb->ptime && pcb->pioneedtime>0);
}
int pcbnode::ioend()
{
	return ((pcb->pioneedtime) <= 0);
}
void pcbnode::runio()
{
	pcb->pstate = IO;
	--(pcb->pioneedtime);
}
int pcbnode::addnode(pcbnode *p)
{
	pcbnode *q;
	q = this;
	p->pcb->pstate = READY;
	while(q->link)
	{
		q=q->link;
	}
	q->link=p;
	return 0;
}
int pcbnode::insertnode(pcbnode *p,pcbnode *q)
{
	p->link = q->link;
	q->link = p;
	return 0;
}
int pcbnode::deletenode(pcbnode *p,pcbnode *q)
{
	q->link = p->link;
	p->link = 0;
	return 0;
}
int randInt( int seed)
//隨即函數(shù):產(chǎn)生不大于seed的正整數(shù)
{
	int r;
	r=rand();
	while ( r>seed || r<0 )
		r=rand();
	return r;
}
void newpcb1(pcbs *pcb, int order)//隨機(jī)生成進(jìn)程
{
	char buf[10];
	pcb->pid = order;
	strcpy(pcb->pname,"proc");
	itoa(order,buf,10);
	strcat(pcb->pname,buf);
	pcb->pneedtime = randInt(10);
	pcb->piostarttime = randInt(pcb->pneedtime);
	pcb->pioneedtime = randInt(10);
	pcb->ptime = 0;
	pcb->priority = randInt(10);
}
void newpcb2(pcbs *pcb,int porder)//手動生成進(jìn)程
{
	char buf[10];
	cout<<"Input the pid:          ";
	cin>>porder;
	pcb->pid = porder;
	strcpy(pcb->pname,"proc");
	itoa(porder,buf,10);
	strcat(pcb->pname,buf);
	cout<<"Input the pneedtime:    ";
	cin>>pcb->pneedtime;
	cout<<"Input the pioneedtime:  ";
	cin>>pcb->pioneedtime;
	cout<<"Input the priority:     ";
	cin>>pcb->priority;
	pcb->piostarttime = pcb->pioneedtime;
	pcb->ptime = 0;
}
void pprint(pcbs *pcb, int count)
{
//打印進(jìn)程狀態(tài)

	ofstream ofs("result.txt", ios::out|ios::app);
	cout<<"pcb:id name stat need iostart ioneed runtime pri"<<endl;
	ofs<<"pcb:id name stat need iostart ioneed runtime pri"<<endl;
	for (int i=0;i<count;i++)
	{
		cout<<pcb->pid<<','<< pcb->pname<<',';
		ofs<<pcb->pid<<','<< pcb->pname<<',';
		switch(pcb->pstate)
		{
case 3://IO
	cout<<"IO";
	ofs<<"IO";
	break;
case 1://RUNNING
	cout<<"RUNNING ";
	ofs<<"RUNNING ";
	break;
case 2://READY
	cout<<"READY";
	ofs<<"READY";
	break;
case 0://FINISH
	cout<<"FINISH";
	ofs<<"FINISH";
	break;
case 4://WAIT
	cout<<"WAIT";
	ofs<<"WAIT";
	break;
		}
		cout<<'"'<<pcb->pneedtime;
		ofs<<'"'<<pcb->pneedtime;
		cout<<'"'<<pcb->piostarttime<<'"'<<pcb->pioneedtime<<'"'<<pcb->ptime;
		ofs<<'"'<<pcb->piostarttime<<'"'<<pcb->pioneedtime<<'"'<<pcb->ptime;
		cout<<'"'<<pcb->priority;
		ofs<<'"'<<pcb->priority;
		cout<< endl;
		ofs<< endl;
		*pcb++;
	}
	ofs<<"---------------------------------------------"<<endl;
	cout<<"---------------------------------------------"<<endl;
}


void generalpriority(pcbs * pcb, int pcbsnum)
//普通的優(yōu)先調(diào)度
/*
* 從就緒隊(duì)列中取出最優(yōu)先的進(jìn)程送到運(yùn)行隊(duì)列
* 如果運(yùn)行結(jié)束或要執(zhí)行IO再重新調(diào)度
*/
{
	pcbnode running,ready,blocked;
	pcbnode *p,*f,*front;
	pcbnode *q;
/*將進(jìn)程表中的進(jìn)程加到就緒隊(duì)列中*/
	for ( int i=0;i<pcbsnum;i++)
	{
		p = new pcbnode;
		p->pcb = pcb+i;
		ready.addnode(p);
	}
	while(ready.link || running.link || blocked.link)
	{//判斷將運(yùn)行隊(duì)列中的進(jìn)程是否要io或結(jié)束
		if (running.link)
		{
			if (running.link->isio())
			{//需要IO?
				blocked.addnode(running.link);
				running.link->pcb->pstate = WAIT;
				running.link = 0;
			}
			else if (running.link->runend())
			{//運(yùn)行結(jié)束?
				p = running.link;
				running.link = 0;
				delete p;
			}
		}
		if (!running.link)
		{
			//當(dāng)運(yùn)行隊(duì)列為空
			//尋找最大的一個優(yōu)先級
			p = ready.link;
			q = p;
			f = &ready;
			front = f;
			if (p)
			{
				int maxpri = p->pcb->priority;
				while(p)
				{
					if (p->pcb->priority > maxpri)
					{
						maxpri = p->pcb->priority;
						front = f;
						q = p;
					}
					f = p;
					p = p->link;
				}
			}
			p = running.link;
			if (q)
			{
				running.addnode(q);
				ready.deletenode(q, front);
				q->pcb->pstate=RUNNING;
			}
		}
/*
* 將處理完IO的進(jìn)程送到就緒隊(duì)列
*/
		p = blocked.link;
		q = &blocked;
		if (p) 
		{
			int r;
			r = p->ioend();
			if (r) 
			{
				blocked.deletenode(p, q);
				ready.addnode(p);
				p=q->link;
			}
		}

/*
* 運(yùn)行進(jìn)程
*/
		p = running.link;
		q = &running;
		if (p)
		{
			int r;
			if (!(p->isio()))
				//is IO start?
				r=p->run();//RUN
		}
/*
* 進(jìn)行IO
*/
		p = blocked.link;
		q = &blocked;
		if (p)
			p->runio();
		//print proc state
		pprint(pcb, pcbsnum);
	}
}
void main()
{
	int i,pcbsnum;
	pcbs *pcblist;//進(jìn)程表
	remove("result.txt");
	cout<<"Frist,bulit the pcblist"<<endl;
	cout<<"Input the pcbsnum:   ";
	cin>>pcbsnum;
	pcblist = new pcbs[pcbsnum];//為進(jìn)程表分配空間
	cout<<"1.自動生成進(jìn)程 2.手動生成進(jìn)程:        ";
	cin>>i;
	if(i==1)
	for(int i = 0; i < pcbsnum; i++)
		newpcb1(pcblist+i, i);
	else for(int i = 0; i < pcbsnum; i++)
		newpcb2(pcblist+i, i);
	cout<<"Second,print the pcblist:"<<endl;
	pprint(pcblist, pcbsnum);
	cout<<"Third,print the pcb dispatch:"<<endl;
	getchar();
	generalpriority(pcblist,pcbsnum);
	
	delete pcblist;//釋放進(jìn)程空間
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩午夜电影在线观看| 亚洲三级免费电影| 色8久久人人97超碰香蕉987| 蜜臀av性久久久久蜜臀av麻豆| 中文字幕国产精品一区二区| 日韩一区二区三区三四区视频在线观看 | 亚洲精品日日夜夜| 久久久亚洲欧洲日产国码αv| 日本丰满少妇一区二区三区| 毛片av一区二区| 亚洲二区视频在线| 国产日韩精品视频一区| 欧美挠脚心视频网站| 成人午夜视频在线观看| 毛片av一区二区| 婷婷激情综合网| 日韩理论片中文av| 中文字幕av免费专区久久| 日韩一区二区不卡| 在线综合亚洲欧美在线视频| 在线观看www91| 一本一道综合狠狠老| 国产成人av网站| 久久国产剧场电影| 麻豆一区二区99久久久久| 视频在线观看一区二区三区| 一个色妞综合视频在线观看| 中文字幕一区二区三| 日本一区二区成人在线| 久久亚洲一区二区三区四区| 日韩视频123| 欧美一区二区视频免费观看| 欧美日韩国产另类一区| 在线视频国内自拍亚洲视频| 成人av电影在线网| 99在线精品观看| 97国产一区二区| 91美女在线视频| 色婷婷精品大在线视频| 色婷婷久久综合| 91黄色免费版| 欧美日韩精品电影| 7777精品伊人久久久大香线蕉超级流畅 | 欧美成人r级一区二区三区| 欧美日韩成人综合天天影院 | 美女视频免费一区| 久久精品免费观看| 国产精品自拍在线| 国产成人免费视频网站| 大尺度一区二区| 94-欧美-setu| 在线看不卡av| 欧美一级免费大片| 久久美女高清视频| 中文字幕人成不卡一区| 一区二区三区欧美日韩| 亚洲电影中文字幕在线观看| 天天色天天操综合| 精品一区二区三区不卡| 顶级嫩模精品视频在线看| 99久久精品国产网站| 欧美自拍丝袜亚洲| 日韩欧美一二三| 国产日韩影视精品| 一区二区三区小说| 日本欧美在线观看| 成人a级免费电影| 欧美综合在线视频| 精品国产三级电影在线观看| 欧美激情一区在线观看| 亚洲图片欧美综合| 国产呦精品一区二区三区网站| 国产成人综合视频| 日本韩国一区二区三区视频| 国产精品电影一区二区| 一区二区三区在线观看国产 | 蜜桃久久久久久| 成人在线一区二区三区| 欧洲日韩一区二区三区| 日韩欧美国产三级电影视频| 中文字幕亚洲在| 日韩国产精品91| 成人毛片视频在线观看| 欧美乱妇一区二区三区不卡视频| 精品国产乱码久久久久久图片| 亚洲欧洲日本在线| 蜜臂av日日欢夜夜爽一区| www.亚洲激情.com| 日韩免费电影网站| 一区二区三区在线观看视频| 国产呦精品一区二区三区网站| 在线观看不卡一区| 中文字幕成人网| 日韩成人午夜电影| 色久优优欧美色久优优| 久久久99精品久久| 蜜桃久久精品一区二区| 欧美在线一区二区三区| 久久精品亚洲国产奇米99| 午夜伊人狠狠久久| 一道本成人在线| 欧美激情一区二区| 激情久久五月天| 91精品综合久久久久久| 伊人色综合久久天天人手人婷| 久久国产精品第一页| 欧美福利视频导航| 一区二区在线看| 波多野结衣精品在线| 久久久久久亚洲综合影院红桃| 亚洲一区在线观看视频| 91丨porny丨户外露出| 欧美一卡二卡在线观看| 亚洲国产乱码最新视频| 不卡一区在线观看| 欧美精品一区二区三区蜜桃| 亚洲男人天堂一区| 91视频在线观看| 国产欧美一区二区精品性色超碰| 美美哒免费高清在线观看视频一区二区 | 中文字幕在线不卡一区| 国产一区999| 久久午夜电影网| 麻豆国产91在线播放| 制服丝袜亚洲色图| 首页国产丝袜综合| 欧美乱妇一区二区三区不卡视频 | 国产成人av影院| 26uuu国产在线精品一区二区| 天天爽夜夜爽夜夜爽精品视频| 欧美色图激情小说| 亚洲香蕉伊在人在线观| 欧美伊人久久久久久午夜久久久久| 亚洲视频1区2区| 91原创在线视频| 亚洲欧美日韩在线| 在线免费精品视频| 亚洲一区二区3| 欧美老年两性高潮| 日韩二区三区四区| 欧美精品一区二区在线观看| 狠狠色狠狠色综合| 天天综合天天综合色| 欧美怡红院视频| 天天综合色天天| 欧美岛国在线观看| 国产一区二区三区不卡在线观看| 国产亚洲福利社区一区| 成人黄色片在线观看| 一区精品在线播放| 在线视频综合导航| 美女一区二区三区在线观看| 久久久亚洲午夜电影| 99精品视频一区| 亚洲一区在线看| 日韩欧美色综合网站| 国产激情91久久精品导航 | 视频在线观看国产精品| 日韩一区二区在线观看| 国产老肥熟一区二区三区| 国产精品伦理在线| 在线观看av一区| 紧缚奴在线一区二区三区| 国产午夜亚洲精品不卡| 91免费视频网| 蜜桃视频一区二区| 国产精品日产欧美久久久久| 91黄色免费看| 国产曰批免费观看久久久| **欧美大码日韩| 91精品国产入口| 成人午夜视频网站| 日本欧美一区二区三区| 中文字幕欧美激情一区| 欧美性猛交xxxxxx富婆| 黄网站免费久久| 亚洲最快最全在线视频| 精品国产一区久久| 92精品国产成人观看免费| 美腿丝袜亚洲一区| 日韩一区在线看| 日韩一区二区三区观看| 91丨九色丨蝌蚪丨老版| 日韩专区在线视频| 国产精品久久久久久久久久久免费看| 欧美日韩精品欧美日韩精品| 国产成人在线免费| 日本不卡的三区四区五区| 亚洲欧洲色图综合| 精品国产91久久久久久久妲己| 91视视频在线观看入口直接观看www | 日韩女优av电影在线观看| 91天堂素人约啪| 九九九久久久精品| 亚洲一区二区三区四区五区黄| 国产婷婷色一区二区三区在线| 欧美熟乱第一页| 9i在线看片成人免费| 国产精品综合二区| 奇米精品一区二区三区在线观看 |