728x90

 

동시성과 병렬성은 혼동하기 쉬운 개념입니다. 

 

그래서 둘을 비교해 정리해보도록 하겠습니다. 

 

먼저, 표를 통해 비교해보겠습니다. 

 

동시성 병렬성
동시에 실행되는 것 같이 보이는 것 실제로 동시에 여러 작업이 처리되는 것 
싱글 코어에서 멀티 쓰레드(Multi Thread)를 동작 시키는 방식 멀티 코어에서 멀티 쓰레드(Multi Thread)를 동작시키는 방식 
한 번에 많은 을 처리 한 번에 많은을 처리
논리적인 개념 물리적인 개념 

 

표로 봐도 차이가 있지만, 그림으로 더 확실히 차이를 보겠습니다. 

 

Sequential - Concurrent - Parallel

 

Sequential은 일들이 순차적으로 처리되고 있습니다. 하나의 일이 끝나면 다음으로 넘어가고, 그 다음으로 넘어가는 방식입니다. 

 

Concurrent는 파란색과 빨간색 두 개의 작업이 동시에 실행되는 것처럼 보이지만, 실은 번갈아가면서 작업을 수행중입니다. 

 

Parallel은 파란색과 빨간 색 두 개의 작업이 실제로 동시에 실행중입니다. 

 

 

그림을 하나 더 보도록 하겠습니다. 싱글 코어와 멀티 코어에서 동작을 비교하는 그림입니다. 

 

 

싱글 코어에서는 T1과 T2, 2개의 작업을 동시에 실행되는 것처럼 보이게 하기 위해 번갈아가면서 작업을 수행중입니다. 

 

이 때, 다른 작업으로 바꾸어 실행할 때 내부적으로 Context Switch가 일어납니다. 

 

멀티 코어는 실제로 T1과 T2가 동시에 수행중입니다. 

 

 

이제 감을 잡았으니, 동시성과 병렬성을 다시 정리해봅시다. 

 

동시성

  • 싱글 코어에서 멀티 스레드를 동작시키기 위한 방식
  • 멀티 태스킹을 위해 여러 개의 스레드가 번갈아가면서 실행되는 성질
  • 동시에 실행되는 것처럼 보이는 것
  • 싱글 코어에서 멀티 스레드를 이용해 동시성을 구현하는 일부 케이스에 대한 내용, 멀티 코어에서 멀티 스레드를 이용하여 멀티 스레드를 이용하여 동시성을 만족할 경우에는 실제 물리적 시간으로 동시에 실행된다. 

 

병렬성

  • 멀티 코어에서 멀티 스레드를 동작시키는 방식
  • 한 개 이상의 스레드를 포함하는 각 코어들이 동시에 실행되는 성질
  • 병렬성의 핵심은 물리적인 시간에 동시에 수행되는 것, 멀티 코어에 포커스가 맞춰져서는 안 된다.
  • 네트워크 상의 여러 컴퓨터에게 분산 작업을 요청하는 분산 컴퓨팅

 

 

728x90

'CS > 운영체제' 카테고리의 다른 글

교착 상태(dead lock)이란?  (0) 2021.08.01
시스템 콜(System Call)이란?  (0) 2021.08.01

+ Recent posts