首页> 美国卫生研究院文献>Springer Open Choice >From non-preemptive to preemptive scheduling using synchronization synthesis
【2h】

From non-preemptive to preemptive scheduling using synchronization synthesis

机译:使用同步综合从非抢占式调度到抢占式调度

代理获取
本网站仅为用户提供外文OA文献查询和代理获取服务,本网站没有原文。下单后我们将采用程序或人工为您竭诚获取高质量的原文,但由于OA文献来源多样且变更频繁,仍可能出现获取不到、文献不完整或与标题不符等情况,如果获取不到我们将提供退款服务。请知悉。

摘要

We present a computer-aided programming approach to concurrency. The approach allows programmers to program assuming a friendly, non-preemptive scheduler, and our synthesis procedure inserts synchronization to ensure that the final program works even with a preemptive scheduler. The correctness specification is implicit, inferred from the non-preemptive behavior. Let us consider sequences of calls that the program makes to an external interface. The specification requires that any such sequence produced under a preemptive scheduler should be included in the set of sequences produced under a non-preemptive scheduler. We guarantee that our synthesis does not introduce deadlocks and that the synchronization inserted is optimal w.r.t. a given objective function. The solution is based on a finitary abstraction, an algorithm for bounded language inclusion modulo an independence relation, and generation of a set of global constraints over synchronization placements. Each model of the global constraints set corresponds to a correctness-ensuring synchronization placement. The placement that is optimal w.r.t. the given objective function is chosen as the synchronization solution. We apply the approach to device-driver programming, where the driver threads call the software interface of the device and the API provided by the operating system. Our experiments demonstrate that our synthesis method is precise and efficient. The implicit specification helped us find one concurrency bug previously missed when model-checking using an explicit, user-provided specification. We implemented objective functions for coarse-grained and fine-grained locking and observed that different synchronization placements are produced for our experiments, favoring a minimal number of synchronization operations or maximum concurrency, respectively.
机译:我们提出一种用于并行的计算机辅助编程方法。该方法允许程序员以友好的非抢先式调度程序进行编程,并且我们的综合过程插入同步以确保最终程序即使在抢先式调度程序下也可以正常工作。正确性规范是隐式的,从非抢先行为推断得出。让我们考虑程序对外部接口的调用序列。规范要求在抢先式调度程序下产生的任何此类序列应包括在非抢先式调度程序下产生的序列集合中。我们保证我们的综合不会引入死锁,并且插入的同步是最佳的。给定的目标函数。该解决方案基于最终抽象,一种用于以独立关系为模的有界语言包含算法以及在同步布局上生成一组全局约束的算法。全局约束集的每个模型都与一个确保正确性的同步放置相对应。最佳摆放位置选择给定的目标函数作为同步解决方案。我们将该方法应用于设备驱动程序编程,其中驱动程序线程调用设备的软件接口以及操作系统提供的API。我们的实验表明,我们的合成方法准确有效。隐式规范帮助我们找到了一个使用明确的,用户提供的规范进行模型检查时先前遗漏的并发错误。我们为粗粒度和细粒度锁定实现了目标函数,并观察到为我们的实验生成了不同的同步位置,分别支持最少数量的同步操作或最大并发性。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号