Scheduling is a critical part of practical computer systems, and scheduling has also been extensively studied from a theoretical perspective. Unfortunately, there is a gap between theory and practice, as the optimal scheduling policies presented by theory can be difficult or impossible to perfectly implement in practice. In this work, we use recent breakthroughs in queueing theory to begin to bridge this gap. We show how to translate theoretically optimal policies -- which provably minimize mean response time (a.k.a. latency) -- into near-optimal policies that are easily implemented in practical settings. Specifically, we handle the following real-world constraints: - We show how to schedule in systems where job sizes (a.k.a. running time) are unknown, or only partially known. We do so using simple policies that achieve performance very close to the much more complicated theoretically optimal policies. - We show how to schedule in systems that have only a limited number of priority levels available. We show how to adapt theoretically optimal policies to this constrained setting and determine how many levels we need for near-optimal performance. - We show how to schedule in systems where job preemption can only happen at specific checkpoints. Adding checkpoints allows for smarter scheduling, but each checkpoint incurs time overhead. We give a rule of thumb that near-optimally balances this tradeoff.
翻译:排队是实用计算机系统的一个关键部分,从理论角度对时间安排进行了广泛研究。不幸的是,理论与实践之间存在差距,因为理论提出的最佳排期政策可能难以或不可能在实际中完全执行。在这项工作中,我们利用最近排队理论方面的突破来缩小这一差距。我们展示了如何将理论上的最佳政策 -- -- 可以将平均反应时间(a.k.a.latency)减少到几乎最优化的政策,在实际环境中很容易执行。具体地说,我们处理现实世界的以下制约因素: - 我们展示如何在工作规模(a.k.a.运行时间)未知或仅部分为人所知的系统中排队。我们这样做时,我们使用简单的政策来取得非常接近于更为复杂的理论最佳政策的业绩。 - 我们展示如何在仅具备有限优先级别(a.k.a.a.latency)的系统中排队。我们展示了如何调整理论上的最佳政策,以适应这种制约,并确定我们几乎需要多少级别的业绩。 - 我们展示了如何在系统中排队前的排队安排时间,我们只能在最短的检查站。