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 execution 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 additional features to accommodate multiple processors.Among
the key design issues: