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中关于绘图的方法大家的家可以自行发挥
标签:10,java,调度,列队,时间,进程,轮转,模拟 来源: https://www.cnblogs.com/mayeye/p/10919865.html