티스토리 뷰
Concurrent Objects : 여러 쓰레드가 하나의 Object에 동시에 접근
Queue에서 하나의 enqueuer thread와 하나의 dequeuer thread만 있을 때라고 가정
Bounded Queue, Non Blocking
1. 가장 쉬운 방법
ㄴ 모든 method 에서 lock을 잡음
2. wait-free (wait-free 개념은 후에 나옴)
ㄴ enqueue : non blocking 이므로, 꽉 차 있을 때 에러를 발생한다. tail을 1 증가시키고 element 추가
ㄴ dequeue : non blocking 이므로, 비어있을 때 에러를 발생한다. element 값을 저장 한 후 head를 1 증가
ㄴ lock을 잡을 필요도 없고, 일정 step 내에 끝남
Concurrent Objects에서 중요한 요소
safety : implementation correct
liveness : system, thread not crush
Sequential Vs Concurrent
Sequential's method call is an event
Concurrent's method call is an interval (methods take overlapping time)
Sequential object needs state
Concurrent object never be between method call (because method callas overlaps)
Linearizable
Object is correct if this "sequential" behavior is correct
Invocation Notation 과 Response Notation
Concurrent Object 의 method는 interval 이기 때문에, 시작지점(Invocation)과 끝 지점(Response)이 있다.
Invocation Notation
A q:enq(x)
A - thread, q - object, enq - method, x - arguments
Response Notation
A q:void
A - thread, q - object, void - result
History : Sequence of invocation and responses
Match : Invocation & Response match if ( thread name same & object name same )
Projection : Subhistory for thread or object
Complete Subhistory : pending 된 method를 제거 (Final pending Invocation 은 상관 없음)
'개발 > 병렬프로그래밍' 카테고리의 다른 글
[병렬프로그래밍] Universality of Consensus (0) | 2019.12.17 |
---|---|
[병렬프로그래밍] Consensus (0) | 2019.12.17 |
[병렬프로그래밍] Shared Memory (0) | 2019.12.17 |
[병렬프로그래밍] Mutual Exclusion (0) | 2019.12.17 |
병렬프로그래밍 정리 시작 (0) | 2019.12.17 |
- Total
- Today
- Yesterday
- vr핏
- 에러 위치 찾기
- chrome-extension
- SuffixArray
- vrpit
- ad skip
- 클래스 맴버 변수 출력하기
- 봄날에 스케치
- print shared_ptr class member variable
- cockroach db
- 카카오
- 코어 남기기
- mysql
- 우리는 vr핏이라고 부릅니다
- red underline
- shared_from_this
- Reciprocal n-body Collision Avoidance
- Visual Studio
- Golang
- 영상 픽셀화 하기
- 면접
- C++
- Quest2
- boost
- 잘못된 빨간줄
- RVO
- set value
- it's called a vrpit
- Obstacle Avoidance
- hole-punching
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |