實驗平台:windows 7,vs2010
實驗目標:模擬短作業優先演算法,時間片輪轉演算法,和優先數演算法,並動態畫出grant圖,計算每個程序的響應時間和周轉時間
資料結構:
class process
fin.close();
} void sjf(void);
void preemptive_sjf();
int get_minremaintime(int time_bar,vectorremain_time);
int get_minruntime(int time_bar);
void rr(int time_piece);
void pr(void);
int get_topprocess();
vectorget_response_time();
vectorget_cycle_time();
void display();
~process(void);
};
1)最短作業優先演算法
非搶占式**:
int process::get_minruntime(int time_bar)
}
搶占式**:
//********************====
//搶占式最短優先
//********************====
int process::get_minremaintime(int time_bar,vectorremain_time)
} }return state;
}void process::preemptive_sjf()
else
state_t=state;
flag=false;
for(int i=0;i
2)時間片輪轉演算法
/********************====
//時間片輪轉排程
//到達時間在當前時間之前且還沒有執行完的,按時間片加入結果
//********************====
void process::rr(int time_piece)
//cout << total_time;
do else
}} round++;
if (time_bar == total_time)
flag = true;
} while (!flag);
}
3)優先數演算法:
//***************====
//優先順序優先排程演算法
//類似最短時間優先排程
//********************==
int process::get_topprocess()
} if (!flag)
}
//*************************
//計算響應時間
//需緊跟排程函式後執行,與排程順序結果對應
//*************************
vectorprocess::get_response_time()
for (int i = 0; i < process_name.size(); i++)
}} return resposetime;
}
5)計算周轉時間
//******************************=
//周轉時間
//*************************=
vectorprocess::get_cycle_time()
cycle_time.push_back(time_bar-response_time.at(i));
} return cycle_time;
}
6)顯示
void process::display()
{ for(int i=0;icycle_time(this->get_cycle_time());
vectorresponse_time(this->get_response_time());
cout<<"\nname:"<<" response_time"<<" cycle_time"<
程序排程模擬
程序排程模擬程式 本程式來自一位,她寫了大部分 可是錯誤太多,漏洞百出,不盡人意,下面是我修改後的。希望用到的人可以多多參考,看了的人給些意見!include include include include include define true 1 define false 0 define re...
程序排程 模擬程序排程的過程
通過這次實驗,理解程序排程的過程,進一步掌握程序狀態的轉變 程序排程的策略,進一步體會多道程式併發執行的特點,並分析具體的排程演算法的特點,掌握對系統效能的評價方法。編寫程式模擬實現程序的輪轉法排程過程,模擬程式只對pcb進行相應的排程模擬操作,不需要實際程式。假設初始狀態為 有n個程序處於就緒狀態...
程序排程模擬演算法
1.先進先出排程。程序按申請進入記憶體的時間執行。2.優先順序排程。程序按作業系統分配的優先順序,執行。3.時間輪轉排程。程序按申請進入記憶體的時間依次執行乙個時間片。4.分級排程。時間輪轉排程 優先順序排程。先執行優先順序較高的按時間輪轉排程的方法執行,在執行優先順序較低的。a.設計程序控制塊pc...