一直认为时间片轮转调度法没有什么难度,直到做题的时候才发现这个调度方法有一个需要注意的点。
通常时间片轮转的步骤是:将进程按照先来先服务的顺序组成就绪队列,后到达的进程从从队尾插入,再进行时间片轮转调度。
但是实际情况可能是每个进程到达时间不同,会出现一个执行了一部分的进程和新到达的进程同时存在的情况。
例如A先到达,1个时间片后,B到达。若此时A还没有执行完,那么此时B应该在A的前面还是后面?
答案是:先将新进程插入就绪队列尾部,再将未完成的进程插入就绪队列尾部。
即先执行到达的B,再执行未完成的A。