山东科技大学学生课程设计
void Fdeal(fcfs *p, float arrivetime,float servicetime,float starttime,float finishtime,float &zztime,float &dqzztime,int N)
{ int k;
for(k=0;k<=N-1;k++) {
}
for(k=0;k<=N-1;k++) { } }
//先来先服务
void FCFS(fcfs *p,int N) {
- 8 -
if(k==0) { } else { }
p[k].starttime=p[k-1].finishtime;
//开始时间=前
p[k].starttime=p[k].arrivetime;
p[k].finishtime=p[k].arrivetime+p[k].servicetime;
一个进程的完成时间
p[k].finishtime=p[k-1].finishtime+p[k].servicetime;
//结束时间=前一个进程的完成时间+现在进程的服务时间
p[k].zztime=p[k].finishtime-p[k].arrivetime; p[k].dqzztime=p[k].zztime/p[k].servicetime;
//周转时间//带权周转
=完成时间-到达时间 时间=周转时间/服务时间
山东科技大学学生课程设计
float
arrivetime=0,servicetime=0,starttime=0,finishtime=0,zztime=0,dqzztime=0;
Fsort(p,N);
Fdeal(p,arrivetime,servicetime,starttime,finishtime,zztime,dqzztime,N);
FPrint(p,arrivetime,servicetime,starttime,finishtime,zztime,dqzztime,N);
}
void main() //主函数 {int N;
printf(\先来先服务调度算法------\\n\printf(\输入进程数:\scanf(\Finput(a,N); FCFS(a,N);
}
- 9 -
山东科技大学学生课程设计
1.1.4运行结果
1.2短作业优先
1.2.1 需求分析
算法的简要说明:短作业优先调度算法,是指对短作业或短进程优先调度的算法。它们可以分别用于作业调度和进程调度。短作业优先的调度算法是从后备队列中选择一个或若干个估计运行时间最短的作业,将它们调入内存运行。而短进程调度算法则是从就绪队列中选出一个估计运行时间最短的进
- 10 -
山东科技大学学生课程设计
程,将处理机分配给它,使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处理机再重新调度。
基本功能如下:
(1)将到达的进程按照到达顺序排成一个队列;
(2)程序在运行时,对运行时间进行比较,选取运行时间最短的进程进行调度。
以下是各功能模块的功能描述: 1.主函数模块
本模块的主要功能是输出算法的名字以及对算法的调用。 2.进程创建和排序模块
本模块的主要功能是将创建新的进程,获得进程的进程编号、进程名、运行状态、到达时间等,并按到达时间拍成一个队列 3.寻找进程模块
本模块的主要功能是根据队列指针和当前时间,找到当前到达且没有运行的作业,并在这些进程中找到运行时间最短的作业。 4.运行及输出模块
本模块的主要功能是运行当前运行时间最短的作业,并输出运行后的进程的调度顺序以及进程执行完后的运行状态、到达时间、开始时间、结束时间、运行时间、周转时间、带权周转时间。 测试数据: 进程的个数:5
进程编号:1 到达时间:1 运行时间:2 完成时间:3 周转时间 2: : 进程编号2 到达时间2 运行时间:3 完成时间:6 周转时间:4 : 进程编号:3 到达时间:3 运行时间:4 完成时间:10 周转时间:7 : 进程编号:4 到达时间: 4 运行时间; 6 完成时间:17 周转时间:13 : 进程编号:5 到达时间:5 运行时间:1 完成时间:11 周转时间:6 :
- 11 -
山东科技大学学生课程设计
1.2.2 概要设计
本次程序使用c语言的方法,在程序中定义了一个结构体来标示进程控制块,每个结构体包括进程编号、进程名、运行状态、到达时间、开始时间、结束时间、运行时间、周转时间、带权周转时间以及指向下个进程的指针。程序中定义了创建进程及排序函数、查找函数、运行和输出函数,首先要做的是输入进程的相关信息并创建进程、然后调用了排序函数将进程按到达时间排成一个队列,当进程运行时,通过查找当前队列中运行时间最短的进程后输出。 1.模块调用图
模块调用图如图1所示。
主模块
排序模块 创建进程模块 运行和输出模块 运行模块 查找模块 图1 模块调用图
- 12 -