Synchronization
컴퓨터 간 데이터를 교환하는 경우에, 데이터의 전송측과 수신측의 타이밍을 맞추는 것을 동기(synchronization)라 하고, 동기가 될 수 있도록 하는 것을「동기를 취하다」라고 한다. 통신 회로처럼 하나 또는 두 개의 신호선(signal line)에 데이터를 전송하는 직렬 데이터 전송에서는 데이터는 일렬로 늘어선 2값 신호로 표시되도록 한다. 따라서 신호측에서는 비트의 단락을 시간적으로 식별하지 않으면 보내온 데이터를 이용할 수가 없다. 그 때문에 송신측에서는 비트의 단락을 식별하기 위한 동기 정보를 송신하고 있다. 이 동기 정보를 얻는 방법에는 시작-정지 방식(start-stop system)과 동기식(synchronous system)의 두 가지가 있다. 시 작-정지 방식은 하나하나의 캐릭터(문자)의 선두에 시작 비트(start bit)를, 최후에는 정지 비트(stop bit)를 붙여 한 문자마다 동기를 취하는 방식이다. 동기식은 일정 클록 신호(clock signal)에 맞추어 데이터의 송수신을 취하는 것으로, 통신을 시작할 때, 데이터의 최초에 통신 속도와 통신 방법을 식별하기 위한 동기 문자를 붙여서 송신하는 방법이다. 동기화는 멀티스레드 또는 멀티프로세스 프로그래밍에서 반드시 필요한 기술이다.
Categories
Problem
Documentation
- 효과적인 멀티스레드 프로그래밍을 위하여
-
For_effective_multi-threaded_programming.pdf - https://www.gitbook.com/book/bluekms21/femp/details
- https://bluekms21.gitbooks.io/femp/index.html
Concurrency control
동시성 제어와 관련된 내용을 정리한다.
- Double-Checked Lock
- SpinLock
- Busy waiting
- Lock convoy
- Busy spin
- Deadlock
- Seqlock
- Ticket lock
- Moniter
- Lock
- Read/Write Lock
- Non-blocking algorithm (Lock-Free algorithm)
- Non blocking algorithm
- 자원획득초기화 (Resource Acquisition Is Initialize; RAII)
- Synchronized Snapshot
- Blocking Queue
- Iterator vs Enumeration, Fail-fast vs Fail-safe
- 약한 일관성 (Weakly Consistent)
- 작업 가로채기 (Work stealing)
- Immutable pattern
- Multiversion concurrency control (MVCC)
See also
Favorite site
- Wikipedia (en) Synchronization에 대한 설명
- Naver 지식백과 동기화에 대한 설명
- [http://msdn.microsoft.com/en-us/library/windows/desktop/ms686364(v=vs.85.aspx Win32 동기화객체의 종류에 대한 설명]
- Windows와 Linux의 동기화관련 함수 비교
- 동기화 객체 : Critical Section, Mutex, Semaphore, Event 1
- Critical Section, MUTEX, Semaphore 에 대하여 2
- Algorithm in the box.: 락킹 매커니즘의 종류 3
- GPG Study: 올리기iterator의 효과적인 동기화 방법
- GPG Study: STL 사용시 동기화에 대해서
- 스레드 동기화(C# 프로그래밍 가이드)
- Fail-fast Iterator에 대한 멀티쓰레드 무결성 해결방법
- Enumeration & Iterator
- deque(덱), 작업 가로채기
- Java reference: Package java.util.concurrent
- [추천] 멀티 쓰레드 프로그래밍이 어려운 까닭
- 시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
- [추천서적] C++ Concurrency in Action: Practical Multithreading 4
- C++ Concurrency In Action
- C++ Concurrency in Action STUDY (한국인 Github STUDY PAGE)
References
-
WindowsAPI-CriticalSection_Mutex_Semaphore_Event.pdf ↩
-
CriticalSection_MUTEX_Semaphore-Windows_example.pdf ↩
-
Algorithm_in_the_box_-_Type_of_locking_mechanism.pdf ↩
-
CplusplusConcurrencyInAction.pdf ↩
-
For_effective_multi-threaded_programming.pdf ↩
-
Concurrency-in-action-chapter-5.tar.gz ↩
-
Concurrency-in-action-chapter-7.tar.gz ↩