소프트웨어 기반 해결책
- 데커 알고리즘
- 아이젠버그, 맥과이어 알고리즘
- 피터슨 알고리즘
- 두 프로세스가 번갈아 실행하는 것을 규제함
- 임계 영역과 여분 영역을 번갈아 실행
- 자기 차례임을 표시하고 실행
- 완벽하게 동작한다는 보장이 없다
- 상호배제, 데드락, 기아현상을 예방할 수 있다
하드웨어 기반 해결책
- 임계 영역 문제 해결에 도움을 줌으로써 동기화를 직접적으로 할 수 있음
- 3가지 동작
- 메모리 장벽(memory barriers or fences)
- 하드웨어 지침(hardware instructions)
- 원자 변수(atomic variables)
- 원자성(Atomicity)
- 원자적 동작: 인터럽트를 걸 수 없는 하나의 동작 단위
- 원자성을 지키는 변수를 설정해 지킬 수 있다.
'Computer Science > 운영체제' 카테고리의 다른 글
뮤텍스와 세마포어(Mutex Locks & Semaphore) (0) | 2023.01.18 |
---|---|
프로세스 동기화 (Synchronization Tools) (0) | 2022.12.21 |
CPU 스케줄링 (CPU Scheduling) (0) | 2022.12.13 |
멀티쓰레딩 (Pthread) (0) | 2022.12.06 |
쓰레드의 이해 (Thread & Concurrency) (0) | 2022.12.06 |