資源簡介
目的:
在進程控制、請求分頁存儲器管理、設備管理基礎上 實現按先來先服務 FCFS 、短作業優先 SJF 以及時間片
輪轉算法調度進程的模擬過程 。
內容
1.在第 1 3 部分基礎上擴展;
2.支持 FCFS 、短 作業優先以及時間片調度算法。
3.能夠較方便地查看調度過程及平均周轉時間、平均帶權周轉時 間。
4.支持優先權調度算法與其它算法相結合的調度模式。
5.調度時應適當輸出調度過程中各進程狀態隊列的變化情況以及進程的已執行時
間、還需服務時間(針對時間片輪轉算法)。
6.完成銀行家算法的實現。

代碼片段和文件信息
#include?“OS5.h“
#include?
using?namespace?std;
/***
??????????????operation?system5.0
?????The?size?of?the?whole?inside?memory?is?4G.
?????????????????????????????????????????????????***/
void?menu()
{
????cout<<“\n\n\n\t\t\t>>>operation?system5.0<<<\n\n“;
????cout<<“\t\t\t1.refresh?data\n\n“;
????cout<<“\t\t\t***scheduling?algorithm***\n“;
????cout<<“\t\t\t2.FCFS?algorithm\n“;
????cout<<“\t\t\t3.SJF?algorithm\n“;
????cout<<“\t\t\t4.Times?out\n“;
????cout<<“\t\t\t5.priority\n“;
????cout<<“\t\t\t6.multilevel?feedback\n\n“;
????cout<<“\t\t\t***Avoid?deadlock***\n“;
????cout<<“\t\t\t7.Banker?algorithm\n\n“;
????cout<<“\t\t\t0.exit\n“< ????cout<<“\n\n>>“;
}
void?solve(Process&?p)
{
????p.process.clear();
????//p.ordered_process.clear();
????/*??F:\\OS\\os5\\??*/
????string?filename?file?=?““?;///測試樣例所在文件夾的絕對路徑;
????cout<<“Please?input?the?input?filename:“;
????cin>>filename;
????filename?=?file?+?filename;
????cout< ????fstream?in(filename);
????int?num;
????//cout<<“Please?input?the?number?of?data:“;
????in>>num;
????for(int?i=0;i ????//cout<<“Please?input?the?work?source?number:“;
????int?nx;?in>>n;
????for(int?i=0;i>x?p.Work.push_back(x);
????p.ave_time?=?p.ave_value?=?0;
}
int?main()?{
????Process?process;
????int?choice;
????while(1)
????{
???????menu();
???????cin>>choice;
???????switch(choice)
???????{
???????????case?1:
???????????????solve(process);
???????????????cout<<“Initial?data?is?as?follow:“< ???????????????process.process_show();
???????????????break;
???????????case?2:
???????????????system(“cls“);
???????????????process.process_FCFS();
???????????????cout<<“Press?any?key?to?continue......“< ???????????????getchar();
???????????????break;
???????????case?3:
???????????????system(“cls“);
???????????????process.process_SJF();
???????????????cout<<“Press?any?key?to?continue......“< ???????????????getchar();
???????????????break;
???????????case?4:
???????????????system(“cls“);
???????????????int?T;
???????????????cout<<“Please?input?the?times:“;
???????????????cin>>T;
???????????????cout<<“Press?any?key?to?continue......“< ???????????????getchar();
???????????????process.Time_turn(T);
???????????????cout<<“Press?any?key?to?continue......“< ???????????????getchar();
???????????????break;
???????????case?5:
???????????????system(“cls“);
???????????????cout<<“\n\n\n\t\t\t????>>>priority<<<\n\n“;
???????????????cout<<“\t\t\t1.static?and?not?grap\n“;
???????????????cout<<“\t\t\t2.static?and?grap\n“;
???????????????cout<<“\t\t\t3.dynamic?and?not?grap\n“;
???????????????cout<<“\t\t\t4.dynamic?and?grap\n“;
???????????????cout<<“\t\t\t0.back\n“;
???????????????int?n;cin>>n;
???????????????if(n==1)?process.process_priority_static_notgrap();
???????????????else?if(n==2)?process.process_priority_static_grap();
???????????????else?if(n==3)?process.process_priority_dynamic_notgrap(
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????????163??2018-11-19?17:24??OS5\1.txt
?????文件?????????182??2018-11-19?17:08??OS5\bank.txt
?????文件?????????182??2018-11-19?17:08??OS5\mf.txt
?????文件????????3863??2018-11-23?18:41??OS5\OS5.cpp
?????文件?????1112765??2018-11-25?12:22??OS5\OS5.exe
?????文件???????28709??2018-11-22?13:14??OS5\OS5.h
?????文件??????221451??2018-11-25?12:22??OS5\OS5.o
?????文件?????????125??2018-11-19?15:20??OS5\pri.txt
?????文件?????????163??2018-11-25?12:22??OS5\test.txt
評論
共有 條評論