동시성과 병렬성
동시성과 병렬성의 개념 정리
운영체제동시성
논리적인 동시 실행
- 싱글 코어에서 멀티 스레드를 동작시키는 방식
- 정의: 여러 작업이 짧은 시간 동안 번갈아 처리되어, 사용자가 느끼기에 마치 동시에 실행되는 것처럼 보이는 것
- 핵심 원리: 싱글 코어 환경에서 컨텍스트 스위칭을 통해 구현
- 특징: 한 번에 실제로 실행되는 작업은 단 하나
쉽게 이해하기
한 명의 바리스타(단일 코어 CPU)가 2개의 주문(아메리카노, 라떼)을 처리하는 상황
- 에스프레소 샷을 내림 (아메리카노)
- 샷이 나오는 동안, 우유를 스팀 (라떼)
- 다시 돌아와 샷에 물을 붓는다 (아메리카노 완료)
- 스팀된 우유를 샷에 붓는다 (라떼 완료)
한 번에 하나의 일만 하지만, 두 작업을 왔다 갔다 번갈아가며(컨텍스트 스위칭) 처리함으로써 전체 작업 완료 시간을 단축한다.
겉보기에는 두 음료가 동시에 만들어지는 것처럼 보인다.
병렬성
물리적인 동시 실행
- 멀티 코어에서 멀티 스레드를 동작시키는 방식
- 정의: 두 개 이상의 작업이 실제로 같은 시점에 함께 실행되는 것
- 핵심 원리: 멀티 코어 환경에서 각 코어가 서로 다른 작업을 동시에 처리함으로써 구현
- 특징: 하드웨어의 지원(여러 개의 코어)가 필수
쉽게 이해하기
두 명의 바리스타(멀티 코어 CPU)가 2개의 주문을 처리하는 상황
- 바리스타 A는 아메리카노만 담당
- 바리스타 B는 라떼만 담당
두 작업이 물리적으로 정말 정확히 같은 시간에 독립적으로 진행된다.