scispace - formally typeset
Open AccessProceedings ArticleDOI

The tasks with effects model for safe concurrency

TLDR
A new concurrent programming model based on tasks with effects that offers strong safety guarantees while still providing the flexibility needed to support the many ways that concurrency is used in complex applications is proposed.
Abstract
Today's widely-used concurrent programming models either provide weak safety guarantees, making it easy to write code with subtle errors, or are limited in the class of programs that they can express. We propose a new concurrent programming model based on tasks with effects that offers strong safety guarantees while still providing the flexibility needed to support the many ways that concurrency is used in complex applications. The core unit of work in our model is a dynamically-created task. The model's key feature is that each task has programmer-specified effects, and a run-time scheduler is used to ensure that two tasks are run concurrently only if they have non-interfering effects. Through the combination of statically verifying the declared effects of tasks and using an effect-aware run-time scheduler, our model is able to guarantee strong safety properties, including data race freedom and atomicity. It is also possible to use our model to write programs and computations that can be statically proven to behave deterministically. We describe the tasks with effects programming model and provide a formal dynamic semantics for it. We also describe our implementation of this model in an extended version of Java and evaluate its use in several programs exhibiting various patterns of concurrency.

read more

Content maybe subject to copyright    Report

Citations
More filters
Journal ArticleDOI

A Survey of Recent Trends in Testing Concurrent Software Systems

TL;DR: This survey provides a framework to capture the key features of the Available techniques to test concurrent software systems, identifies a set of classification criteria to review and compare the available techniques, and discusses in details their strengths and weaknesses, leading to a thorough assessment of the field and paving the road for future progresses.
Journal ArticleDOI

K Overview and SIMPLE Case Study

TL;DR: An overview of the tool-supported K framework for semantics-based programming language design and formal analysis is given, namely the K definition of the dynamic and static semantics of SIMPLE, a non-trivial imperative programming language.
Proceedings ArticleDOI

Dynamic enforcement of determinism in a parallel scripting language

TL;DR: This paper introduces the constructs of Deterministic Parallel Ruby (DPR), together with a run-time system (Tardis) that verifies properties required for determinism, including correct usage of reductions and commutative operators, and the mutual independence (data-race freedom) of concurrent tasks.
Journal ArticleDOI

Revisiting the Complexity of Hardware Cache Coherence and Some Implications

TL;DR: This article verifies a publicly available, state-of-the-art implementation of the widely used MESI protocol, using the Murφ model checking tool, and indicates that hardware coherence protocols remain complex and reinforces the need for protocol designers to embrace formal verification tools to demonstrate correctness of new protocols and extensions.
Book ChapterDOI

From Rewriting Logic, to Programming Language Semantics, to Program Verification

TL;DR: An overview of recent results obtained in the context of the rewriting logic semantics framework, such as complete semantics of large programming languages like C, Java, JavaScript, Python, and deductive program verification techniques that allow us to verify programs in these languages using a common verification infrastructure.
References
More filters
Journal ArticleDOI

A Computational Approach to Edge Detection

TL;DR: There is a natural uncertainty principle between detection and localization performance, which are the two main goals, and with this principle a single operator shape is derived which is optimal at any scale.
Book

Actors: A Model of Concurrent Computation in Distributed Systems

TL;DR: In this article, the authors define an abstract actor machine and provide a minimal programming language for it, which includes higher level constructs such as delayed and eager evaluation, which can be defined in terms of the primitives.
Journal ArticleDOI

Cilk: An Efficient Multithreaded Runtime System

TL;DR: It is shown that on real and synthetic applications, the “work” and “critical-path length” of a Cilk computation can be used to model performance accurately, and it is proved that for the class of “fully strict” (well-structured) programs, the Cilk scheduler achieves space, time, and communication bounds all within a constant factor of optimal.
Journal ArticleDOI

Shared memory consistency models: a tutorial

TL;DR: This work describes an alternative, programmer-centric view of relaxed consistency models that describes them in terms of program behavior, not system optimizations, and most of these models emphasize the system optimizations they support.
Proceedings ArticleDOI

Cilk: an efficient multithreaded runtime system

TL;DR: This paper shows that on real and synthetic applications, the “work” and “critical path” of a Cilk computation can be used to accurately model performance, and proves that for the class of “fully strict” (well-structured) programs, the Cilk scheduler achieves space, time and communication bounds all within a constant factor of optimal.
Related Papers (5)
Trending Questions (1)
Will Windows Task Scheduler run when computer is locked?

Through the combination of statically verifying the declared effects of tasks and using an effect-aware run-time scheduler, our model is able to guarantee strong safety properties, including data race freedom and atomicity.