資源簡介
先模擬建立進程就緒鏈表----置所有進程的到達時間 Parrive_time均為0,依PCB鏈接順序從第一個進程PCB開始,
使Pid依次為1,2,3,4……;就緒鏈表中進程的數量,由常量 MAXSIZE 控制;
再 模擬建立調度函數--------取表頭PCB,修改進程執行時間,得到的新時間,即為剩余執行時間,當剩余時間小于或等于0時,將此進程的PCB取出,依完成的先后次序鏈到完成鏈表中,記錄當前完成進程的完成時間 Pend_time,
同時修改就緒鏈表表頭;
最后 計算和打印里程調度信息-----計算出各進程周轉時間及所有進程的平均周轉時間。
代碼片段和文件信息
///////////////////////////////////////////////////////////////////////
//實驗名稱:時間片輪轉調度算法
//實驗日期:2008/07/16
//實驗者:qhu-hh
//實驗環境:Visual?C++?2008?ExPress?Edition
//編程語言:C語言
//程序思想:先?模擬建立進程就緒鏈表----置所有進程的到達時間?Parrive_time均為0,依PCB鏈接順序從第一個進程PCB開始,
////////////////使Pid依次為1234……;就緒鏈表中進程的數量,由常量?MAXSIZE?控制;
////////////再?模擬建立調度函數--------取表頭PCB,修改進程執行時間,得到的新時間,即為剩余執行時間,當剩余時間小于或等于0
////////////////時,將此進程的PCB取出,依完成的先后次序鏈到完成鏈表中,記錄當前完成進程的完成時間?Pend_time?
////////////////同時修改就緒鏈表表頭;
////////////最后?計算和打印里程調度信息-----計算出各進程周轉時間及所有進程的平均周轉時間。
#include“stdio.h“
#include“malloc.h“
#define?TIMESLICE?2//時間片;
#define?MAXSIZE?4//就緒鏈中進程數量;
typedef?struct?PCB//定義進程控制塊的信息結構;
{
????int?Pid;//進程標識號;
????int?Parrive_time;//進程到達時間;
????int?Pend_time;//進程結束時間;
????int?Pexe_time;//進程執行時間;
????s
評論
共有 條評論