나는 이렇게 학습한다/CS

동시성(병행성) vs 병렬성

daco2020 2022. 1. 16. 16:55
반응형

동시성(Cuncurrency)

  • 논리적 개념
  • at the same time (X)
  • 동시성이란 스위칭으로 한 번에 여러 작업을 동시에 다루는 것을 의미
    → 싱글 프로세스, 싱글 스레드가 스위칭을 하면서 여러 작업을 수행
    → 멀티스레드도 스위칭하며 작업 가능
  • 비유) 하나의 로봇이 왔다 갔다 하며 작업을 수행 (바운드될 때마다 스위칭)

 

 

 

병렬성(Parallelism)

  • 물리적 개념
  • at the same time (O)
  • 병렬성은 한 번에 여러 작업을 병렬적으로 처리하는 것을 의미
    → 멀티 프로세스, 멀티 스레드를 통해 동시에 여러 작업을 수행
    → 싱글 스레드는 불가능
  • 비유) 여러 로봇이 동시에 각자 맡은 작업을 수행

 

 

유의할 점

  • 동시성과 병렬성은 함께 공존할 수 있다. 예를 들어 병렬적으로 작업을 수행하면서 그 하위에 동시성으로 스위칭하며 작업을 수행할 수 있음
  • 파이썬은 GIL(글로벌 인터프리터 락)으로 인해 멀티 스레드라도 병렬 작업을 수행할 수 없음. 때문에 파이썬에서는 멀티 스레드 또한 동시성으로 수행하게 됨
반응형

'나는 이렇게 학습한다 > CS' 카테고리의 다른 글

TCP와 UDP 비교  (0) 2022.03.20
메모리 단편화를 해결하는 세 가지 방법  (0) 2022.02.09
컴퓨터 구조와 운영체제 기본  (2) 2022.01.16
동기 vs 비동기  (0) 2022.01.15
CPU 바운드와 I/O 바운드  (0) 2022.01.15