當前位置:編程學習大全網 - 編程語言 - )用C語言(或其它語言,如Java)編程實現對N個進程采用某種進程調度算法(如動態優先權調度

)用C語言(或其它語言,如Java)編程實現對N個進程采用某種進程調度算法(如動態優先權調度

公眾:類PrivilegeProcess {

公***靜態無效的主要(字串[] args){

MyQueue的MyQueue的新MyQueue的();/ /聲明隊列

印刷電路板[PCB = {新的PCB(001 ,8,1),新的PCB(002,7,9),新的PCB(003,3,8),新的PCB(004,1,7),新的PCB(005,7,4)};

> PCB段=新的PCB();

(INT I = 0; <pcb.length; + +){/ /初始化先進行排序,選擇排序這裏使用的是高優先級的壹線隊

(J =我; <pcb.length; J + +){

(PCB [I]。特權<PCB [J]。特權){

段= PCB [1];

PCB [I] = PCB [J];

PCB [J] =段;

}

}

}

體系。通過out.println(“入隊後第壹時間的進程的順序:”);

(INT I = 0; <pcb.length; + +){

的System.out調用println(第壹次入隊#程序名稱:“+ PCB [我]。名稱+ totaltime:”+ PCB [I]。totaltime +“的”特權“+ PCB [我]。特權); }

();

myqueue.start(PCB);

}

}

類MyQueue的{

INT指數= 0;

PCB [] PC =新的PCB [5];

PCB [] PC1 =新的PCB [4];

PCB溫度=新的PCB() BR />公***無效排隊(PCB工藝){/ /排隊算法

(指數== 5){

(“出界!”);

返回

}

PC [索引] =進程;

指數+ +;

}

公***:PCB DEQUEUE(){/ /出隊算法(索引== 0)

返回空;

(INT I = 0; <pc1.length; + +){

PC1 [I] = PC [ +1];

}

指數 -

溫度= PC [0];

(INT I = 0; <pc1.length; + +){ BR /> PC [I] = PC1 [I];

}

回報條件;

}

公***無效啟動(PCB [] PC){/ /進程表算法

(PC [0]。isNotFinish ==真| | PC [1 isNotFinish ==真| | PC [2 isNotFinish ==真| | PC [3]。時isNotFinish ==真| | PC [4]。isNotFinish ==){

/ / *註:| |運算符都是假的,所有的表達式結果為假,否則真

(INT I = 0; <PC長度; + +){

PC [I]。運行(這壹點); />} 的System.out.println();

(INT I = 0; <pc.length; + +){/ /處理每個運行壹次運行的時間片的長度重新排序優先壹旦

(J =我; <pc.length; J + +){

如果(PC [I]特權<PC [J]。特權){

溫度= PC [I];

PC [I] = PC [J];

PC [J] =溫度;

}

}

}

}

}

}

類PCB {/ /聲明過程級

和int名,totaltime ,運行時特權;

布爾isNotFinish的;

公眾PCB(){

}

公開PCB(名稱,詮釋totaltime特權){

this.name =的名稱;/ /進程名

this.totaltime = totaltime ;/ /

this.privilege =特權;/ /總時間優先 this.runtime = 2 ;/ /時間片值是2

this.isNotFinish =真;/ /是否執行完成

(“初始值:程序名稱:”+名+“totaltime:”+ totaltime +“特權”+特權);

System.out的。調用println();

}

MyQueue的MQ公***無效的run(){/ /處理的基礎上實施的時間片算法

(totalTime> 1){ totaltime =運行;/ /總時間大於1,總時間=總時間 - 時間片

特權 -

(“程序名稱:”+姓名+“ remaintime:“+ +”特權“+特權); totaltime

的} else if(totaltime == 1){

totaltime - ;/ /總時間為1時,執行時間為1

>特權 -

(“程序名稱:”+姓名+“remaintime:”+ totaltime +“特權”+特權);

}其他{

isNotFinish =假;/ / 0,將isNotFinish標誌設置為假

}

如果(isNotFinish ==真){br mq.deQueue();

mq.enQueue(本);

}

}

}

  • 上一篇:特種發設備管理制度?
  • 下一篇:襄陽適合兒童玩的地方景點推薦
  • copyright 2024編程學習大全網