作業系統程序排程演算法實現

2021-09-19 14:05:56 字數 1509 閱讀 6458

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分配給隊首程序,執行一定的時間,執行完畢就分配給另乙個新的隊首程序,每隔一定的時間就執行乙個程序 一旦...