Concurrency vs Parallelism

김형진·2023년 11월 26일
0

병행성(Concurrency)병렬성(Parallelism) 은 컴퓨터 과학에서 중요한 개념으로, 여러 작업을 동시에 처리하는 방법에 관한 것이다. 이 두 개념은 서로 밀접하게 관련되어 있지만, 구체적인 의미와 적용 방법에서 차이가 있다.


병행성(Concurrency)

병행성은 여러 작업이 시간적으로 중첩되어 실행되는 것을 의미한다. 병행성을 통해 하나의 처리 장치에서 여러 작업이 번갈아 가면서 실행되어, 동시에 실행되는 것처럼 보이게 한다.

시간 분할
병행성은 시간을 작은 단위로 나누어 각 작업에 할당함으로써 여러 작업을 번갈아 처리한다.

응답성 향상
사용자 인터페이스나 네트워크 통신과 같이 응답성이 중요한 응용 프로그램에서 유용하다.

자원 활용
CPU와 같은 자원을 효율적으로 활용하여 시스템의 전반적인 성능을 향상시킨다.


병렬성(Parallelism)

병렬성은 여러 처리 장치를 사용하여 여러 작업을 동시에 실제로 실행하는 것을 의미한다. 병렬 처리는 특히 계산 집약적인 작업에서 성능을 크게 향상시킬 수 있다.

동시 실행
병렬 처리는 여러 프로세서 또는 코어를 사용하여 여러 작업을 동시에 실행한다.

성능 향상
대규모 데이터 처리나 복잡한 계산 작업에서 성능 향상을 가져온다.

자원 분배
각 작업은 별도의 자원을 사용하여 독립적으로 실행된다.


병행성과 병렬성의 차이

병행성(Concurrency)
단일 프로세서에서 여러 작업을 번갈아 가며 실행. 시간적 중첩을 통해 동시성을 달성한다.

병렬성(Parallelism)
여러 프로세서에서 여러 작업을 실제로 동시에 실행. 물리적 동시성을 달성한다.

쉽게 말해,

싱글코어에서 빠른 context switching 을 통해 여러 작업을 동시에 수행하는 것처럼 보임으로써 논리적으로 동시성을 구현하는 것이 병행성,
멀티코어에서 실제로 여러 코어로 여러 작업을 수행함으로써 물리적으로 동시성을 구현하는 것이 병렬성이다.

profile
히히

0개의 댓글