TutorialsOperating Systems
Core CS

Multiprocessor Systems

A multiprocessor system is a computer setup that uses two or more central processing units (CPUs) working together under a single operating system. These processors share key resources like main memory, system bus, and input/output devices to execute multiple tasks simultaneously. By dividing the workload among several processors, the system delivers faster processing speeds, higher throughput, and better reliability—if one processor fails, the others can take over to keep the system running without a complete crash.

<h2><span>DEFINITION</span></h2><div><!--StartFragment--><p>A <b>multiprocessor system</b> (also called a tightly coupled or parallel system) is an architecture where two or more central processing units (CPUs) share common hardware resources, primarily physical memory (RAM), system buses, power supplies, and peripheral I/O devices. All processors operate under the control of a unified operating system, allowing multiple program instructions or processes to execute simultaneously across different chips or cores.</p><p>In traditional single-processor machines, the CPU switches rapidly between tasks to create the illusion of concurrency (multitasking). In a multiprocessor system, true <b>parallel execution</b> happens: multiple tasks run at the exact same physical instant on separate execution units. The operating system dynamically schedules threads, balances the load, and synchronizes memory access to ensure data consistency across caches and main storage.</p><p><b><br></b></p><p><b>Key Features</b></p><ul><li><p><b>Shared System Resources:</b> Processors share the main memory, system bus, power supply, and external storage, reducing duplicate hardware costs.</p></li><li><p><b>True Parallelism:</b> Executes independent instructions or concurrent threads simultaneously across multiple CPU cores rather than time-slicing a single core.</p></li><li><p><b>Tightly Coupled Architecture:</b> Communication between processors happens through fast shared memory, yielding low latency compared to networked distributed systems.</p></li><li><p><b>Graceful Degradation (Fault Tolerance):</b> If one processor fails, the remaining processors absorb the workload; performance drops slightly, but the system stays operational instead of crashing.</p></li><li><p><b>Dynamic Workload Balancing:</b> The OS scheduler distributes threads across available cores to avoid idle bottlenecks and maximize CPU utilization.</p></li></ul><p><b><br></b></p><p><b>Types of Multiprocessor Systems</b></p><p>Multiprocessor architectures are broadly categorized by how the operating system and memory are structured:</p><table><thead><tr><td><strong>Type</strong></td><td><strong>Architecture</strong></td><td><strong>Memory Access</strong></td><td><strong>Role Distribution</strong></td></tr></thead><tbody><tr><td><b>Symmetric Multiprocessing (SMP)</b></td><td>All CPUs share a single common memory pool via a system bus.</td><td>Equal access time for every processor (UMA).</td><td>Every CPU runs identical tasks, OS code, and user processes as equals.</td></tr><tr><td><b>Asymmetric Multiprocessing (AMP)</b></td><td>Master-slave setup where CPUs are assigned dedicated functions.</td><td>Can be shared or partitioned per processor.</td><td>Master processor controls scheduling and I/O; slave processors execute assigned worker tasks.</td></tr><tr><td><b>NUMA (Non-Uniform Memory Access)</b></td><td>Each CPU has dedicated local memory, but can access remote memory across an interconnect.</td><td>Fast local access; slower remote memory access.</td><td>Processors act as peers, but memory locality dictates scheduling efficiency.</td></tr></tbody></table><p><b><br></b></p><p><b>Major Advantages</b></p><ul><li><p><b>Increased Throughput:</b> Completing more processes per unit of time by executing separate threads in parallel.</p></li><li><p><b>Cost Efficiency:</b> Sharing power units, memory buses, motherboards, and disk storage is cheaper than buying and networking multiple separate computers.</p></li><li><p><b>High Reliability:</b> Crucial for mission-critical servers, databases, and enterprise applications where single points of failure must be avoided.</p></li></ul><p><b style=""><br></b></p><p><b style="">Trade-Offs &amp; Challenges</b></p><ul><li><p><b>Complex OS Scheduling:</b> The operating system must manage race conditions, deadlocks, and thread synchronization.</p></li><li><p><b>Memory &amp; Bus Contention:</b> When multiple processors request data from the shared memory bus at the same time, bus saturation can cause performance bottlenecks.</p></li><li><p><b>Cache Coherency Overhead:</b> Keeping local CPU caches synchronized when multiple cores modify the same memory address requires dedicated hardware protocols (like MESI).<span style="color: rgb(0, 0, 0);">A </span><b style="font-family: Inter, ui-sans-serif, system-ui, -apple-system, &quot;Segoe UI&quot;, Roboto, Arial, sans-serif; font-size: 16px; color: rgb(0, 0, 0);">multiprocessor system</b><span style="color: rgb(0, 0, 0);"> (also called a tightly coupled or parallel system) is an architecture where two or more central processing units (CPUs) share common hardware resources, primarily physical memory (RAM), system buses, power supplies, and peripheral I/O devices. All processors operate under the control of a unified operating system, allowing multiple program instructions or processes to execute simultaneously across different chips or cores.</span></p><!--StartFragment--><p>In traditional single-processor machines, the CPU switches rapidly between tasks to create the illusion of concurrency (multitasking). In a multiprocessor system, true <b>parallel execution</b> happens: multiple tasks run at the exact same physical instant on separate execution units. The operating system dynamically schedules threads, balances the load, and synchronizes memory access to ensure data consistency across caches and main storage.</p><p><br></p></li></ul></div>