
출처 ::
[매일매일] 동시성과 병렬성에 대해서 설명해주세요.
동시성(Concurrency)
- 실제로 여러 작업을 동시에 수행하는 것이 아니라, 논리적으로 동시에 실행되는 것처럼 보이게 만드는 개념
- CPU가 작업마다 시간을 분할해 적절하게
context switching
을 해서 동시에 실행되는 것처럼 보이게 한다.
- 실질적으로는 한번에 하나의 작업만을 처리한다.
- 동시성을 통해 유휴 시간(컴퓨터가 작동 가능한데도 작업을 하지 않는 시간)을 최소화
- 싱글 코어에서 멀티 쓰레드(Multi thread)를 동작 시키는 방식
컨택스트 스위칭(context switching)이란?
- CPU/코어에서 실행중이던 프로세스/스레드가 다른 프로세스/스레드로 교체되는 것
- 스레드는 CPU/코어에서 실행되는 기본 단위이기 때문에, 기본적으로 1개의 프로세스는 1개의 스레드를 가진다.
병렬성(Parallelism)
- 동일한 시간에 독립적인 작업을 실행할 수 있음을 의미
- 다른 프로세스, 별도의 컴퓨터 등에서 동시에 실행
- 멀티 코어에서 멀티 쓰레드(Multi thread)를 동작시키는 방식
- 여러 CPU 또는 코어를 사용하여 여러 작업을 병렬로 처리
동시성과 병렬성의 개념과 차이
동시성 (Concurrency) vs 병렬성 (Parallelism)
컨텍스트 스위칭(context switching)