Issues in Concurrent Programming
The term concurrent programming usually refers to the kind of programming required to support simultaneous activities in a software application.
Such a definition is somewhat broad, and indeed concurrent programming can refer to a variety of programming models. For example, multi-processor systems, parallel systems, distributed systems as well as uni-processor systems with simulated concurrency - all these platforms support concurrent programming. In this article, we take particular emphasis on the uni or multi- processor system with actual or simulated concurrency. Many of the issues we handle here are general and can be applied to the other systems as well.
Concurrent programming, as we take focus here, is the set of techniques and tools used in programming concurrent activities that dynamically share information with one another. Note that dynamic information sharing is an important criteria. Otherwise programming two different programs running on two different machines would qualify as concurrent programming under an indiscriminate definition.




