✅ 병렬 (Parallel Processing)
- 여러 작업(쓰레드)이 동시에 실행됨
- CPU 코어가 여러 개일 때 각 코어에서 각각의 작업이 동시에 수행됨
- 예시
- 4코어 CPU가 있으면, 4개의 쓰레드가 각각 다른 코어에서 동시에 실행됨
- 마치 여러 명의 요리사가 한 번에 각각 다른 요리를 하는 것!
📌 특징
✔ 물리적으로 동시에 실행
✔ 멀티코어 환경에서 성능 향상 가능
✔ CPU 사용률 극대화
✔ 데이터 처리 속도가 빠름
✅ 병행 (Concurrency)
- 여러 작업(쓰레드)이 번갈아가면서 실행됨
- CPU가 빠르게 작업을 전환(Switching) 해서 동시에 실행되는 것처럼 보이는 효과
- 싱글코어 CPU에서도 병행 처리가 가능함!
- 예시
- 한 명의 요리사가 여러 개의 요리를 동시에 준비하는 것
- 면을 삶으면서(대기), 소스를 만들고(작업), 채소를 썰고(작업) 반복
📌 특징
✔ 실제로 동시에 실행되지 않음 (동시에 실행되는 것처럼 보임)
✔ 작업 간 빠른 전환을 통해 효율적으로 처리
✔ 싱글코어에서도 가능 (멀티코어 필요 없음)
✔ I/O 작업에 적합 (네트워크, 파일 읽기/쓰기 등)
🚀 병렬 vs 병행 비교
구분병렬 (Parallel)병행 (Concurrency)
CPU 활용 | 멀티코어 사용 | 싱글코어에서도 가능 |
작업 실행 방식 | 여러 작업이 물리적으로 동시에 실행 | 여러 작업이 번갈아가며 실행됨 (동시에 실행되는 것처럼 보임) |
적용 예시 | 이미지 처리, 머신러닝 연산 | 웹 서버, 네트워크 요청 처리 |
라이브러리 (Python) | multiprocessing | threading, asyncio |
💡 정리
✔ 병렬(Parallel) → 여러 개의 코어에서 여러 작업을 동시에 실행
✔ 병행(Concurrency) → 한 개의 코어에서 빠르게 작업을 전환하여 실행
✔ CPU 바운드 작업(연산 집중형) → 병렬 처리가 유리
✔ I/O 바운드 작업(네트워크, 파일 읽기/쓰기) → 병행 처리가 유리
'CS 상식 - 운영체제' 카테고리의 다른 글
[CS 상식 - 운영체제] 동기화 (1) | 2025.02.19 |
---|---|
[CS 상식 - 운영체제] CPU 스케줄링 알고리즘 (1) | 2025.02.14 |
[CS 상식 - 네트워크] CPU 스케줄링 (0) | 2025.02.14 |
[CS 상식 - 운영체제] 프로세스와 스레드 (스터디 2) (0) | 2025.02.10 |
[CS 상식 - 운영체제] 운영체제 시작하기 (스터디 1) (2) | 2025.02.05 |