2026. 4. 20. 13:14ㆍ운영체제(OS)
다중 처리 시스템과 플린(Flynn) 분류
여러 프로세서가 협력해 작업하는 다중 처리 시스템의 개념과, 명령어·데이터 흐름에 따라 컴퓨터 구조를 분류하는 플린 분류를 정리한다.
1. 다중 처리 시스템(Multi-Processing System)
다중 처리 시스템은 주기억장치1와 입출력장치를 여러 프로세서가 공유하며 처리 능력을 나눠 쓰는 구조다. 프로세서 하나가 고장나도 나머지가 계속 동작해야 하는 환경, 즉 끊기면 안 되는 시스템에서 채택한다.
사용 목적은 두 가지로 나뉜다. 신뢰성(Reliability)은 일부 프로세서가 죽어도 시스템 전체가 멈추지 않게 보장하는 것이고, 컴퓨팅 능력(Computing Power)은 여러 프로세서의 연산을 합쳐 전체 처리 속도를 끌어올리는 것이다. 게임 서버나 결제 시스템처럼 무중단이 중요한 곳이 전자의 사례고, AI 학습 클러스터처럼 순수하게 빠른 연산이 목적인 곳이 후자에 해당한다.
다중 처리기의 핵심 특징
다중 처리기는 강결합(Tightly Coupled) 시스템으로 동작한다. 프로세서들이 기억장치와 입출력 채널을 하나의 공유 자원으로 함께 사용하며, 프로세스 간 통신도 공유 기억장치를 통해 이뤄진다. 단일 운영체제가 전체 프로세서를 관리한다는 점도 특징이다.
↑ 프로세서들이 하나의 메모리를 통해 데이터를 주고받는다
다중 처리기 시스템의 분류 기준
다중 처리기 시스템은 어떤 기준으로 바라보느냐에 따라 다양하게 분류된다.
| 분류 기준 | 종류 |
|---|---|
| 구조적 분류 (명령어·데이터 흐름) | SISD, SIMD, MISD, MIMD |
| 결합강도 (기억장치·OS 공유 여부) | 약결합(Loosely Coupled), 강결합(Tightly Coupled) |
| 기억장치 연결 방식 | 시분할/공유버스, 크로스바 교환 행렬, 다중포트, 하이퍼큐브 |
| 운영체제 구성 | 주/종(Master/Slave), 분리(Separative), 대칭적(Symmetric) |
| 병렬 처리 기법 | 파이프라인, 벡터, 배열 프로세서 등 |
이 분류들은 서로 독립적인 기준이다. 예를 들어 MIMD 구조이면서 강결합일 수도 있고, 약결합일 수도 있다. 어떤 조합이냐에 따라 시스템의 성격이 달라진다.
2. 플린(Flynn) 분류
1966년 스탠퍼드 대학 마이클 플린이 제안한 컴퓨터 아키텍처2 분류 체계다. 기준은 단순하다. 동시에 처리하는 명령어 스트림이 하나인지 여럿인지, 데이터 스트림이 하나인지 여럿인지, 이 두 축의 조합으로 4가지 유형을 정의한다.
Single Data
명령어 1개, 데이터 1개.
폰 노이만 구조의 기본 형태. 순차 실행.
Multi Data
명령어 1개로 여러 데이터를 동시 처리.
GPU, 벡터 연산의 핵심 구조.
Single Data
여러 명령어가 하나의 데이터를 처리.
실제로는 사용되지 않는 구조.
Multi Data
여러 명령어가 여러 데이터를 독립 처리.
멀티코어 CPU가 대표 사례.
SISD — 순차 처리의 시작점
명령어 하나가 데이터 하나를 처리하는 가장 단순한 구조다. 우리가 교과서에서 배우는 폰 노이만 구조 컴퓨터가 바로 이 형태다. 매 명령어마다 메모리에서 명령어와 데이터를 따로 가져와야 하기 때문에 처리 속도에 한계가 있다.
파이프라인(Pipeline)3을 적용하면 명령어 처리 단계를 겹쳐 실행해 성능을 끌어올릴 수 있다. 지금도 단일 코어 기준의 동작을 설명할 때 SISD 개념이 기준점이 된다.
SIMD — 하나의 명령으로 대량 처리
제어장치(Control Unit) 하나가 명령어를 내리면, 여러 처리기가 각자 맡은 데이터에 동일한 연산을 동시에 수행하는 구조다. 데이터 간 의존성이 없고 같은 연산을 반복해야 하는 작업에서 위력을 발휘한다.
이미지의 모든 픽셀에 같은 밝기 보정을 적용하거나, 행렬 곱셈처럼 수천 개의 원소에 동일 연산을 반복하는 경우가 전형적인 사례다. 벡터 프로세서, 배열(Array) 프로세서가 이 구조를 사용한다. 현대에는 GPU의 기본 연산 모델이 SIMD 계열이며, 딥러닝 행렬 연산의 핵심 토대가 됐다. Intel AVX, ARM NEON 같은 CPU 내장 SIMD 명령어 세트도 이 개념의 연장선이다.
MISD — 이론상의 구조
여러 명령어가 단 하나의 데이터 스트림을 처리하는 구조다. 교재에서도 명시하듯 실제로는 사용되지 않는 구조다. 결함 허용 시스템에서 동일 데이터를 여러 방식으로 검증할 때 일부 적용 사례가 논의되는 정도다.
MIMD — 현대 멀티코어의 실체
각 프로세서가 서로 다른 명령어로 서로 다른 데이터를 독립적으로 처리하는 구조다. 프로세서들은 비동기적으로 동작하며, 공유 메모리나 분산 메모리를 통해 데이터를 주고받는다.
우리가 쓰는 PC의 멀티코어 CPU, 게임 서버의 멀티스레드 처리, AI 학습 클러스터까지 현대 병렬 컴퓨팅의 주류가 바로 MIMD다. Unity에서 C# Job System을 쓸 때 워커 스레드들이 서로 다른 작업을 병렬로 처리하는 것도 MIMD 구조 위에서 동작한다.
GPU처럼 같은 연산을 대량 데이터에 반복 → SIMD 계열
멀티코어 CPU처럼 각 코어가 독립적인 작업 처리 → MIMD
플린 분류 한눈에 비교
| 분류 | 명령어 | 데이터 | 대표 사례 | 현황 |
|---|---|---|---|---|
| SISD | 1개 | 1개 | 초기 단일 CPU | 단일 코어 기준 개념 |
| SIMD | 1개 | 여러 개 | GPU, 벡터 프로세서 | AI·그래픽의 핵심 |
| MISD | 여러 개 | 1개 | — | 사실상 미사용 |
| MIMD | 여러 개 | 여러 개 | 멀티코어 CPU, 슈퍼컴퓨터 | 현대 컴퓨팅의 표준 |
📎 용어 설명
- 주기억장치 — RAM으로 대표되는 메모리 영역. CPU가 직접 접근하는 작업 공간.
- 아키텍처(Architecture) — 컴퓨터 시스템의 구조와 동작 방식을 정의하는 설계 체계.
- 파이프라인(Pipeline) — 명령어 처리 단계(IF→ID→OF→EX)를 겹쳐서 동시에 수행해 처리량을 높이는 기법.
'운영체제(OS)' 카테고리의 다른 글
| [OS]다중처리 시스템 분류 — 어떻게 나뉘는가 - 21 (1) | 2026.04.30 |
|---|---|
| [OS] 분산 처리 시스템과 클라우드 컴퓨팅 - 20 (1) | 2026.04.23 |
| [OS] 보호와 보안 -18 (0) | 2026.04.13 |
| [OS] 디스크 사용 가능한 공간 관리와 디스크 공간 할당 방법 - 17 (0) | 2026.04.11 |
| [OS] 파일 시스템(File System) - 16 (0) | 2026.04.10 |