CS 상식 - 운영체제

[CS 상식 - 운영체제] 병렬과 병행

beginner-in-coding 2025. 2. 10. 17:31

✅ 병렬 (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 바운드 작업(네트워크, 파일 읽기/쓰기)병행 처리가 유리