Abstract
Deterministic behaviour is a prerequisite for most approaches to object replication. In order to avoid the non-determinism of multithreading, many object replication systems are limited to using sequential method execution. In this paper, we survey existing application-level scheduling algorithms that enable deterministic concurrent execution of object methods. Multithreading leads to a more efficient execution on multiple CPUs and multi-core CPUs, and it enables the object programmer to use condition variables for coordination between multiple invocations. In existing algorithms, a thread may only start or resume if there are no potentially nondeterministic conflicts with other running threads. A decision only based on past actions, without knowledge of future behaviour, must use a pessimistic strategy that can cause unnecessary restrictions to concurrency. Using a priori knowledge about future actions of a thread allows increasing the concurrency. We propose static code analysis as a way for predicting the lock acquisitions of object methods. © 2007 IEEE.
Cite
CITATION STYLE
Domaschka, J., Schmied, A. I., Reiser, H. P., & Hauck, F. J. (2007). Revisiting deterministic multithreading strategies. In Proceedings - 21st International Parallel and Distributed Processing Symposium, IPDPS 2007; Abstracts and CD-ROM. https://doi.org/10.1109/IPDPS.2007.370415
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.