Concepts of Programming Languages

(Sean Pound) #1
Review Questions 625

with BeginInvoke. A callback method address can be sent to the called thread.
Three kinds of thread synchronization are supported with the Interlocked
class, which provides atomic increment and decrement operations, the Monitor
class, and the lock statement.
All .NET languages have the use of the generic concurrent data structures
for stacks, queues, and bags, for which competition synchronization is implicit.
Multilisp extends Scheme slightly to allow the programmer to inform the
implementation about program parts that can be executed concurrently. Con-
current ML extends ML to support a form of threads and a form of synchro-
nous message passing among those threads. This message passing is designed
with channels. F# programs have access to all of the .NET support classes
for concurrency. Data shared among threads that is mutable can have access
synchronized.
High-Performance Fortran includes statements for specifying how data
is to be distributed over the memory units connected to multiple processors.
Also included are statements for specifying collections of statements that can
be executed concurrently.

BIBLIOGRAPHIC NOTES


The general subject of concurrency is discussed at great length in Andrews and
Schneider (1983), Holt et al. (1978), and Ben-Ari (1982).
The monitor concept is developed and its implementation in Concurrent
Pascal is described by Brinch Hansen (1977).
The early development of the message-passing model of concurrent unit
control is discussed by Hoare (1978) and Brinch Hansen (1978). An in-depth
discussion of the development of the Ada tasking model can be found in Ichbiah
et al. (1979). Ada 95 is described in detail in ARM (1995). High-Performance
Fortran is described in ACM (1993b).

REVIEW QUESTIONS



  1. What are the three possible levels of concurrency in programs?

  2. Describe the logical architecture of an SIMD computer.

  3. Describe the logical architecture of an MIMD computer.

  4. What level of program concurrency is best supported by SIMD
    computers?

  5. What level of program concurrency is best supported by MIMD
    computers?

  6. Describe the logical architecture of a vector processor.

  7. What is the difference between physical and logical concurrency?

Free download pdf