4. Concurrent(병행성)의 도전
암달의 법칙(Amdahl's law)
병렬 컴퓨팅에서 멀티 프로세서를 사용할
때 프로그램의 성능향상은 프로그램의 순
차적인 부분에 의해 제한된다. 예를 들면,
프로그램의 95%가 병렬화 할 수 있다면
이론적인 최대 성능 향상은 아무리 많은
프로세서를 사용하더라도 최대 20배로 제
한된다.
http://en.wikipedia.org/wiki/Amdahl's_law
13. Actor Model
다른 액터에 한정된 개수의 메세지를 보낼 수 있다.
유한한 개수의 액터를 만들어 낼 수 있다.
다른 액터가 받을 메세지에 수반될 행동(behavior)을 지정 할 수
있다.
이런 일들이 동시적으로 진행되는데 있어 미리 정해진 순서는 없
다.
- 칼 휴이트(1973)
14. Actor Model
현실에 액터(사람)를 상상하면 이해하기 편하다.
- 사람은 생각을 공유 못하고 전자우편으로 소통한다.
- 액터는 이름, 행동, 의사소통으로 구성
Message passing
No shared memory
16. Actor Model
Bruce : “그 때(루비를 만들었을 당시)로 돌아간다면, 어떤 기
능에 변화를 주고 싶으세요?”
Matz: “Thread를 없애고, Actor 나 또는 진보된 형태의 동시
성 기능을 추가했을꺼예요.”
Interview with Yukihiro Matsumoto (the creator of Ruby)
from the book, “Seven Languages in Seven Weeks”
17. STM (Software Transactional Memory)
소프트웨어 트랜잭셔널 메모리(Software Transactional Memory, STM)는 컴퓨
터 과학에서 병렬 컴퓨팅에서 공유 메모리으로의 접근을 제어하기 위한 데이터
베이스 트랜잭션과 유사한 동시성 제어 구조이다. 여기에서 트랜잭션은 공유 메
모리에 읽기 및 쓰기를 수행하는 코드 조각을 가리킨다. 하나의 트랜잭션 안에서
수행되는 읽기 및 쓰기는 논리적으로 한 순간에 수행되는 것으로 이해할 수 있
다.
http://ko.wikipedia.org/wiki/소프트웨어_트랜잭셔널_메모리
http://en.wikipedia.org/wiki/Software_transactional_memory
ACI(원자성, 일관성, 고립성) 보장 - D(지속성) 제외