考虑以下一组流程:
一旦每个进程处理完其“突发时间”,它就会进入等待队列,然后在显示的时间后“返回”到就绪队列。
您需要模拟 200 个时间单位的 CPU 调度。
对于以下每种调度算法,您的程序必须显示甘特图
图表、平均等待时间和平均周转时间。
1- First Come First Served.
2- Shortest Job First.
3- Shortest Remaining Time First.
4- Round Robin, with q = 5
5- Preemptive Priority Scheduling, with aging; where priority is decremented by
1 if the process remains in the ready queue for 5 time units.
6- Non-preemptive Priority Scheduling, with aging; where priority is
decremented by 1 if the process remains in the ready queue for 5 time units.
对于此作业,您可以使用您选择的任何编程语言。
流程 | 到达时间 | 爆发时间 | 之后回来 | 优先 |
---|---|---|---|---|
P1 | 0 | 10 | 2 | 3 |
P2 | 1 | 8 | 4 | 2 |
P3 | 3 | 14 | 6 | 3 |
P4 | 4 | 7 | 8 | 1 |
P5 | 6 | 5 | 3 | 0 |
P5 | 7 | 4 | 6 | 1 |
P7 | 8 | 6 | 9 | 2 |
提示:您应该创建一个最初创建 7 个进程的进程,并不断更新进程的状态,以及另一个调度这些进程并绘制结果的进程,
我的问题是如何利用这个回来时间?
进程必须完成为什么会返回到就绪队列?
我的问题是如何利用这个回来时间?进程必须完成为什么会返回到就绪队列?
问题陈述指出:
一旦每个进程处理完其“突发时间”,它就会进入等待队列,然后在显示的时间后“返回”到就绪队列。
突发时间是给定进程单次允许的最大持续时间。当一个进程被允许运行时,突发时间定时器/计数器被重置为0,然后随着时钟的滴答而递减,如果满足突发时间,那么该进程肯定没有完成,并且必须被中断/由于突发时间限制而停止/暂停,而不是完成。 (系统计时器/计数器可能从突发时间向下运行到 0,而不是从 0 向下运行到突发时间。)
由于达到突发时间的进程尚未完成,因此有必要再给它一次运行机会,这是通过首先等待一段时间(即“回来后”),然后使其准备好再次运行(即可运行)来完成的。当处于等待期间时,它没有资格运行,因此不会运行(也许除非就绪队列为空)。
另一方面,当一个进程完成时,即运行到成功完成其所有工作时,它将在达到突发时间限制之前(即仍在其突发时间内)通知系统。它将从队列中删除。