




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
实验报告 题目 名称 C语言实现调度算法程序设计实验报告-先来先服务FCFS 院系 a 班级 完成时间 指导老师 本次实验成绩 主 要 原 理 及 所 参 考 的 资 料 算法原理: 设计程序模拟进程的先来先服务FCFS过程。假设有n个进程分别在T1,…,Tn时刻到达系统,它们需要的服务时间分别为S1,…,Sn。分别采用先来先服务FCFS调度算法进行调度,计算每个进程的完成时间,周转时间和带权周转时间,并且统计n个进程的平均周转时间和平均带权周转时间。 程序要求如下: 1)进程个数n;每个进程的到达时间T1,…,Tn和服务时间S1,…,Sn。 2)要求采用先来先服务FCFS调度进程运行,计算每个进程的周转时间,带权周转时间,并且计算所有进程的平均周转时间,带权平均周转时间; 3)输出:要求模拟整个调度过程,输出每个时刻的进程运行状态,如“时刻3:进程B开始运行”等等; 4)输出:要求输出计算出来的每个进程的周转时间,带权周转时间,所有进程的平均周转时间,带权平均周转时间。 主要参考书: 计算机操作系统第三版西安电子科技大学出版社汤小丹主编 主 要 算 法 具 体 实 验 步 骤 实现提示: 用C语言实现提示: 1)程序中进程调度时间变量描述如下: staticintMaxNum=100; intArrivalTime[MaxNum]; intServiceTime[MaxNum]; intFinishTime[MaxNum]; intWholeTime[MaxNum]; doubleWeightWholeTime[MaxNum]; doubleAverageWT_FCFS; doubleAverageWWT_FCFS; 2)进程调度的实现过程如下: 变量初始化; 接收用户输入n,T1,…,Tn,S1,…,Sn; 按照选择算法进行进程调度,计算进程的完成时间、周转时间和带权周转时间; 计算所有进程的平均周转时间和平均带权周转时间; 按格式输出调度结果。 实 验 要 求 程序流程图 P=HEAD;i=0 P=Q;P=P->NEXT; P=P->NEXT; Q->STARTTIME=TIME Q->STATE=’T’ …… 开始 i++;输出执行进程信息 结束 P->STATE==’F’? Q->ARRIVETIME>TIME? i<n? Q->STARTTIME=ARRIVETIME Q->STATE=’T’ …… Y N Y N N Y 程序源代码 #include"stdio.h" #include"stdlib.h" typedefstructPCB//定义进程控制块 { charname[10];//进程名 charstate;//运行状态 intArriveTime;//到达时间 intStartTime;//进程开始时间 intFinishTime;//进程结束时间 intServiceTime;//服务时间 floatWholeTime;//周转时间 floatWeightWholeTime;//带权周转时间 doubleAverageWT_FCFS;//平均周转时间 doubleAverageWWT_FCFS;//带权平均周转时间 structPCB*next;//指向下个进程 }pcb; doublex=0,y=0; inti; inttime;//计时器 intn;//进程个数 pcb*head=NULL,*p,*q;//进程链表指针 voidrun_FCFS(pcb*p1)//运行未完成的进程 { time=p1->ArriveTime>time?p1->ArriveTime:time; p1->StartTime=time; printf("\n时刻:%d,当前开始运行作业%s\n\n",time,p1->name); time+=p1->ServiceTime; p1->state='T'; p1->FinishTime=time; p1->WholeTime=p1->FinishTime-p1->ArriveTime; p1->WeightWholeTime=p1->WholeTime/p1->ServiceTime; x+=p1->WholeTime; y+=p1->WeightWholeTime; p1->AverageWT_FCFS=p1->WholeTime/n; p1->AverageWWT_FCFS=p1->WeightWholeTime/n; printf("到达时间开始时间服务时间完成时间周转时间带权周转时间\n"); printf("%6d%10d%10d%8d%10.1f%

快乐****蜜蜂
实名认证
内容提供者


最近下载