티스토리 뷰

728x90
반응형

어제 수업을 듣다가 동시성과 병렬성에 대해 배웠다.

 

말로만 들으니 헷갈려서 시간이 난 김에 정리.

 

선 요약

 

병렬성은 동시성을 구현하는 방법 중 하나.

 

동시성은 동시처럼 보이지만 수도(Pseudo) 동시성.

 

병렬성이 진짜 동시성. 

 

Concurrency vs. Parallelism

 

동시성(Concurrency) 병렬성(Parallelism)
여러 작업이 동시에 실행되고 있는 것처럼 처리되는 것 여러 작업이 실제로 동시에 실행되는
싱글(멀티) 코어 환경에서 논리적 멀티 스레드 생성 및 오버래핑 멀티 코어 환경에서 물리적 멀티 스레드 생성 및 실행 
2개 이상의 논리 스레드 필요 2개 이상의 코어, 2개 이상의 물리 스레드 필요
빠른 시간에 하나씩 많은 것을 번갈아가며 처리(멀티 태스킹) 한번에 많은 것을 처리(멀티 코어 프로세서)
최대한 많은 연산을 동시에 종료하는 것이 목표 작업 처리량과 연산속도 증가가 목표
동일 연산에 대해 매번 다른 결과(비결정론적) 동일 연산에 대해 항상 같은 결과 보장(결정론적)

간단하게 정리하면 동시성하나의 코어논리적으로 여러 가지 작업을 빠르게 번갈아가며 처리하는 것이고,

 

병렬성두 개 이상의 코어가 작업을 물리적으로 나눠서 말 그대로 동시에 처리하는 것을 말한다.

 

아래 그림을 보자.

 

싱글코어 동시성의 연산 과정과 멀티코어 병렬성의 연산 과정이 다른 모양을 가지는 것을 확인할 수 있다.

 

위 그림을 축을 회전시켜서 그리면 아래와 같이 그릴 수도 있다.

 

마지막으로 조금 추상적으로 말하자면 병렬성동시성의 하위 개념이자 동시성을 구현하는 방법 중 하나이며,

 

병렬성 없는 동시성은 있어도 동시성 없는 병렬성은 없다고 할 수도 있다.

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함