-
동시성 혹은 병렬성?@19.1 ~ /동시성 모델 2020. 7. 1. 21:20
동시성 혹은 병렬성?
내 아내는 교사다. 다른 교사들과 마찬가지로 그녀는 멀티태스킹에 능숙하다.
어느 한 시점에서 보면 그녀는 한 가지 일을 수행하지만 언제나 여러 일을 한꺼번에 다루어야 한다.한 학생이 책을 읽는 것을 듣는 동시에 떠들썩한 교실을 진정시키거나 다른 학생의 질문에 답을 주는 식이다
이것은 동시성이지 병렬성이 아니다. 즉 내 아내는 한명 뿐이다
그녀는 돕는 조교가 같이 있다면(한사람이 책읽는걸 듣고 지도하는 동안 다른 사람이 질문에 답하는 식으로)
동시성과 병렬성이 모두 가능해진다
아내의 학급이 연하장 카드를 디자인해서 생산한다고 생각해보자
학생 한 명당 다섯 개씩 만들도록 할당하는 방법을 쓸 수 있을 것이다.
이렇게 하는 것은 (상위의 수준에서 바라보았을 때)
카드를 만드는 한가지 일만 일어나므로 병렬적이지만 동시적인것은 아니다동시적인 프로그램은 기본적으로 비결정적이기 때문이다
사건이 일어나는 시점, 즉 타이밍에 따라서 결과가 달라진다
문제 자체가 본질적으로 동시적 프로그램을 작성하는 경우에는 비결정적인 동작을 자연스럽고 당연한 것으로 받아들인다
반면 병렬성은 비결정성을 내포하지 않는다. 예컨대 배열에 담겨 있는 모든 숫자에 2를 곱하는 동작은 배열의 절반은 한 코어에서 처리하고 나머지 절반은 다른 코어에서 처리해도 결과가 달라지지 않는다(달라지면 안된다)
이 내용은 7가지 동시성 모델의 책의 내용은 기술 요약 해놓습니다