A report on Concurrency (computer science)

The "Dining Philosophers", a classic problem involving concurrency and shared resources

Ability of different parts or units of a program, algorithm, or problem to be executed out-of-order or in partial order, without affecting the final outcome.

- Concurrency (computer science)
The "Dining Philosophers", a classic problem involving concurrency and shared resources

12 related topics with Alpha

Overall

Actor model

6 links

Mathematical model of concurrent computation that treats actor as the universal primitive of concurrent computation.

Mathematical model of concurrent computation that treats actor as the universal primitive of concurrent computation.

It has been used both as a framework for a theoretical understanding of computation and as the theoretical basis for several practical implementations of concurrent systems.

Process calculus

4 links

In computer science, the process calculi (or process algebras) are a diverse family of related approaches for formally modelling concurrent systems.

Concurrent computing

4 links

Concurrent computing is a form of computing in which several computations are executed concurrently—during overlapping time periods—instead of sequentially—with one completing before the next starts.

(a) Petri net trajectory example

Petri net

3 links

One of several mathematical modeling languages for the description of distributed systems.

One of several mathematical modeling languages for the description of distributed systems.

(a) Petri net trajectory example
A Petri net with an enabled transition.
The Petri net that follows after the transition fires (Initial Petri net in the figure above).
The reachability graph of N2.
An unbounded Petri net, N.
A two-bounded Petri net, obtained by extending N with "counter-places".
Petri net types graphically

Since firing is nondeterministic, and multiple tokens may be present anywhere in the net (even in the same place), Petri nets are well suited for modeling the concurrent behavior of distributed systems.

Communicating sequential processes

3 links

In computer science, communicating sequential processes (CSP) is a formal language for describing patterns of interaction in concurrent systems.

Denotational semantics

3 links

Approach of formalizing the meanings of programming languages by constructing mathematical objects (called denotations) that describe the meanings of expressions from the languages.

Approach of formalizing the meanings of programming languages by constructing mathematical objects (called denotations) that describe the meanings of expressions from the languages.

Many researchers have argued that the domain-theoretic models given above do not suffice for the more general case of concurrent computation.

Message passing

2 links

Technique for invoking behavior on a computer.

Technique for invoking behavior on a computer.

Message passing is key to some models of concurrency and object-oriented programming.

Unbounded nondeterminism

2 links

In computer science, unbounded nondeterminism or unbounded indeterminacy is a property of concurrency by which the amount of delay in servicing a request can become unbounded as a result of arbitration of contention for shared resources while still guaranteeing that the request will eventually be serviced.

Concurrency control

1 links

In information technology and computer science, especially in the fields of computer programming, operating systems, multiprocessors, and databases, concurrency control ensures that correct results for concurrent operations are generated, while getting those results as quickly as possible.

In information technology and computer science, especially in the fields of computer programming, operating systems, multiprocessors, and databases, concurrency control ensures that correct results for concurrent operations are generated, while getting those results as quickly as possible.

Concurrency control in Database management systems (DBMS; e.g., Bernstein et al. 1987, Weikum and Vossen 2001), other transactional objects, and related distributed applications (e.g., Grid computing and Cloud computing) ensures that database transactions are performed concurrently without violating the data integrity of the respective databases.

Coroutine

1 links

Coroutines are computer program components that generalize subroutines for non-preemptive multitasking, by allowing execution to be suspended and resumed.

Coroutines are computer program components that generalize subroutines for non-preemptive multitasking, by allowing execution to be suspended and resumed.

Coroutines provide concurrency but not parallelism.