컴퓨터의 CPU는 하나의 작업밖에 하지 못한다. 따라서 데이터는 CPU가 context switch 작업을 할때마다 변경되지만 실제 컴퓨터에서는 우리가 인지하지 못 할 정도로 빠르게 동작합니다.
많은 개발자들이 "동시성과 병렬성은 동시에 실행하는 것을 의미한다"고 생각하는데 큰 차이점이 있습니다.
동시성은 하나의 코어가 두가지 이상의 일을 번갈이 가며 수행하는 반면, 병렬성은 코어 하나가 하나의 일을 한다. 그러나 코어가 여러개라서 여러일을 동시에 수행할 수 있는 것을 뜻한다.
https://t1.daumcdn.net/cfile/tistory/995359405FBBB9591C
동시성은 2개의 작업을 번갈아 수행해야하기 때문에 Context Switch가 일어난다.
동시성 | 병렬성 | |
---|---|---|
정의 | 동일한 코어에서 여러 작업을 실행합니다. | 다른 코어에서 여러 작업을 실행합니다. |
목표 | 자원에 제한없이 동시에 실행되는 것 같은 느낌을 준다. | 자원을 활용하여 실제로 동시에 일을 시킨다. |
설계 | 소프트웨어 설계: 협력 방식으로 독립적으로 실행되는 계산의 구성한다. | 하드웨어 설계: 계산을 병렬로 실행한다. |
자원 활용 | 가볍다. | 부담된다. (듀얼 코어, 쿼드 코어) |
코어 1개 Vs 코어 3개