다중 처리(Multiprocessing)는 하나의 컴퓨터 시스템 내에서 두 개 이상의 중앙 처리 장치(CPU) 또는 프로세서를 사용하여 여러 개의 작업을 동시에 수행하거나, 하나의 프로그램을 분할하여 병렬로 처리하는 방식을 의미한다.
이 방식은 물리적으로 여러 개의 프로세서가 존재하여 연산을 실제로 동시에 실행한다는 점에서, 단일 프로세서가 시간을 쪼개어 여러 작업을 번갈아 수행하는 다중 작업(Multitasking)이나 다중 프로그래밍(Multiprogramming)과 구별되는 병렬성(Parallelism)을 특징으로 한다.
다중 처리는 프로세서 간의 결합도와 역할 분담 방식에 따라 다음과 같이 분류된다.
-
대칭형 다중 처리(Symmetric Multiprocessing, SMP): 모든 프로세서가 동등한 권한을 가지며 하나의 메모리와 운영 체제를 공유하는 구조이다. 각 프로세서는 운영 체제의 커널 코드를 실행할 수 있으며, 작업 부하를 비교적 균등하게 분산하여 처리한다. 대부분의 현대 개인용 컴퓨터와 서버 시스템에서 채택하고 있는 방식이다.
-
비대칭형 다중 처리(Asymmetric Multiprocessing, AMP): 프로세서마다 역할이 고정되어 있는 구조이다. 보통 하나의 주 프로세서(Master Processor)가 시스템 전체의 자원 할당과 운영 체제 실행을 담당하며, 나머지 종 프로세서(Slave Processor)들은 주 프로세서의 지시에 따라 특정 작업을 수행한다.
다중 처리 시스템의 주요 목적은 연산 속도의 향상과 처리량(Throughput)의 증대이다. 또한, 특정 프로세서에 결함이 발생하더라도 다른 프로세서가 작업을 대신 수행할 수 있어 시스템의 신뢰성과 가용성을 높이는 효과가 있다. 현대의 다중 코어 프로세서(Multi-core Processor) 기술 역시 하나의 칩 안에 여러 개의 처리 회로를 집적함으로써 다중 처리를 구현하는 형태에 해당한다.