bug好多,待完善
#include#include#include//enum state;
#define max_size 100
typedef struct process_pcb
pcb;
typedef struct
sqqueue;
sqqueue* initqueue()
return q;
}int isempty(sqqueue *q)
return 0;
}int enqueue(sqqueue *q,pcb data)
else
}int dequeue(sqqueue *q,pcb *data)
else
}//按照服務時間最小排序
sqqueue* selectsort(pcb pcb,int n)
}enqueue(readyqueue,pcb[i]);
// printf("%d ",pcb[i].arrive_time);
}return readyqueue;
}//按照優先順序最小排序
sqqueue* selectsort2(pcb pcb,int n)
}enqueue(readyqueue,pcb[i]);
// printf("%d ",pcb[i].arrive_time);
}return readyqueue;
}void printprocess(pcb pcb1);
//先來先服務
void fcfs(pcb pcb,int n,sqqueue*readyqueue)
// printprocess(pcb,n);
}void printprocess(pcb pcb1)
//短作業優先,非搶占
void sjf(pcb pcb,int num,sqqueue *readyqueue)
else
}//對當前已經到達的程序進行按照服務時間由低到高排序
//執行最短作業的程序,把該程序從到達佇列裡出列
}// printprocess(pcb,num);
}//最短剩餘時間優先,搶占
void srt(pcb pcb,int num,sqqueue *readyqueue)
}//時間片輪轉演算法
void rr(sqqueue* readyqueue,pcb pcb,int num,int timelength)
else
if(k==num)
}}//動態優先順序演算法
void dynamicpriority(sqqueue* readyqueue,pcb pcb,int num)
}int main()
printf("process has put into queue");*/
/* fcfs(pcb,num);
sjf(pcb,num);*/
return 0;
}
作業系統程序排程演算法實現2
實驗三 程序排程 一 實驗目的 1 理解有關程序控制塊 程序佇列的概念。2 掌握程序優先權排程演算法和時間片輪轉排程演算法的處理邏輯。二 實驗內容與基本要求 1 設計程序控制塊pcb的結構,分別適用於優先權排程演算法和時間片輪轉排程演算法。2 建立程序就緒佇列。3 編制兩種程序排程演算法 優先權排程...
作業系統 程序排程演算法
cpu利用率 cpu忙碌的時間佔總時間的比例 利 用率 忙碌的 時間總時 間利用率 frac 利用率 總時 間忙碌的 時間 系統吞吐量 單位時間完成作業或程序的數量 吞 吐量 完成的 作業數量 總時 間吞吐量 frac 吞吐量 總時 間完成的 作業數量 周轉時間 完成作業需要花費的總時間 周 轉時 ...
作業系統 程序排程及其演算法
儲存處理機資訊 按某種演算法選取程序 把處理器分配給程序 排隊器。把就緒程序排成乙個或者幾個佇列 分派器。把程序從就緒佇列中取出來,然後把處理機給他 非搶占式 搶占式把就緒程序排成乙個佇列,把cpu分配給隊首程序,執行一定的時間,執行完畢就分配給另乙個新的隊首程序,每隔一定的時間就執行乙個程序 一旦...