|Home \ Graduation Activities \ Post-Graduation Page||Login|
Data-Centric Concurrency Control on the Java Programming Language
The multi-core paradigm has propelled shared-memory concurrent programming to an important role in software development. Its use is however limited by the constructs that provide a layer of abstraction for synchronizing access to shared resources. Reasoning with these constructs is not trivial due to their concurrent nature. Data-races and deadlocks occur in concurrent programs, encumbering the programmer and further reducing his productivity. Even though the constructs should be as unobtrusive and intuitive as possible, performance must also be kept high compared to legacy lock-based mechanism. Failure to guarantee similar performance will hinder a system from adoption. Recent research attempts to address these issues. However, the current state of the art in concurrency control mechanisms is mostly code-centric and not intuitive to the programmer. Its code-centric nature requires the specification of the zones in the code that require synchronization, contributing to the decentralization of concurrency related bugs and error-proneness of the programmer. On the other hand, the only data-centric approach, atomic sets, exposes excessive detail to the programmer and fails to provide deadlock-freedom in all scenarios. Given this state of the art, our proposal intends to provide the programmer a set of unobtrusive data-centric concurrency control constructs. These will guarantee desirable security properties: composability, atomicity and deadlock-freedom in all scenarios. For that purpose, a lower level mechanism (ResourceGroups) will be used. This system already provides these guarantees with an appealing performance, which should be retained. To infer the efficiency of our work, it will be compared to Java synchronized blocks, transactional memory and atomic sets.
Start Date: 2012-09-10
End Date: 2013-11-04
Post-Graduation Student / Researcher / Professor: