Treffer: A Data-Centric Approach to Synchronization

Title:
A Data-Centric Approach to Synchronization
Source:
ACM transactions on programming languages and systems. 34(1)
Publisher Information:
New York, NY: Association for Computing Machinery, 2012.
Publication Year:
2012
Physical Description:
print, 1 p.3/4
Original Material:
INIST-CNRS
Subject Terms:
Computer science, Informatique, Sciences exactes et technologie, Exact sciences and technology, Sciences appliquees, Applied sciences, Informatique; automatique theorique; systemes, Computer science; control theory; systems, Logiciel, Software, Langages de programmation, Programming languages, Systèmes informatiques et systèmes répartis. Interface utilisateur, Computer systems and distributed systems. User interface, Génie logiciel, Software engineering, Performances des systèmes informatiques. Fiabilité, Computer systems performance. Reliability, Accès concurrent, Data race, Acceso simultáneo, Accès mémoire, Storage access, Acceso memoria, Annotation, Anotación, Cohérence atomique, Atomic coherence, Compilation, Compilación, Contrôle concurrence, Concurrency control, Control concurrencia, Encapsulation, Encapsulación, Langage JAVA, JAVA language, Lenguaje JAVA, Langage programmation, Programming language, Lenguaje programación, Localisation, Localization, Localización, Modélisation, Modeling, Modelización, Multitâche, Multithread, Multitarea, Objet atomique, Atomic object, Objeto atómico, Orienté objet, Object oriented, Orientado objeto, Simultanéité informatique, Concurrency, Simultaneidad informatica, Synchronisation, Synchronization, Sincronización, Système réparti, Distributed system, Sistema repartido, Type donnée, Data type, Tipo dato, Zone donnée, Data field, Zona dato, Concurrent object-oriented programming, data races, programming model, serializability
Document Type:
Fachzeitschrift Article
File Description:
text
Language:
English
Author Affiliations:
IBM T.J. Watson Research Center, United States
Saarland University, United States
Symantec Research Labs, United States
Purdue University, United States
ISSN:
0164-0925
Rights:
Copyright 2014 INIST-CNRS
CC BY 4.0
Sauf mention contraire ci-dessus, le contenu de cette notice bibliographique peut être utilisé dans le cadre d’une licence CC BY 4.0 Inist-CNRS / Unless otherwise stated above, the content of this bibliographic record may be used under a CC BY 4.0 licence by Inist-CNRS / A menos que se haya señalado antes, el contenido de este registro bibliográfico puede ser utilizado al amparo de una licencia CC BY 4.0 Inist-CNRS
Notes:
Computer science; theoretical automation; systems
Accession Number:
edscal.25969258
Database:
PASCAL Archive

Weitere Informationen

Concurrency-related errors, such as data races, are frustratingly difficult to track down and eliminate in large object-oriented programs. Traditional approaches to preventing data races rely on protecting instruction sequences with synchronization operations. Such control-centric approaches are inherently brittle, as the burden is on the programmer to ensure that all concurrently accessed memory locations are consistently protected. Data-centric synchronization is an alternative approach that offloads some of the work on the language implementation. Data-centric synchronization groups fields of objects into atomic sets to indicate that these fields must always be updated atomically. Each atomic set has associated units of work, that is, code fragments that preserve the consistency of that atomic set. Synchronization operations are added automatically by the compiler. We present an extension to the Java programming language that integrates annotations for data-centric concurrency control. The resulting language, called AJ, relies on a type system that enables separate compilation and supports atomic sets that span multiple objects and that also supports full encapsulation for more efficient code generation. We evaluate our proposal by refactoring classes from standard libraries, as well as a number of multithreaded benchmarks, to use atomic sets. Our results suggest that data-centric synchronization is easy to use and enjoys low annotation overhead, while successfully preventing data races. Moreover, experiments on the SPECjbb benchmark suggest that acceptable performance can be achieved with a modest amount of tuning.