并发软件中不同进程之间的交互由协议控制。协议中涉及的阻塞I/O操作可能会暂时挂起应用程序中某些进程的执行。调度包括将可用处理器分配给应用程序中适当的非挂起进程,以便满足某些特定的标准(例如,最短执行时间或最高吞吐量)。我们使用一个通用的博弈论调度框架来为应用程序找到最优的非抢占调度。然后,我们将展示如何将此类调度本身编码为协议,在我们的框架中,协议可以与原始应用程序协议组合。由此产生的组合协议将就绪进程的数量限制为可用处理器的数量,这使得现代操作系统的标准抢占式调度程序能够接近应用程序的最佳非抢占式调度器的行为和性能。我们通过比较循环静态数据流网络的两个版本的吞吐量来评估我们的工作:一个版本使用常规协议,另一个版本则使用受限协议。