进程调度算法spf,fpf,时间片轮转算法实现
调度的基本概念:从就绪队列中按照一定的算法选择一个进程并将处理机分配给它运行,以实现进程并发地执行。 进程信息 1 struct node { 2 string name;//进程名称 3 int id;//进程id 4 int time;//进程服务时间 5 int rtime;//进程服务时间(主要用于时间片轮转算法) 6 int level;//进程优先级 7 int start;//进程提交时间 8 int lst;//进程调度时间 9 }; 1 set<string> pname;//存放进程名称,防止创建重复进程 2 queue<node> qq;//时间片轮转时用到的就绪队列 3 queue<node> pp;//进程的执行队列 4 queue<node> db;//时间片算法中的调度顺序 5 priority_queue<node, vector<node>, cmpspf> spf;//短时间优先算法队列 6 priority_queue<node, vector<node>, cmpfpf> fpf;//优先级算法队列 7 vector<node> ready;//就绪队列 8 vector<node> emy;//已删除的进程 用vector容器存放就绪的进程(每插入一个,sort一下,依据进程提交时间升序排列) spf(短作业优先算法) 算法思想