Issues in Concurrent Programming
Introduction
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.
Behind The Theory
The programmer new to concurrent programming usually comes across a multitude of terms like threads, semaphores, mutexes, monitors, conditional variables, signals, delayed variables, critical sections, RPCs, rendezvous, remote evaluations, synchronous/asynchronous data transfer, message queues, shared memory, priorities, deadlocks and so on. He/she will also have been introduced to certain “sample” problems like Dining Philosophers and Producer-Consumer problems which usually fail to make much sense. What does it mean if five philosophers get together to eat spaghetti? Well, hardly anything. But the example serves as a classic case common to most concurrent programming issues, if only it is viewed together with practical scenarios. So it is usually best to introduce terms and concepts on a need-by-need basis.
But before we do that, let’s see when we really need concurrent programming.
Download
Download full seminar papers At
http://www.enjineer.com/forum
No comments:
Post a Comment