【发布时间】:2018-03-14 17:40:24
【问题描述】:
我浏览了一系列调度算法及其实现,但找不到任何参考来实现解决以下问题的算法。
给定具有 n 个进程的进程数组,第 i 个进程表示为:
Arrival[i]代表它的到达时间,
Depart[i] 表示进程将被终止的时间(处理或未处理无关紧要)和
Time[i] 表示为进程提供服务所需的时间,并且
Preferred[i] 表示布尔值(如果首选该过程则为 true,否则为 false)
我们需要安排流程以最大限度地处理首选流程。
一次只能服务一个进程,如果一个进程在完成之前离开,它就被称为未处理。否则,一旦启动,进程将无法暂停或中断。
“最佳”解决方案的标准依次为:
- 服务的首选流程。
- 服务的大多数非首选进程
- 总处理时间最短。
任何想法都将不胜感激。
【问题讨论】:
-
没有给出爆发时间?
-
我不认为经典计算过程具有这样的属性,因此没有实现调度程序。它看起来更像是排队论练习。
-
@VidorVistrom 添加了缺少的属性。
-
在我看来像标准的最高优先级,只是增加了出发时间的限制
-
@Ashutosh:(A) 你的评价说“如果出现平局”,但我还没有看到任何适用的指标。到底是什么关系? (B) 如果一个进程在完成之前离开,它可以重新启动吗?如果是这样,我们在什么时候重新开始?这极大地影响了解决方案:如果我们必须重新开始,那么启动一个我们必须中断的进程根本没有意义,我们可以将这些从考虑中删除。这会将问题简化为轻度增强的区间问题。
标签: algorithm scheduling