實驗二 作業排程模擬程式

2022-08-21 01:24:10 字數 2577 閱讀 2574

實驗二  作業排程模擬程式

施振成    201306104124

一、目的和要求

1. 實驗目的

(1)加深對作業排程演算法的理解;

(2)進行程式設計的訓練。

2.實驗要求

用高階語言編寫乙個或多個作業排程的模擬程式。

單道批處理系統的作業排程程式。作業一投入執行,它就占有計算機的一切資源直到作業完成為止,因此排程作業時不必考慮它所需要的資源是否得到滿足,它所執行的時間等因素。

作業排程演算法:

1) 採用先來先服務(fcfs)排程演算法,即按作業到達的先後次序進行排程。總是首先排程在系統中等待時間最長的作業。

2) 短作業優先 (sjf) 排程演算法,優先排程要求執行時間最短的作業。

每個作業由乙個作業控制塊jcb表示,jcb可以包含以下資訊:作業名、提交(到達)時間、所需的執行時間、所需的資源、作業狀態、鏈指標等等。

作業的狀態可以是等待w(wait)、執行r(run)和完成f(finish)三種之一。每個作業的最初狀態都是等待w。

一、 模擬資料的生成

1. 允許使用者指定作業的個數(2-24),預設值為5。

2. 允許使用者選擇輸入每個作業的到達時間和所需執行時間。

3. (**)從檔案中讀入以上資料。

4. (**)也允許使用者選擇通過偽隨機數指定每個作業的到達時間(0-30)和所需執行時間(1-8)。

二、 模擬程式的功能

1. 按照模擬資料的到達時間和所需執行時間,執行fcfs, sjf和hrrn排程演算法,程式計算各作業的開始執行時間,各作業的完成時間,周轉時間和帶權周轉時間(周轉係數)。

2. 動態演示每排程一次,更新現在系統時刻,處於執行狀態和等待各作業的相應資訊(作業名、到達時間、所需的執行時間等)對於hrrn演算法,能在每次排程時顯示各作業的響應比r情況。

3. (**)允許使用者在模擬過程中提交新作業。

4. (**)編寫並排程乙個多道程式系統的作業排程模擬程式。 只要求作業排程演算法:採用基於先來先服務的排程演算法。 對於多道程式系統,要假定系統中具有的各種資源及數量、排程作業時必須考慮到每個作業的資源要求。

三、 實驗方法、步驟及結果測試

1.流程圖

//定義乙個作業排程的結構體

typedef

struct

jcbjcb;

jcb job[

100],temp[100

];int time=10000,n,flag;//

計時器

//flag標誌當前作業剩餘量

void

get_value();

void paixu(jcb jb[100],int

n) }

}void paixu1(jcb jb[100],int

n) }

}fcfs(jcb job[

100],int

n)for(i=0;i)

printf(

"作業名稱 到達時間 開始時間 服務時間 完成時間 周轉時間\n");

printf(

"%s%10d%10d%9d%10d%10d\n

",p->name,p->arrive_t,p->start_t,p->need_t,p->finish_t,p->zz_t);}}

sjf(jcb job[

100],int

n)for(i=0;i)

printf(

"作業名稱 到達時間 開始時間 服務時間 完成時間 周轉時間\n");

printf(

"%s%10d%10d%9d%10d%10d\n

",p->name,p->arrive_t,p->start_t,p->need_t,p->finish_t,p->zz_t);}}

prtf(jcb job[

100],int

n)run(

int i) //

選擇相應的模組開始執行

}void get_value()//

獲取程序的相關資訊

for(num=0;num)

printf(

"作業輸入完畢!\n");

}main ()

else

while(flag) //

如果輸入的數不在1-3之間則重新輸入

else

flag=0

; }

get_value();

//獲取作業的基本資訊

run(i);

//開始執行作業

}3.執行結果及分析

這個是先到先服務演算法的圖

這個是短程序優先演算法的圖

實驗二 作業排程模擬程式

實驗二作業排程模擬程式 1.實驗目的 1 加深對作業排程演算法的理解 2 進行程式設計的訓練。2 實驗要求 用高階語言編寫乙個或多個作業排程的模擬程式。單道批處理系統的作業排程程式。作業一投入執行,它就占有計算機的一切資源直到作業完成為止,因此排程作業時不必考慮它所需要的資源是否得到滿足,它所執行的...

實驗二 作業排程模擬程式

include includetypedef struct process fcfsfcfs fcfs p,q,head null struct process fcfs a 100 fcfs inital struct process fcfs a,int n void print struct ...

實驗二 作業排程模擬程式

專業 網路工程一班 姓名 顏超武 學號 201406114310 1.實驗目的 1 加深對作業排程演算法的理解 2 進行程式設計的訓練。2 實驗要求 用高階語言編寫乙個或多個作業排程的模擬程式。單道批處理系統的作業排程程式。作業一投入執行,它就占有計算機的一切資源直到作業完成為止,因此排程作業時不必...