상호 배제
데커의 알고리즘 Dekker Algorithm
- 프로세스 2개의 상호배제를 보장하는 최초의 알고리즘
- flag, turn 변수 사용 조정
램퍼드 알고리즘 Lamport Algorithm
- n개의 프로세서의 상호배제를 보장하는 알고리즘
- 프로세스에 고유한 번호를 부여하고, 번호를 기준으로 우선순위를 세워 높은 순서대로 임계 영역에 들어가도록함
피터슨 알고리즘 Peterson Algorithm
- 프로세스가 2개일때 보장
- 데커와 유사하지만 상대에게 더 양보하기 때문에 구현하기 쉬움
세마포어 Semaphore
- 공유된 자원의 데이터, 임계 영역에 따라 여러 프로세스, 쓰레드가 접근하는 것을 방지
P(S) : while S<=0 DO skip;
S : = S-1;
V(s) : S: =S+1;