process synchronization and mutual exclusion - 2
📌mutual exclusion SW solutions
📖Dekker's algorithm
- 프로세스가 2개일때 ME의 조건을 만족하는 최초의 알고리즘
📖Peterson's algorithm
- 마찬가지로 프로세스 2개의 ME를 보장하는 비교적 간단한 알고리즘
📖Dijkstra's algorithm
- dijkstra 알고리즘의 flag[]값에 따른 의미
- 값이 1일때 idle : 프로세스가 임계 지역 진입을 시도하고 있지 않음
- 값이 2일때 want-in : 프로세스의 임계 지역 진입 시도 1단계임
- 값이 3일때 in-CS : 프로세스의 임계 지역 진입 시도 2단계 및 임계 지역 내임
🚨SW solution 문제점
- 속도가 느림
- 구현이 복잡
- ME primitive 실행중 preemption 발생가능(machine instructor가 아니므로)
- 공유 데이터 수정중 인터럽트 억제로 해결가능 단, 이또한 overhead
- busy waiting : 대기하면서 루프문을 계속 도는 것(비효율적임)