程序排程模擬

2021-07-07 02:04:49 字數 2392 閱讀 9733

實驗平台: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...