先来先服务FCFS和短作业优先SJF进程调度算法 下载本文

先来先服务FCFS和短作业优先SJF进程调度算法

1、实验目的

通过这次实验,加深对进程概念的理解,进一步掌握进程状态的转变、进程调度的策略及对系统性能的评价方法。 2、需求分析

(1) 输入的形式和输入值的范围

输入值:进程个数Num 范围:0

时刻X:进程X开始运行。 其完成时间:X 周转时间:X 带权周转时间:X

…(省略(Num-1)个)

平均周转时间:X 平均带权周转时间:X (3) 程序所能达到的功能

输入进程个数Num,每个进程到达时间ArrivalTime[i],服务时间ServiceTime[i]。采用先来先服务FCFS或者短作业优先SJF进程调度算法进行调度,计算每个进程的完成时间、周转时间和带权周转时间,并且统计Num个进程的平均周转时间和平均带权周转时间。 3、概要设计

说明本程序中用到的所有抽象数据类型的定义、主程序的流程以及各程序模块之间的层次(调用)关系。

4、详细设计

5、调试分析

(1)调试过程中遇到的问题以及解决方法,设计与实现的回顾讨论和分析

1 开始的时候没有判断进程是否到达,导致短进程优先算法运○

行结果错误,后来加上了判断语句后就解决了改问题。

2 ○

基本完成的设计所要实现的功能,总的来说,FCFS编写容易,SJF需要先找到已经到达的进程,再从已经到达的进程里找到进程服务时间最短的进程,再进行计算。 (2)算法的改进设想

改进:即使用户输入的进程到达时间没有先后顺序也能准确的计算出结果。(就是再加个循环,判断各个进程的到达时间先后,组成一个有序的序列)

(3)经验和体会

通过本次实验,深入理解了先来先服务和短进程优先进程调度算法的思想,培养了自己的动手能力,通过实践加深了记忆。

6、用户使用说明 (1)输入进程个数Num

(2)依次输入Num个进程的到达时间 (3)依次输入Num个进程的服务时间 (4)选择要使用的算法 7、测试结果 正确一(FCFS):