and Database management systems are generally designed to operate indefinitely, including automatic recovery from failure, and not terminate unexpectedly (see Concurrency control). Some concurrent systems implement a form of transparent concurrency, in which concurrent computational entities may compete for and share a single resource, but the complexities of this competition and sharing are shielded from the programmer. Because they use shared resources, concurrent systems in general require the inclusion of some kind of arbiter somewhere in their implementation (often in the underlying hardware), to control access to those resources. The use of arbiters introduces the possibility of indeterminacy in concurrent computation which has major implications for practice including correctness and performance. For example, arbitration introduces unbounded nondeterminism which raises issues with model checking because it causes explosion in the state space and can even cause models to have an infinite number of states. Some concurrent programming models include coprocesses and deterministic concurrency. In these models, threads of control explicitly yield their timeslices, either to the system or to another process. See also Chu space Client–server network nodes Clojure Cluster nodes Concurrency control Concurrent computing Concurrent object-oriented programming Concurrency pattern Construction and Analysis of Distributed Processes (CADP) D (programming language) Distributed system Elixir (programming language) Erlang (programming language) Go (programming language) Gordon Pask International Conference on Concurrency Theory (CONCUR) OpenMP Parallel computing Partitioned global address space Processes Ptolemy Project Rust (programming language) Sheaf (mathematics) Threads X10 (programming language) Structured concurrency References Further reading Distefano, S., & Bruneo, D. (2015). Quantitative assessments of distributed systems: Methodologies and techniques (1st ed.). Somerset: John Wiley & Sons Inc. Bhattacharyya, S. S. (2013;2014;). Handbook of signal processing systems (Second;2;2nd 2013; ed.). New York, NY: Springer.10.1007/978-1-4614-6859-2 Wolter, K. (2012;2014;). Resilience assessment and evaluation of computing systems (1. Aufl.;1; ed.). London;Berlin;: Springer. External links Process Algebra Diary - Prof. Luca Aceto's blog on Concurrency Theory Concurrent Systems at The WWW Virtual Library Concurrency patterns presentation given at scaleconf Edsger W. Dijkstra