-
大小: 1.04MB文件類型: .zip金幣: 2下載: 0 次發(fā)布日期: 2023-08-29
- 語言: 其他
- 標簽: 廣工??操作系統(tǒng)??實驗??報告??
資源簡介
實驗一 進程調(diào)度
實驗二 銀行家算法
實驗三 內(nèi)存管理
實驗四 磁盤調(diào)度

代碼片段和文件信息
import?java.util.ArrayList;
import?java.util.Arrays;
import?java.util.Random;
public?class?Banker?{
????int?available_resour[]?=?{10?15?12};
????int?PCB_NUM?=?5;//進程數(shù)
????int?RESOURCE_NUM?=?3;//資源種類數(shù)
????PCB[]?pcb?=?new?PCB[PCB_NUM];
????double?pTime;?????//時間片
????int?run;???????//當前運行的進程,沒有則為-1
????long?lastTime;??//每次調(diào)度程序都記錄當前時間
????long?beginTime;//程序開始時間
????private?class?PCB?{
????????String?name;?//進程名
????????int?need_resour[]?=?new?int[RESOURCE_NUM];???//需要的資源
????????int?allocated_resour[]?=?new?int[RESOURCE_NUM];???//已用資源
????????int?apply_resour[]?=?new?int[RESOURCE_NUM];//當前申請的資源
????????char?state;?????//進程狀態(tài)
????????void?applyResource()?{
????????????Random?r?=?new?Random();
????????????for?(int?i?=?0;?i?????????????????if?(need_resour[i]?<=?1)?{//需要的剩下1或0時直接申請,不隨機
????????????????????apply_resour[i]?=?need_resour[i];
????????????????}?else?{
????????????????????apply_resour[i]?=?r.nextInt(need_resour[i]?+?4);
????????????????}
????????????}
????????????System.out.printf(name?+?“申請了“?+?arrayToString(apply_resour)?+?“:?“);
????????}
????}
????boolean?isAllFinished()?{
????????for?(int?i?=?0;?i?????????????if?(pcb[i].state?!=?‘F‘)?return?false;
????????}
????????return?true;
????}
????boolean?isFinished(int?check)?{
????????for?(int?i?=?0;?i?????????????if?(pcb[check].need_resour[i]?!=?0)?return?false;
????????}
????????return?true;
????}
????void?init()?{
????????run?=?-1;
????????Random?r?=?new?Random();
????????for?(int?n?=?0;?n?????????????pcb[n]?=?new?PCB();
????????????pcb[n].name?=?Character.toChars(65?+?n)[0]?+?““;
????????????for?(int?m?=?0;?m?????????????????pcb[n].need_resour[m]?=?r.nextInt(available_resour[m]?/?2)?+?1;//需要的資源
????????????}
????????}
????????for?(int?n?=?0;?n?????????????for?(int?m?=?0;?m?????????????????pcb[n].allocated_resour[m]?=?0;
????????????????pcb[n].apply_resour[m]?=?0;
????????????}
????????????pcb[n].state?=?‘W‘;
????????}
????}
????String?arrayToString(int[]?array)?{
????????String?result?=?““?+?array[0];
????????for?(int?i?=?1;?i?????????????result?+=?“?“?+?array[i];
????????}
????????return?result;
????}
????void?print()?{
????????System.out.println(“\n====================================================“);
????????System.out.printf(“進程名??需要資源(A?B?C)??已用資源(A?B?C)??進程狀態(tài)\n“);
????????for?(int?i?=?0;?i?????????????System.out.printf(“%-6s??%-17s??%-17s??%-8s\n“?pcb[i].name?arrayToString(pcb[i].need_resour)
?????????????????????arrayToString(pcb[i].allocated_resour)?pcb[i].state);
????????}
????????System.out.println(“此時系統(tǒng)資源(A?B?C):“?+?arrayToString(available_resour));
????????System.out.println(“====================================================\n“);
????????lastTime?=?Syst
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-01-20?13:09??操作系統(tǒng)實驗報告\
?????目錄???????????0??2017-11-20?16:31??操作系統(tǒng)實驗報告\out\
?????文件?????????166??2017-11-17?09:38??操作系統(tǒng)實驗報告\out\Banker$1.class
?????文件????????1522??2017-11-17?09:38??操作系統(tǒng)實驗報告\out\Banker$PCB.class
?????文件????????7182??2017-11-17?09:38??操作系統(tǒng)實驗報告\out\Banker.class
?????文件???????76361??2017-11-20?16:19??操作系統(tǒng)實驗報告\out\disc.exe
?????文件????????7856??2017-11-20?16:19??操作系統(tǒng)實驗報告\out\disc.o
?????文件??????????82??2017-11-19?13:48??操作系統(tǒng)實驗報告\out\input.txt
?????文件???????74281??2017-11-17?22:32??操作系統(tǒng)實驗報告\out\memory.exe
?????文件????????6128??2017-11-17?22:32??操作系統(tǒng)實驗報告\out\memory.o
?????文件?????????199??2017-11-16?10:40??操作系統(tǒng)實驗報告\out\ProcessController$1.class
?????文件?????????763??2017-11-16?10:40??操作系統(tǒng)實驗報告\out\ProcessController$PCB.class
?????文件????????7716??2017-11-16?10:40??操作系統(tǒng)實驗報告\out\ProcessController.class
?????目錄???????????0??2017-12-10?16:43??操作系統(tǒng)實驗報告\src\
?????文件???????11024??2017-11-20?17:13??操作系統(tǒng)實驗報告\src\Banker.java
?????文件????????5350??2017-11-20?16:19??操作系統(tǒng)實驗報告\src\disc.c
?????文件????????4713??2017-11-20?17:12??操作系統(tǒng)實驗報告\src\memory.c
?????文件???????10465??2017-11-20?17:13??操作系統(tǒng)實驗報告\src\ProcessController.java
?????文件???????10695??2017-12-10?16:41??操作系統(tǒng)實驗報告\src\ProcessMemoryController.java
?????文件?????1193472??2018-01-20?13:07??操作系統(tǒng)實驗報告\實驗報告.doc
評論
共有 條評論