c语言,单处理机进程调度,时间片轮转

求一个程序,只要求输入:例如进程A,时间片为3,进程B,时间片为2,则输出为ABABA,要这种通用的程序,可以处理多个进程的程序,给最高悬赏,急求!!!!!!!!!!!!


//参考一下
#include <stdio.h>
#include <stdlib.h>

#define CPU_TIME 50   //CPU时间片 

struct mission    //单个任务的结构体 
{
char name[20];    //任务名称 
int finished;     //任务是否已完成,完成为1,未完成为0 
int need_time;    //任务总共需要的CPU时间 
int finished_time;//任务已经执行的CPU时间 
};

int work_mission=5;   //未完成任务计数 

struct mission s[5]={{"one",0,100,0},            //假设有5个任务 
 {"two",0,380,0},
 {"three",0,200,0},
 {"four",0,440,0},
 {"five",0,230,0}
};

int move_mission(int flag)                      //任务排序 
{
if(work_mission==0)
{
return 1;
}
struct mission temp;
temp=s[0];
int i;

if(flag==1)
{
for(i=1;i<work_mission+1;i++)
{
s[i-1]=s[i];
}
s[work_mission]=temp;
}
else
{
for(i=1;i<work_mission;i++)
{
s[i-1]=s[i];
}
s[work_mission-1]=temp;
}


return 0;
}
int main(int argc, char *argv[]) {
struct mission temp;
int finished=0;
int cpu_time_count=0;
while(finished==0)
{
printf("\n第%d个CPU时间片即将执行\n",cpu_time_count/CPU_TIME+1);
printf("\n当前任务队列(即将执行下面第一行任务,执行后将任务移到队列末尾):  CPU已用时:%d\n",cpu_time_count);
int i;
for(i=0;i<5;i++)
{
printf("任务名称:%5s   是否已完成:%d   需时间:%03d   已执行时间:%03d    已完成:%03.2f%%\n",s[i].name,s[i].finished,s[i].need_time,s[i].finished_time,100*((float)s[i].finished_time/(float)s[i].need_time));
}
if(s[0].finished==1)
{
finished=1;
break;
}
if((s[0].need_time-s[0].finished_time)>CPU_TIME)
{
s[0].finished_time+=CPU_TIME;
cpu_time_count+=CPU_TIME;
finished=move_mission(0);
}
else 
{
cpu_time_count+=(s[0].need_time-s[0].finished_time);
s[0].finished_time=s[0].need_time;
s[0].finished=1;
work_mission-=1;
finished=move_mission(1);
}
}
printf("\n当前任务队列(全部执行完毕):    CPU用时:%d\n",cpu_time_count);
int i;
for(i=0;i<5;i++)
{
printf("任务名称:%5s   是否已完成:%d   需时间:%03d   已执行时间:%03d    已完成:%03.2f%%\n",s[i].name,s[i].finished,s[i].need_time,s[i].finished_time,100*((float)s[i].finished_time/(float)s[i].need_time));
}
printf("\n\n总共用了CPU时间: %d",cpu_time_count);
return 0;
}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-05-13
多级反馈队列调度算法多级反馈队列调度算法是一种CPU处理机调度算法,UNIX操作系统采取的便是这种调度算法。多级反馈队列调度算法即能使高优先级的作业得到响应又能使短作业(进程)迅速完成。(对比一下FCFS与...追问

我要的是程序,不会就别回复

本回答被网友采纳
第2个回答  2015-05-13
操作系统上有,PV操作追问

废话谁都会说

追答

伸手党也从来都是不学无术的,你觉得呢?别人提供了思路都还觉得不爽!这个问题网上代码一大堆,你怎么搜不出来?不仅没用而且很懒

相似回答