CIS 307: TOPIC: Concurrent Processes
Summary
Concurrent processes.
Interleaving, the Bernstein conditions,
determinate computations. Precedence
graphs, Fork and Join, CoBegin and CoEnd.
Software solutions for the
mutual exclusion problem
[Dekker, Peterson, the Bakery algorithm].
Some machine instructions that support concurrency
and spinlocks. Semaphores, monitors, message passing.
Examples of concurrency problems: producer-consumer,
readers and writers, dining philosophers. Examples of language support for
concurrency: CSP, Ada. Structures used in implementing a concurrency kernel.
Reading in Tanenbaum
A number of topics that I consider important are not covered, or covered
in more limited fashion.
Chapter 2:
- Section 2.1: Introduction to Processes
Read carefully after having understood the discussion about
Interleaving,
Precedence graphs.
- Section 2.2: Interprocess Communication
Read carefully. I will provide additional information on
Spinlocks, on
machine instructions that support concurrency,
and on Monitors. We do instead very little with
Event Counters.
- Section 2.3: Classical IPC Problems
Read very carefully. I will give you a non-laboratory concurrency
problem to solve as a homework.
- Section 2.4: Process Scheduling
This material must be studied. We do additional material.
Read the problems at the end of the chapter and discuss them with other
students. If you are not sure about the correct answers, ask the instructor
or the TA.
ingargiola.cis.temple.edu