Concurrent programming languages should be a good fit for embedded systems because they match the intrinsic parallelism of their architectures and environments. Unfortunately, typical concurrent programming formalisms are prone to races and nondeterminism, despite the presence of mechanisms such as monitors.In this paper, we propose SHIM, the core of a deterministic concurrent language, meaning the behavior of a program is independent of the scheduling of concurrent operations. SHIM does not sacrifice power or flexibility to achieve this determinism. It supports both synchronous and asynchronous paradigms-loosely and tightly synchronized threads-the dynamic creation of threads and shared variables, recursive procedures, and exceptions.We illustrate our programming model with examples including breadth-first-search algorithms and pipelines. By construction, they are race-free. We provide the formal semantics of SHIM and a pre-liminary implementation.
Description
Scheduling-independent threads and exceptions in SHIM
%0 Conference Paper
%1 1176908
%A Tardieu, Olivier
%A Edwards, Stephen A.
%B EMSOFT '06: Proceedings of the 6th ACM & IEEE International conference on Embedded software
%C New York, NY, USA
%D 2006
%I ACM
%K Deterministic Embedded Scheduling Threads
%P 142--151
%R http://doi.acm.org/10.1145/1176887.1176908
%T Scheduling-Independent Threads and Exceptions in SHIM
%U http://portal.acm.org/citation.cfm?id=1176908
%X Concurrent programming languages should be a good fit for embedded systems because they match the intrinsic parallelism of their architectures and environments. Unfortunately, typical concurrent programming formalisms are prone to races and nondeterminism, despite the presence of mechanisms such as monitors.In this paper, we propose SHIM, the core of a deterministic concurrent language, meaning the behavior of a program is independent of the scheduling of concurrent operations. SHIM does not sacrifice power or flexibility to achieve this determinism. It supports both synchronous and asynchronous paradigms-loosely and tightly synchronized threads-the dynamic creation of threads and shared variables, recursive procedures, and exceptions.We illustrate our programming model with examples including breadth-first-search algorithms and pipelines. By construction, they are race-free. We provide the formal semantics of SHIM and a pre-liminary implementation.
%@ 1-59593-542-8
@inproceedings{1176908,
abstract = {Concurrent programming languages should be a good fit for embedded systems because they match the intrinsic parallelism of their architectures and environments. Unfortunately, typical concurrent programming formalisms are prone to races and nondeterminism, despite the presence of mechanisms such as monitors.In this paper, we propose SHIM, the core of a deterministic concurrent language, meaning the behavior of a program is independent of the scheduling of concurrent operations. SHIM does not sacrifice power or flexibility to achieve this determinism. It supports both synchronous and asynchronous paradigms-loosely and tightly synchronized threads-the dynamic creation of threads and shared variables, recursive procedures, and exceptions.We illustrate our programming model with examples including breadth-first-search algorithms and pipelines. By construction, they are race-free. We provide the formal semantics of SHIM and a pre-liminary implementation.},
added-at = {2009-04-23T15:44:10.000+0200},
address = {New York, NY, USA},
author = {Tardieu, Olivier and Edwards, Stephen A.},
biburl = {https://www.bibsonomy.org/bibtex/2abaab3db342580ae3e3b5dfef55ce335/gron},
booktitle = {EMSOFT '06: Proceedings of the 6th ACM \& IEEE International conference on Embedded software},
description = {Scheduling-independent threads and exceptions in SHIM},
doi = {http://doi.acm.org/10.1145/1176887.1176908},
interhash = {a0ff6ac27797fd65470add8996e33624},
intrahash = {abaab3db342580ae3e3b5dfef55ce335},
isbn = {1-59593-542-8},
keywords = {Deterministic Embedded Scheduling Threads},
location = {Seoul, Korea},
pages = {142--151},
publisher = {ACM},
timestamp = {2009-04-23T15:44:10.000+0200},
title = {Scheduling-Independent Threads and Exceptions in SHIM},
url = {http://portal.acm.org/citation.cfm?id=1176908},
year = 2006
}