六、程序运行结果
1 进入操作界面如下
2输入进程的信息
3 各时刻进程的状态
5
4 进程信息
5 平均带权周转时间界面
6
七、流程图
本次课程设计主要是通过比较各个进程的优先级以及各进程所需要占用的CPU时间来确定哪个作业优先运行,短作业优先调度算法除了能保证优先级更高的作业优先运行外,还能使相同优先级的前提下,所需CPU时间最短的那个作业优先运行,次外,本次课程设计还增加了阻塞时间和被阻塞时间来对个进程的运行加以控制。 此次课程设计的总体流程图如下:
7
开 始 输入进程的个数:num 输入进程的信息:name starttime servicetime r Sort() 队列中是否只有一个进程? N 执行判断函数:Run() Y执行时间处理函数:Time() 输出最后信息:Output() 结 束
8
八、源程序文件
#include
int Number; //进程编号 char Name[MaxNum]; //进程名称 int ArrivalTime; //到达时间 int ServiceTime; //开始运行时间 int FinishTime; //运行结束时间 int WholeTime; //运行时间 int run_flag; //调度标志 int order; //运行次序
double WeightWholeTime; //周转时间
double AverageWT_FCFS,AverageWT_SJF; //平均周转时间
double AverageWWT_FCFS,AverageWWT_SJF; //平均带权周转时间 }Process[MaxNum];
int N; //实际进程个数 int SJF(); //短作业优先
int SJF(){ //短作业优先算法 int temp_time=0; //当期那时间 int i=0,j;
int number_schedul,temp_counter; //进程编号,当前已执行进程个数 float run_time;
run_time=Process[i].WholeTime; j=1;
while((j //查找下一个被调度的进程 //对找到的下一个被调度的进程求相应的参数 number_schedul=i; Process[number_schedul].ServiceTime=Process[number_schedul].ArrivalTime; Process[number_schedul].FinishTime=Process[number_schedul].ServiceTime+Pr 9 搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新IT计算机OS短作业优先调度算法C语言 (2)全文阅读和word下载服务。
相关推荐: