Concurrency (computer Science) Article Index for
Concurrency
 

Information About

Concurrency (computer Science)




In Computer Science , concurrency is a property of systems in which several Computation al processes are executing at the same time, and potentially interacting with each other.1 The study of concurrency encompasses a broad range of systems, from tightly-coupled, largely synchronous Parallel Computing systems, to loosely-coupled, largely asynchronous Distributed System s.2 The concurrent processes may be executing truly simultaneously, in the case that they run on separate processors, or their execution steps may be interleaved to produce the appearance of concurrency, as in the case of separate processes running on a Multitasking system. Because the processes in a concurrent system can interact with each other while they are executing, the number of possible execution paths in the system can be extremely large, and the resulting behavior can be very complex. The difficulties associated with concurrency have been tackled both through the construction of languages and concepts to make the complexity of concurrent execution manageable, and through the development of theories for reasoning about interacting concurrent processes.


ISSUES

The difference between a sequential system and a concurrent system is the fact that the processes which make up a concurrent system can interact with each other. Concurrent use of shared Resources is the source of many difficulties. Race Condition s involving shared resources can result in unpredictable system behavior. The introduction of Mutual Exclusion can prevent race conditions, but can lead to problems such as Deadlock , and Starvation .

In addition to internal interactions, many concurrent systems, such as Operating System s and Database s, are intended to participate in an ongoing interaction with users, and with other systems. Traditional notions of program correctness, which are based on relating an initial input to the output expected to appear at program termination, are not really applicable. Alternative ways of defining what it means for the operation of a concurrent system to be correct are required.

The design of concurrent systems often entails finding reliable techniques for coordinating their execution, data exchange, memory allocation, and execution scheduling to minimize response time and maximise throughput.


THEORY


Concurrency theory has been an active field of research in In the years since, a wide variety of formalisms have been developed for modeling and reasoning about concurrency.


Models

  Last Tanenbaum
  First Andrew S
  Coauthors Van Steen, Maarten
  Title Distributed Systems: Principles and Paradigms
  Publisher Prentice Hall
  Date 2002
  Isbn 0-13-088893-1


  Last Kurki-Suoni
  First Reino
  Title A Practical Theory of Reactive Systems
  Publisher Springer
  Date 2005
  Isbn 3-540-23342-3