在此,我在多级就绪队列之间采用高优先级优先调度算法,它可以动态的调整优先级,改变调度序列,十分灵活,同时兼顾了作业的紧迫性。在就绪队列内部,采用时间片轮转调度算法和先来先服务调度算法相结合的原则,来处理就绪队列中的进程,从而保证所有进程在一定时间内都能获得一个时间片的处理机时间,使得短作业能在一到两个时间片就可完成,周转时间较短,而对长作业,不必担心长时间得不到处理。由此实现的多级反馈队列调度算法就能具有短作业优先、周转时间较短、长作业不会长时间得不到处理等优点[3],下面将对该算法的设计思想进行详细的描述。
3.算法设计思想
通过研究就绪队列和进程的关系,比如就绪队列中各个进程的调度次序和进程在不同队列之间如何移动等,得出了该算法的基本设计思想和调度示意图[4],具体内容如下所述:
(1)设置多个就绪队列,并给队列赋予不同的优先数(规定优先数越小,优先权越高),第一个队列优先级最高,依次递减,队列之间采用优先级调度算法[5]。
(2)各级队列中的进程具有不同的时间片,优先级越高的队列中的进程的时间片越小[6]。
(3)只有高优先级队列为空时才调度下一级就绪队列中的进程。
(4)允许进程在队列之间移动,当一个新进程进入内存后,首先将其插入优先级最高的就绪队列末尾。进程如果在一个时间片结束时尚未完成,将其插入下一个就绪队列末尾;如果完成,插入完成队列末尾。
(5)当比运行进程的队列更高级别的队列中到来一个新进程时,低优先级的队列中的进程执行完一个时间片,插入到下一级队列末尾,在调度新来的进程。
(6)除最低优先权队列外的所有其他队列,均采用相同的进程调度算法,即按时间片轮转的FCFS算法[7],最后一个队列中的进程按按时间片轮转算法进行调度,该算法的中的进程调度如图1所示:
1 多级反馈队列调度算法示意图
4.详细设计与实现
4.1算法设计流程图
在设计多级反馈队列调度算法流程图的过程中,因为篇幅原因,对该算法的设计思想中的重要部分进行了详细的描绘,比如一个就绪队列中的多个进程应如何调度以及进程如何在不同就绪队列之间移动,至于其他部分如创建队列﹑创建进程﹑新进程到达等,一笔带过,但在算法实现中将会实现所有的设计思想,该算法详细设计流程图 多级反馈队列调度算法的研究+源代码(2):http://www.751com.cn/jisuanji/lunwen_12955.html