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

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

?? maintest.cpp.bak

?? 處理機調度
?? BAK
字號:
#include "Ulti.h"
#include "PCB.h"
#include "EQueue.h"
#include <windows.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#include <time.h>

#define DEBUG 1

char *inFileName="inputData.txt";
char *outFileName="outputData.txt";


long WINAPI WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam);
BOOL InitWindowsClass(HINSTANCE hInstance);
BOOL InitWindows(HINSTANCE hInstance,int nCmdShow);
void stiProcessMag(HDC hDC);
HWND hWndMain;


LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);

//program starting.
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPSTR lpszCmdLine,int nCmdShow)
{
	MSG   msg;
	if(!InitWindowsClass(hInstance))
		return FALSE;
	
	if(!InitWindows(hInstance,nCmdShow))
		return FALSE;
	
	//Core message looping
	while(GetMessage(&msg,NULL,0,0))
	{
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}

	return msg.wParam;

}

//main wndProc function: message looping
long WINAPI WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
	HDC hDC;
	HBRUSH hBrush;
	HPEN hPen;
	PAINTSTRUCT PtStr;

	switch(iMessage)
	{
		case WM_PAINT:
			//First draw,a black line
			hDC=BeginPaint(hWnd,&PtStr);
			hPen=(HPEN)GetStockObject(NULL_PEN);//get empty brush
			SelectObject(hDC,hPen);
			hBrush=(HBRUSH)GetStockObject(BLACK_BRUSH);
			SelectObject(hDC,hBrush);
			
			hPen=CreatePen(PS_SOLID,2,RGB(255,0,0));//create pen
			SelectObject(hDC,hPen);
			
			//TextOut(hDC,50,50,"Hello World!",strlen("Hello World!"));
			stiProcessMag(hDC);
			
			DeleteObject(hPen);
			DeleteObject(hBrush);
			EndPaint(hWnd,&PtStr);
			
			//MessageBox(hWnd,"HelloWorld!","Msg Box",MB_OK);
			return 0;
		case WM_DESTROY:
			PostQuitMessage(0);
			return 0;
		default:
			return DefWindowProc(hWnd,iMessage,wParam,lParam);
				
	}
}

//Init the Window to show out.
BOOL InitWindows(HINSTANCE hInstance,int nCmdShow)
{
	HWND hWnd;
	hWnd=CreateWindow("WinFill",
				"進程調度摸擬程序圖示",
					WS_OVERLAPPEDWINDOW,
				CW_USEDEFAULT,
				0,
				CW_USEDEFAULT,
				0,
				NULL,	
				NULL,
				hInstance,
				NULL	
			    );
	if(!hWnd)
		return FALSE;
	hWndMain=hWnd;
	ShowWindow(hWnd,nCmdShow);
	UpdateWindow(hWnd);
	return TRUE;
}

//Set wndClass Propertity
BOOL InitWindowsClass(HINSTANCE hInstance)
{
	WNDCLASS wndClass;

	wndClass.cbClsExtra=0;
	wndClass.cbWndExtra=0;
	wndClass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
	wndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
	wndClass.hIcon=LoadIcon(NULL,"END");
	wndClass.hInstance=hInstance;
	wndClass.lpfnWndProc=WndProc;
	wndClass.lpszClassName="WinFill";
	wndClass.lpszMenuName=NULL;
	wndClass.style=CS_HREDRAW|CS_VREDRAW;
	
	return RegisterClass(&wndClass);
}

void stiProcessMag(HDC hDC)
{
	/*--------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 ;
	}
	
	if((outputFile=fopen(outFileName,"wb"))==NULL)
	{
		printf("open outputFile error\n");
		return ;
	}
			
		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");
//	int mCount=0;
	char tmpChar[10];
	int x0,y0,height;

	x0=20;
	y0=60;
	x1=100
	height=40;
	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;
									
									strcpy(tmpChar,"Process");
									tmpChar[7]=48+i;
									tmpChar[8]='\0';
									TextOut(hDC,x0,y0+height*i,tmpChar,strlen(tmpChar));
									
			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;
									
									strcpy(tmpChar,"Process");
									tmpChar[7]=48+i;
									tmpChar[8]='\0';
									TextOut(hDC,x0,y0+height*i,tmpChar,strlen(tmpChar));
									//mCount++;
									
			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 ;
		}
	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 ;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩视频在线你懂得| 麻豆精品在线视频| 久久综合色天天久久综合图片| 色哟哟精品一区| 99国产精品一区| 亚洲免费视频中文字幕| 亚洲第一综合色| 99久久婷婷国产| 精品国产成人在线影院 | 午夜精品免费在线| www.亚洲激情.com| 26uuu国产日韩综合| 日本va欧美va精品发布| 91黄色在线观看| 日韩码欧中文字| 丰满亚洲少妇av| 久久久亚洲精华液精华液精华液| 亚洲观看高清完整版在线观看| 成人avav影音| 中文字幕精品三区| 粉嫩一区二区三区在线看| 欧美一级在线免费| 丝袜诱惑亚洲看片| 91精品国产综合久久久久久 | 日本vs亚洲vs韩国一区三区 | 色呦呦一区二区三区| 中文字幕在线播放不卡一区| 韩国成人精品a∨在线观看| 8x福利精品第一导航| 日韩va亚洲va欧美va久久| 欧美日韩小视频| 午夜精品久久久久久不卡8050| 欧美少妇性性性| 午夜精品免费在线| 欧美一级二级三级蜜桃| 奇米在线7777在线精品| 日韩一区二区三区视频在线| 美国毛片一区二区| 欧美精品一区二区久久久| 国产精品一卡二卡在线观看| 久久久精品天堂| 成人高清av在线| 中文字幕日韩欧美一区二区三区| 国产成人免费视频网站高清观看视频| 日韩一级在线观看| 另类小说视频一区二区| 久久久国产综合精品女国产盗摄| 国产成人免费视| 亚洲精品ww久久久久久p站| 色美美综合视频| 亚洲自拍偷拍九九九| 欧美精品久久99久久在免费线| 免费在线成人网| 91精品国产综合久久久蜜臀图片| 麻豆久久一区二区| 欧美国产综合色视频| 色94色欧美sute亚洲线路二| 亚洲一区二区综合| 日韩你懂的在线观看| 国产成人丝袜美腿| 亚洲一区二区三区四区五区中文| 91精品一区二区三区在线观看| 国产呦精品一区二区三区网站| 中文字幕在线视频一区| 欧美日韩国产首页在线观看| 国产精品99久久久久久有的能看| 综合久久给合久久狠狠狠97色| 欧美人成免费网站| 国产激情一区二区三区四区| 亚洲欧美一区二区三区孕妇| 日韩一区二区视频在线观看| 成人国产一区二区三区精品| 午夜视频在线观看一区二区三区| 久久综合色播五月| 精品少妇一区二区三区在线视频| 日韩成人一级大片| 日韩欧美在线综合网| 欧美精品第一页| 奇米影视7777精品一区二区| 日韩欧美一区在线| 丝袜脚交一区二区| 日韩欧美在线不卡| 精久久久久久久久久久| 久久久久亚洲综合| 风流少妇一区二区| 亚洲欧美国产高清| 欧美三日本三级三级在线播放| 亚洲成av人**亚洲成av**| 欧美亚洲动漫制服丝袜| 亚洲超碰精品一区二区| 91麻豆精品国产91久久久更新时间| 日韩成人精品视频| 精品国产不卡一区二区三区| 成人动漫中文字幕| 亚洲激情图片一区| 在线观看成人小视频| 在线免费观看成人短视频| 亚洲精品国产精华液| 欧美日本一区二区| 国产在线精品一区在线观看麻豆| 欧美极品少妇xxxxⅹ高跟鞋| 91在线视频播放| 日产国产高清一区二区三区| 久久日韩精品一区二区五区| 91丨九色丨蝌蚪丨老版| 天天综合网天天综合色| 国产亚洲欧美日韩日本| 色先锋aa成人| 麻豆一区二区三| 亚洲欧洲日韩女同| 欧美大片顶级少妇| 91丨porny丨最新| 久久国产三级精品| 一区二区三区精品| 精品成人a区在线观看| av在线不卡网| 蜜臀va亚洲va欧美va天堂| 中文字幕高清不卡| 日韩一区二区免费电影| 99re这里只有精品6| 久久99最新地址| 夜夜嗨av一区二区三区四季av| 久久久www免费人成精品| 欧美日韩综合在线| av一区二区三区四区| 美女久久久精品| 丝袜美腿亚洲一区| 亚洲一区二区综合| 日韩码欧中文字| 国产欧美精品一区| 久久久综合网站| 91精品久久久久久久久99蜜臂| 97se亚洲国产综合自在线观| 国产精品一区二区久久不卡| 免费视频一区二区| 亚洲午夜羞羞片| 一区二区在线免费观看| 国产清纯白嫩初高生在线观看91| 日韩视频免费观看高清在线视频| 欧美色精品在线视频| 91天堂素人约啪| 97精品国产97久久久久久久久久久久| 国产精品99久久久久久久女警| 精品一区二区三区影院在线午夜| 天天影视色香欲综合网老头| 亚洲成人高清在线| 亚洲一区二区在线播放相泽 | 色综合色综合色综合色综合色综合| 国产福利一区二区| 韩国中文字幕2020精品| 精品一区二区影视| 国产尤物一区二区在线| 激情都市一区二区| 韩国成人精品a∨在线观看| 国产中文一区二区三区| 国产精品中文有码| 国产不卡视频一区二区三区| 国产99久久久精品| 99精品热视频| 欧洲亚洲精品在线| 在线观看日产精品| 在线播放日韩导航| 91精品国产福利在线观看| 日韩欧美一级片| 国产日韩欧美不卡在线| 国产精品欧美久久久久一区二区 | 亚洲精品成人在线| 亚洲成人动漫一区| 轻轻草成人在线| 国产一区二区三区黄视频 | 在线观看中文字幕不卡| 欧美日韩综合一区| 精品福利一二区| 亚洲日本在线看| 亚洲成av人在线观看| 久久精品国产99国产| 国产jizzjizz一区二区| 91蜜桃婷婷狠狠久久综合9色| 欧美精品久久一区| 欧美最新大片在线看| 日韩免费高清视频| 国产精品网站导航| 亚洲成人自拍网| 国产高清精品网站| 欧美性色欧美a在线播放| 日韩一区二区在线播放| 亚洲欧洲av一区二区三区久久| 麻豆一区二区99久久久久| 成人一区二区三区中文字幕| 欧美午夜精品理论片a级按摩| 日韩午夜三级在线| 中文字幕一区av| 久久91精品国产91久久小草| 99久久精品国产毛片| 欧美一级艳片视频免费观看| 亚洲免费观看高清完整版在线观看熊| 午夜精品久久久久影视| va亚洲va日韩不卡在线观看| 日韩精品一区二区三区中文精品| 亚洲人成网站精品片在线观看 |