https://youtu.be/ESXCSNGFVto?si=2ueHZGkctbTEsUnK
Deadlock(교착 상태) : 두 개 이상의 프로세스 혹은 스레드가 서로가 가진 리소스를 기다리는 상태
데드락을 만드는 네 가지 조건
1. Mutual exclusion : 리소스를 공유해서 사용할 수 없다.
2. Hold and wait : 프로세스가 이미 하나 이상의 리소스를 취득한(hold) 상태에서 다른 프로세스가 사용하고 있는 리소스를 추가로 기다린다.(wait)
3. No preemption : 리소스 반환은 오직 그 리소스를 취득한 프로세스만 할 수 있다.
4. Circular wait : 프로세스들이 순환 형태로 서로의 리소스를 기다린다.
OS의 데드락 해결 방법
1. 데드락 방지 : 네 가지 조건 중 하나가 충족되지 않게 시스템을 디자인
- 1) 리소스를 공유 가능하게 함 (현실적으로 불가능)
- 2) 사용할 리소스들을 모두 획득한 뒤에 시작 / 리소스를 전혀 가지지 않은 상태에서만 리소스 요청
- 3) 추가적인 리소스를 기다려야 한다면 이미 획득한 리소스를 다른 프로세스가 선점 가능하도록 함
- 4) 모든 리소스에 순서 체계를 부여해서 오름차순으로 리소스를 요청
2. 데드락 회피 : 실행 환경에서 추가적인 정보를 활용해서 데드락이 발생할 것 같은 상황을 회피
* Banker algorithm : 리소스 요청을 허락해줬을 때 데드락이 발생할 가능성이 있으면 리소스를 할당해도 안전할 때까지 계속 요청을 거절하는 알고리즘
3. 데드락 감지와 복구 : 데드락을 허용하고 데드락이 발생하면 복구하는 전략
- 1) 프로세스를 (강제로) 종료한다.
- 2) 리소스의 일시적인 선점을 허용한다.
4. 데드락 무시
'공부 기록 > 영상 후기' 카테고리의 다른 글
TwoSum 문제를 풀면서 배우는 내가 짠 코드의 성능을 개선하는 과정!! (feat. 코딩 테스트) (0) | 2023.11.06 |
---|---|
1장 데이터베이스와 NoSQL - 1. 데이터베이스 기본 (0) | 2023.09.13 |
OS 프로세스의 상태가 어떻게 변하는지 아시나요?? 자바 스레드 상태도 알려 드립니다! 상태를 왜 알아야 할까요? ... (0) | 2023.09.08 |
관계형 데이터 모델링 - 7.2. 역정규화 소개 (0) | 2023.09.08 |
관계형 데이터 모델링 - 7.1. 물리적 데이터 모델링 (0) | 2023.09.08 |