User:Allan McInnes/Concurrency project


 * This is a not so much a WikiProject, as it is a personal summary of what I feel needs fixing in the area of Concurrency (computer science), and some ideas on how to approach the repairs. It just happens to be structured something like a WikiProject page because that format is good for organizing my thoughts. Nevertheless, feel free to edit this page as though it wasn't in my userspace &mdash; input from others is very welcome.

Motivation
Wikipedia has a large number of articles devoted to different aspects of concurrency. Unfortunately, these articles have been developed in a piecemeal fashion. This has resulted in:
 * Wildly varying article quality.
 * A lot of overlap between the material covered in different articles.
 * A lack of coherent structure &mdash; information is scattered and disorganized.
 * Significant gaps in the information that is presented

Goals

 * Develop individual articles relating to concurrency to the highest-possible standard.
 * Make concurrency articles accessible.
 * Work towards featured article status for concurrency articles.
 * Organize the articles relating to concurrency into a coherent structure.
 * Add new articles where necessary to fill in gaps in information on concurrency.

Scope
Articles relating to concurrency. This includes both the theoretical study of concurrency, and the practicalities of implementing and using concurrency. Articles with a principle focus other than concurrency, but which include concurrency (e.g. Denotational semantics) will probably also receive attention.

To-do list

 * Work on improving an existing concurrency article.
 * Find concurrency articles not yet included in the structure below, and add them.
 * Figure out where the gaps are, and either add articles, or list them below as to be added.
 * Create an article that needs to be added.
 * Rearrange the structure below to better organize the information.
 * Develop a list of proposed articles merges to unify and structure the content of the project articles.

Head article

 * Concurrency (computer science)

Theory of concurrency

 * Models of concurrency — to be added &mdash; very preliminary draft at User:Allan McInnes/Drafts/Models of concurrency
 * Petri nets
 * Petriscript
 * Actor model
 * Process calculi
 * Calculus of Communicating Systems
 * Communicating Sequential Processes
 * Algebra of Communicating Processes
 * Pi-calculus
 * Ambient calculus
 * Calculus of Broadcasting Systems
 * LOTOS
 * Fusion calculus — to be added
 * mCRL2
 * Parallel Random Access Machine
 * Event structures — to be added
 * Tuple space
 * Fairness (computer science) — to be added
 * Unbounded nondeterminism
 * Bisimulation

Logics for concurrency

 * Hennessy-Milner logic — to be added
 * Linear temporal logic
 * Computational tree logic
 * Temporal Logic of Actions

Formal specification languages for concurrent systems

 * Communicating Sequential Processes
 * LOTOS
 * mCRL — to be added
 * TLA+

Tools for analyzing concurrent systems

 * FDR2 — to be added
 * List of Petri net tools
 * SPIN model checker
 * TLC model checker — to be added
 * Uppaal Model Checker

Classic problems

 * Cigarette smokers problem
 * Dining philosophers problem
 * Sleeping barber problem

Concurrent interaction

 * Deadlock
 * Livelock
 * Race condition
 * Shared memory
 * Concurrency control
 * Lock (computer science)
 * Strict two-phase locking
 * Non-strict two-phase locking
 * Conservative two-phase locking
 * Index locking
 * Multiple granularity locking
 * Mutual exclusion
 * Dekker's algorithm
 * Peterson's algorithm
 * Lamport's bakery algorithm
 * Mutex
 * Semaphore (programming)
 * Monitor (synchronization)
 * Banker's algorithm
 * Lock-free and wait-free algorithms
 * Message passing

Practice of concurrency

 * Multi-threaded
 * Threads (computer science)
 * Thread-safe
 * Computer multitasking
 * Process (computing)
 * Concurrent computing
 * Erlang programming language
 * Oz programming language
 * Occam programming language
 * Linda (coordination language)
 * Parallel computing
 * Parallel algorithm
 * Parallel programming model
 * Message Passing Interface
 * OpenMP
 * Multiprocessing
 * Symmetric multiprocessing
 * Asymmetric multiprocessing
 * INMOS Transputer
 * Cell (microprocessor)

Concurrency researchers

 * Per Brinch Hansen
 * Edsger Dijkstra
 * Matthew Hennessy
 * Carl Hewitt
 * C.A.R. Hoare
 * Leslie Lamport
 * Robin Milner
 * Carl Adam Petri
 * Bill Roscoe

Categories
Category:Computer science
 * Category:Concurrency
 * Category:Concurrency theory
 * Category:Actor model (computer science)
 * Category:Process calculi
 * Category:Concurrency control
 * Category:Concurrent computing
 * Category:Parallel computing