동시성(Concurrency) vs 병렬성(Parallelism)
🏷️동시성(Concurrency) vs 병렬성(Parallelism)
- Parallelism은 하드웨어의 속성이고, Concurrency는 소프트웨어(프로그램, 프로세스)의 속성이다.
📌Concurrency
- Concurrency라는 용어가 동시성이라고 번역되기도 하고 병행성이라고 번역되기도 한다.
- 🖇️cf. 그래서 그냥 원어로 알아두는 것이 좋다.
- 어떤 프로그램의 작업이 Concurrency가 있다는 것은, 그 작업(코드)이 동시에 수행가능하다는 것을 의미한다.
- 이것이 실제로 멀티코어로 돌든, n-way SMT 코어(하이퍼 스레딩 같은)에서 돌든, 싱글코어로 돌든 그것은 implementation의 몫이다.
📌Parallelism
- Concurrency가 있는 프로세스가 실제로 병렬 프로세서에서 동시에 실행되는 것을 의미한다.
- 실제로 멀티코어로 돌거나, n-way SMT 코어에서 물리적으로 병렬적으로 실행되는 것을 의미한다.