Chapter 6, Concurrent Processes, Ida A. Flynn and Ann McIver McHoes, Understanding Operating Systems, Second Edition, PWS Publishing Company (1993)

Lesson A: Parallel Processing, Typical Multiprocessing Configurations, Master/ Slave Configuration, Loosely Coupled Configuration, Symmetric Configuration, Process Synchronization Software, Test and Set, Wait and Signal, Semaphores

Problem 1.  What is the central goal of most multiprocessing systems?

It is useful to contrast an operating system's task on a machine with multiple CPUs with an operating system's task on a machine with a single CPU which permits multiple programs to be various stages of execution.  The concerns of a multiprogramming system are a subset of the concerns of a multiprocessing system.  The key difference between these environments is that the multiprocessing system must expend more time and resources in synchronizing the access to system resources by processes that are in execution truly simultaneously.

In the multiprogramming environment, the operating system must be concerned about race, starvation, and deadlock of interleaved execution of processes.  In the multiprocessing environment, the operating system must also be concerned with simultaneous attempted accesses to the same memory bank, direct access storage devices, and communications resources.

In a multiprogramming environment, an operating system synchronizes on an event schedule.  The multiprocessing environment operating system can be expected to synchronize on both an event schedule and a time schedule.  Multiple processors are often used in real-time signal processing applications, for instance.

Multiprocessing systems are used to increase system throughput, responsiveness, and reliability.  Sometimes this is done by using special purpose processors, such as a signal processing chip like the TMS320 series Digital Signal Processor (DSP).

Problem 2.  What is the meaning of the term "busy waiting"?

A method by which processes, waiting for an event to occur, continuously test to see if the condition has changed and remain in unproductive, resource-consuming wait loops.

A process that is in a "busy wait" state is still in the RUN queue.   Contrast this with the Wait and Signal approach, where the waiting process is placed into the WAIT queue and therefore is not consuming CPU time while waiting.

Problem 3.  Explain the need for mutual exclusion.

Mutual exclusion is mandatory for physical devices that can service only one process at a time.  Mutual exclusion is desirable for logical structures to ensure data integrity.

Some devices, such as RAM, physically cannot be accessed exactly at the same time by more than one process because access is controlled in a memory bank by a memory address register, and contents transfered to or from memory are placed into a memory buffer register.  A major application of the mutex semaphore in a multiprocessing environment is in establishing mutually exclusive access to memory.

Mutual exclusion to sequential output devices, such as a printer or magnetic tape, is desirable to ensure data integrity.

Mutual exclusion to files during a critical region process is necessary to prevent a race problem.