模擬操作系統的調度算法以進行流程,例如優先級調度,多級調度,...


在這裡暴露的這個存儲庫實際上是課程operating system的大學項目
並用Java語言實現。
此處顯示了類的層次結構顯示:
---- cpuscheduler
------------ |
------------- SRC
---------------------- |
---------------------過程//每個過程的數據,例如開始時間,突發時間,...
--------------------- CPU // CPU用於模擬時間表
----------------------調度程序//原始方法和字段的抽像類
---------------------- sch_fcfs //首先出現
------------------------ sch_sjf //最短的作業第一個調度程序(可以先發)
------------------------------ sch_priority //優先調度程序(可以先發)
---------------------------------------------------------------------------------------------------------
---------------------- sch_lottery //彩票調度程序
----------------------- sch_multilevel //多級調度程序(可以先發)
--------------------- fxmldocumentController //主GUI的控制器
---------------------模擬Controller //用於仿真GUI的控制器
----//
流程:要么處理這兩個狀態的過程正在執行或等待這兩個狀態:
中央處理器:
調度程序:
筆記
請注意,仿真時間單元為0.1,因此突發時間或延遲時間必須為0.1的多個
請注意,每行的順序指定過程到達順序
請注意,輸入格式對於每行都是這樣的(突發時間,延遲時間,優先級,級別)
請注意,此模擬中上下文開關的最小持續時間為0.4
請注意,此模擬中循環調度程序的最小量子持續時間為0.2,因為時間單位為0.1,量子不能小於時間單位
輸入表:
| 過程名稱 | 到達時間 | 執行時間 | 等級 |
|---|---|---|---|
| 1 | 0 | 5 | 1 |
| 2 | 1 | 8 | 2 |
| 3 | 3 | 7 | 2 |
| 4 | 4 | 3 | 1 |
| 5 | 5 | 3 | 1 |
| 6 | 8 | 11 | 2 |
| 7 | 15 | 3 | 1 |
| 8 | 25 | 4 | 1 |
例如,我們是在多級非搶先的(L1:FCF,L2 FCFS)中的計劃過程(input.txt文件)

首先,我們輸入過程信息,然後選擇調度算法,然後按Run按鈕

等待模擬結束

現在您可以看到結果

該項目是根據MIT許可證獲得許可的 - 有關詳細信息,請參見許可證文件