COMPUTER ORGANIZATION AND ARCHITECTURE DESIGNING FOR PERFORMANCE NINTH EDITION
An SMP operating system manages processor and other computer resources so that
the user perceives a single operating system controlling system resources. In fact,
such a configuration should appear as a single-processor multiprogramming system.
In both the SMP and uniprocessor cases, multiple jobs or processes may be active at
one time, and it is the responsibility of the operating system to schedule their execu-
tion and to allocate resources. A user may construct applications that use multiple
processes or multiple threads within processes without regard to whether a single
processor or multiple processors will be available. Thus, a multiprocessor operating
system must provide all the functionality of a multiprogramming system plus addi-
tional features to accommodate multiple processors. Among the key design issues:
• Simultaneous concurrent processes: OS routines need to be reentrant to allow
several processors to execute the same IS code simultaneously. With mul-
tiple processors executing the same or different parts of the OS, OS tables
and management structures must be managed properly to avoid deadlock or
invalid operations.
• Scheduling: Any processor may perform scheduling, so conflicts must be
avoided. The scheduler must assign ready processes to available processors.
• Synchronization: With multiple active processes having potential access to
shared address spaces or shared I/O resources, care must be taken to provide
effective synchronization. Synchronization is a facility that enforces mutual
exclusion and event ordering.
• Memory management: Memory management on a multiprocessor must
deal with all of the issues found on uniprocessor machines, as is discussed in
Chapter 8. In addition, the operating system needs to exploit the available
hardware parallelism, such as multiported memories, to achieve the best per-
formance. The paging mechanisms on different processors must be coordi-
nated to enforce consistency when several processors share a page or segment
and to decide on page replacement.
• Reliability and fault tolerance: The operating system should provide graceful
degradation in the face of processor failure. The scheduler and other portions
of the operating system must recognize the loss of a processor and restructure
management tables accordingly.