當前位置:首頁 » 操作系統 » 進程調度演算法java

進程調度演算法java

發布時間: 2022-03-02 03:17:06

java進程調度中為什麼進程名都是1

摘要 Linux2.4版本使用的調度演算法的時間復雜度為O(n),其主要原理是通過輪詢所有可運行任務列表,然後挑選一個最合適的任務運行,所以其時間復雜度與可運行任務隊列的長度成正比。

Ⅱ Java調度演算法 來個大神寫程序 選擇一個調度演算法,實現處理器調度。

public class CLSS_ch2 {

public static void main(String[] args) {
int sum = 0;
for (int i = 1; i <= 100; i++) {
if (i % 10 == 3)
continue;
sum += i;
}
System.out.println(sum);
}
}
計算機圖形技術組的成員在1993年開發出了 Lua。它被設計成為腳本語言,是一種不可獲取的過程式編程語言,以簡單而強大而聞名。

Ⅲ 優先順序調度演算法如何用JAVA實現

在多線程時,可以手動去設置每個線程的優先順序setPriority(int newPriority)
更改線程的優先順序。

Ⅳ 求磁碟調度演算法scan演算法的java代碼

1、先來先服務演算法(FCFS)First Come First Service
這是一種比較簡單的磁碟調度演算法。它根據進程請求訪問磁碟的先後次序進行調度。此演算法的優點是公平、簡單,且每個進程的請求都能依次得到處理,不會出現某一進程的請求長期得不到滿足的情況。此演算法由於未對尋道進行優化,在對磁碟的訪問請求比較多的情況下,此演算法將降低設備服務的吞吐量,致使平均尋道時間可能較長,但各進程得到服務的響應時間的變化幅度較小。
先來先服務 (125)86.147.91.177.94.150.102.175.130

[java] view plain print?

Ⅳ 求一個先來先服務調度演算法的程序 java編的

import java.util.ArrayList;
import java.util.List;

public class Question {
// 調度總站
class DiaoDuZhan{
private List<Client> list;
public Client getClient(){ // 獲得客戶
if(list != null && list.size() > 0){
Client client = list.get(0);
list.remove(client);
return client;
}else{
return null;
}
}
public void addClient(Client client){
if(list == null){
list = new ArrayList<Client>();
}
list.add(client);
}
}
// 客戶
interface Client{
public void setService(Service service);
public Service getSerive();
}
// 服務
interface Service{
public void doService();
}
// 服務員
class waiter{
DiaoDuZhan diaozhan;
public DiaoDuZhan getDiaozhan() {
return diaozhan;
}
public void setDiaozhan(DiaoDuZhan diaozhan) {
this.diaozhan = diaozhan;
}
public void doNext(){
Client client = diaozhan.getClient();
if(client != null)
client.getSerive().doService();
}
}
}

Ⅵ 急求!!! 進程調度演算法模擬 java實現,c++也行

我有內存調度的 FIFO、LRU和OPT的,要發給你。

Ⅶ 我想要一個java編的進程的調度演算法,先進先出演算法.

這個用的是RR不是FIFO,改改就行了嘿嘿

public class Scheler extends Thread

{

public Scheler(){

timeSlice = DEFAULT_TIME_SLICE;

queue = new Circularlist();

}

public Scheler(int quantum){

timeSlice = quantum;

queue = new Circularlist();

}

public addThread(Thread t) {

t.setPriority(2);

queue.additem(t);

}

private void schelerSleep() {

try{

Thread.sleep(timeSlice );

} catch (InterruptedException e){};

}

public void run(){

Thread current;

This.setpriority(6);

While (true) {

// get the next thread

current = (Thread)qeue.getnext();

if ( (current != null) && (current.isAlive()) ){

current.setPriority(4);

schelerSleep();

current.setPriority(2)

}

}

}

private CircularList queue;

private int timeSlice;

private static final int DEFAULT_TIME_SLICE = 1000;

}

public class TesScheler

{

public static void main()String args[]) {

Thread.currentThread().setpriority(Thread.Max_Priority);

Schelar CPUSchelar = new Scheler ();

CPUSchelar.start()

TestThread t1 = new TestThread("Thread 1");

t1.start()

CpuSchelar.addThread(t1);

TestThread t2 = new TestThread("Thread 2");

t2.start()

CpuSchelar.addThread(t2);

TestThread t3 = new TestThread("Thread 1");

t3.start()

CpuSchelar.addThread(t3);

}

}

Ⅷ 用JAVA實現時間片輪轉調度演算法

不會吧,應該不會有用Java管理進程的吧。Java語言是不可預知的,比如說垃圾回收系統不受程序員控制,沒法子做底層開發、管理進程的。

Ⅸ 求一個基於優先順序的時間片輪轉調度演算法。實在是不太會做了,沒思路。要求java 要求: (1)設系統

cpu進程調度模擬
四個隊列是優先順序隊列(優先順序高的在前面)
可以使用結構體做隊列的節點
時間片輪轉就是指定一個執行時間,時間一到就處理下一個進程,將當前進程進行狀態轉換(也就是換著狀態需要向其放入相應的隊列中,優先順序隊列)

理清頭緒的話程序不算太復雜但也很麻煩

Ⅹ )用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(本);

}

}
}

熱點內容
安卓手機如何打開桌面與快捷方式 發布:2024-09-23 02:36:01 瀏覽:497
linux查找find 發布:2024-09-23 02:36:00 瀏覽:440
linuxgcc編譯命令行 發布:2024-09-23 02:35:59 瀏覽:520
什麼是java鎖 發布:2024-09-23 02:22:29 瀏覽:383
手游伺服器搭建教程失敗 發布:2024-09-23 02:00:21 瀏覽:687
短暫的訪問 發布:2024-09-23 01:29:08 瀏覽:828
安卓手機怎麼設置4位數 發布:2024-09-23 01:24:58 瀏覽:548
5g和演算法 發布:2024-09-23 01:20:40 瀏覽:507
pandas開發程序編譯 發布:2024-09-23 01:13:58 瀏覽:466
android應用被系統回收 發布:2024-09-23 01:10:36 瀏覽:447