-
大小: 338KB文件類型: .rar金幣: 2下載: 0 次發(fā)布日期: 2021-05-12
- 語言: 其他
- 標(biāo)簽: 算法??代碼??報(bào)告??操作系統(tǒng)??
資源簡介
本文件是對操作系統(tǒng)進(jìn)程多級反饋隊(duì)列調(diào)度算法的設(shè)計(jì)與實(shí)現(xiàn),算法以txt的形式輸入輸出,其中包含設(shè)計(jì)報(bào)告

代碼片段和文件信息
#include
#include
#include
#include
#include
#include
#include
#include“process.h“
int?main(){
???int?process_time[10];??????//進(jìn)程到達(dá)第一級隊(duì)列的時間
???int?p_num=10;
???for(int?i=0;i ???????process_time[i]=i;??????//假定進(jìn)程從前往后一次間隔一秒到達(dá),第一個進(jìn)程到達(dá)時間為0
???}
???int?queue_num=3;
???Proqueue?proqueue[queue_num];?????????????????????????????????????//運(yùn)行進(jìn)程的隊(duì)列總數(shù)為3
???for(int?i=0;i ????????proqueue[i].setQuePrior(i+1);
????????proqueue[i].setQueTime(pow(2i+1));
???}
???for(int?i=0;i ???????process[i].get_time=process[i].get_wait_time=process[i].end_time=0;
???????process[i].prior=1;??????????????????????????????????????????//進(jìn)程首先應(yīng)進(jìn)入優(yōu)先級為1的隊(duì)列中,故默認(rèn)進(jìn)程優(yōu)先級為1
???????//cin>>process[i].id>>process[i].run_time_num;???????????????//輸入進(jìn)程id號和進(jìn)程的總運(yùn)行時間
???}
???int?shuru;
???cout<<“please?input‘1‘the?program?will?read?the?data?from?the?file?‘input.txt‘or?input?other?number?to?terminate?it.“< ???cin>>shuru;
???if(shuru==1){
???string?line;
???ifstream?openfile(“input.txt“);
???int?head=0q=0;
???while(getline(openfileline))
???{
?????istringstream?is(line);
?????if(head==0){
????????head=1;
????????continue;
????????}
????????is>>process[q].id>>process[q].run_time_num;
????????//cout< ????????q++;
????}
????openfile.close();
???}
???else
????return?0;
???cout<<“read?data?from?the?file?successfully!“<
???for(int?i=0;i ??????struct?Pronode?*pronode=new?Pronode();
??????pronode->id=process[i].id;
??????proqueue[0].enqueue(pronode);
???}
??int?j=0record_time=0;??????????????????????????????????????//記錄各個進(jìn)程在隊(duì)列中的總運(yùn)行時間
??struct?Pronode?*p=new?Pronode();????????????????????????????//p_num為尚未結(jié)束運(yùn)行進(jìn)程總數(shù)
??ofstream?output(“output.txt“);
???while(1){
???????while(proqueue[j].getLength()>0){
????????????int?i;
????????????p=proqueue[j].dequeue();??????????????????????????//進(jìn)程塊出隊(duì)
????????????for(i=0;i ????????????????if(p->id==process[i].id){
????????????????????if(process[i].run_time_num-process[i].get_time<=proqueue[j].getQueTime()){??//進(jìn)程運(yùn)行剩余運(yùn)行總時間小于等于所在隊(duì)列時間片,則進(jìn)程運(yùn)行完畢
???????????????????????if(record_time ?????????????????????????process[i].end_time=process_time[i]+process[i].run_time_num-process[i].get_time;??//?????????????????????????????????????????????????????///////////////////////////////////////
?????????????????????????record_time=process_time[i];}//+process[i].run_time_num-process[i].get_time;}
???????????????????????else{
???????????????????????process[i].end_time=record_time+process[i].run_time_num-process[i].get_time;
???????????????????????record_time+=process[i].run_time_num-process[i].get_time;
???????????????????????}
???????????????????????cout< ???????????????????????output<
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件?????650592??2017-11-23?21:21??多級反饋隊(duì)列調(diào)度算法\c_project\bin\Debug\c_project.exe
?????文件????????200??2017-11-23?14:49??多級反饋隊(duì)列調(diào)度算法\c_project\bin\Debug\input.txt
?????文件?????????61??2017-11-23?21:17??多級反饋隊(duì)列調(diào)度算法\c_project\bin\Debug\output.txt
?????文件????????241??2017-11-23?21:12??多級反饋隊(duì)列調(diào)度算法\c_project\c_project.depend
?????文件????????362??2017-11-23?21:22??多級反饋隊(duì)列調(diào)度算法\c_project\c_project.layout
?????文件????????200??2017-11-23?14:49??多級反饋隊(duì)列調(diào)度算法\c_project\input.txt
?????文件???????3806??2017-11-24?08:28??多級反饋隊(duì)列調(diào)度算法\c_project\main.cpp
?????文件?????528700??2017-11-28?23:51??多級反饋隊(duì)列調(diào)度算法\c_project\main.exe
?????文件???????8332??2017-11-28?23:51??多級反饋隊(duì)列調(diào)度算法\c_project\main.o
?????文件?????130734??2017-11-23?21:21??多級反饋隊(duì)列調(diào)度算法\c_project\obj\Debug\main.o
?????文件?????????61??2017-11-28?23:52??多級反饋隊(duì)列調(diào)度算法\c_project\output.txt
?????文件???????2591??2017-11-23?20:55??多級反饋隊(duì)列調(diào)度算法\c_project\process.h
?????文件??????53542??2017-11-29?00:03??多級反饋隊(duì)列調(diào)度算法\實(shí)驗(yàn)1?多級反饋隊(duì)列調(diào)度算法.docx
?????文件???????6272??2017-11-29?00:01??多級反饋隊(duì)列調(diào)度算法\源代碼.txt
?????目錄??????????0??2017-11-23?21:21??多級反饋隊(duì)列調(diào)度算法\c_project\bin\Debug
?????目錄??????????0??2017-11-23?21:21??多級反饋隊(duì)列調(diào)度算法\c_project\obj\Debug
?????目錄??????????0??2017-11-23?20:54??多級反饋隊(duì)列調(diào)度算法\c_project\bin
?????目錄??????????0??2017-11-23?20:54??多級反饋隊(duì)列調(diào)度算法\c_project\obj
?????目錄??????????0??2017-11-28?23:51??多級反饋隊(duì)列調(diào)度算法\c_project
?????目錄??????????0??2017-11-29?00:04??多級反饋隊(duì)列調(diào)度算法
-----------?---------??----------?-----??----
??????????????1385694????????????????????20
評論
共有 條評論