java模拟进程调度之模拟抢占试多级轮转调度,附带可视化解决方案

1.简介一下多级轮转调度

  多级轮转调度是一种提高调度效率的解决方案,简单讲就是讲要执行的程分成几个优先级的列队即例如三个,第一个列队分10个时间片,第二个列队分配1000个时间片,第三个列队表示1000个时间片,每一个进程在调度池中首先要进入如第一个列队,并执行10个10间片,完事之后,会放入第二个列队,当第一个列队没有进程之后,在执行第二个列队中的进程,不出意外的话,就以此类推.那么会出现什么意外呢.主要有两个,第一抢占,第二程序执行完毕.

2.由小到大的构建进程的模拟

  2.1进程:

    对于进程类,也就是进程控制块,最主要的有两件事第一,在一个时间片里面要做哪些事,第二控制进程处理的进度,;

  2.2进程列队:

    1,要控制确定当前处理的列队位置,

    2,控制进程完成后的列队转移

    3,处理新进入的进程

    4.控制获取下一个要执行的进程

  2.3进程时间轴

    用于存储进程开始的时间和进程要持续的时间

    封装下一个要出来的

    插入进程就相当于在时间轴上插入

  2.4调度机

    根据调度算法对进程进行调度,在此如果上面的类都完成了,这样调度算法就很简单了,几句话就简单了

3,可视化界面解决方案:

  在每一个时间片结束后,可以根据每一个进程的状态画出一张图表之类的,事实更新就可以动态展示啦

4.干说不练假把式,不如直接给代码:

  https://github.com/Ericgoodboy/learnJava,源码在此src中TestThread包中我隐藏了AmazingCanves中关于绘图的方法大家的家可以自行发挥