操作系统的课程设计《进程管理》

时间转轮法和最短作业优先算法。先mark一下。

#include 
#include 
#include 
#include 
#include 
#include 
using namespace std;
struct node{
	char name;
	int intime;
	int runtime;
	int dotime;
	int id;
	bool operator <(const node a)const {
		return a.runtimep[j].intime){
				node t=p[i];
				p[i]=p[j];
				p[j]=t;
				int tt=p[i].id;
				p[i].id=p[j].id;
				p[j].id=tt;
			}
	int qwer;
	while (1){
	printf("请输入你要选择的算法(1表示时间转轮法,2表示最短进程优先法.3退出系统):");
	scanf("%d",&qwer);
	if (qwer==1)
	{
	printf("请输入时间片大小:");
	int gg;
	scanf("%d",&gg);
	queueqq;
	int flag=0;
	int ans=0;
	int c=0;
	while (flag=ac.runtime){
			printf("进程%c已经完成\n",ac.name);
			flag++;
			if (flag==1) ans=ac.intime;
			ans+=ac.runtime-ac.dotime;  
			printf("当前系统已运行时间%d\n",ans);
		}
		else{
			ac.dotime+=gg;
			ans+=gg;
			qq.push(ac);
			printf("进程%c尚未完成,已完成%d\n",ac.name,ac.dotime);
			printf("当前系统已运行时间%d\n",ans);
		}
		}
		if (cans) break;
				else {
					qq.push(p[i]); 
					c++;
				}
			}
			if (qq.empty()){
				qq.push(p[c++]);
			}
		}
	}
	printf("时间转轮片算法系统总用时间为:%d\n",ans);
	}else if (qwer==2){
	int k=1;
	priority_queueq;
	//q.clear();
	q.push(p[0]);
	int time=p[0].intime;
	int num=0;
	while (!q.empty()){
		node nowp=q.top();
		q.pop();
		time+=nowp.runtime;
		a[num].time=time-nowp.intime;
		a[num++].id=nowp.id;
		for (i=k;i


你可能感兴趣的:(基础,计算机基础,STL)