- 교착 상태 해결 방법 : 예방, 회피, 검출 후 회복
- 교착 상태 예방
- 교착 상태 발생 조건(상호 배제, 점유와 대기, 비선점, 원형 대기) 중 하나 없애버리기
- 상호 배제를 없애면?
- 모든 자원을 공유 가능하게? - 현실적으로 불가능
- 점유와 대기를 없애면?
- 특정 프로세스에 자원을 모두 할당하거나, 아예 할당하지 않는 방식으로 배분 - 자원의 활용률을 낮출 수 있는 방식
- 비선점 조건을 없애면?
- 선점이 가능한 자원에 한해 효과적 - 모든 자원이 선점 가능한 것은 아니다
- 원형 대기 조건을 없애면?
- 자원에 번호를 붙이고 오름차순으로 할당하면 원형 대기는 발생하지 않음
- 자원에 번호를 붙이는 것은 어려운 작업
- 어떤 자원에 어떤 번호를 붙이느냐에 따라 활용률이 달라짐
- 자원에 번호를 붙이고 오름차순으로 할당하면 원형 대기는 발생하지 않음
- 상호 배제를 없애면?
- 교착 상태가 발생하지 않음은 보장할 수 있으나 부작용이 따름
- 교착 상태 발생 조건(상호 배제, 점유와 대기, 비선점, 원형 대기) 중 하나 없애버리기
- 교착 상태 회피
- 교착 상태를 무분별한 자원 할당으로 인해 발생했다고 간주
- 교착 상태가 발생하지 않을 만큼 조심조심 할당하기
- 배분할 수 있는 자원의 양을 고려하여 교착 상태가 발생하지 않을 만큼만 자원 배분
- 안전 순서열
- 교착 상태 없이 안전하게 프로세스들에 자원을 할당할 수 있는 순서
- 안전 상태
- 교착 상태 없이 모든 프로세스가 자원을 할당 받고 종료될 수 있는 상태
- 안전 순서열이 있는 상태
- 불안전 상태
- 교착 상태가 발생할 수도 있는 상태
- 안전 순서열이 없는 상태
- 안전 상태에서 안전 상태로 움직이는 경우에만 자원을 할당하는 방식
- 항시 안전 상태를 유지하도록 자원을 할당하는 방식
- 교착 상태 검출 수 회복
- 교착 상태의 살생을 인정하고 사후에 조치하는 방식
- 프로세스가 자원을 요구하면 일단 할당, 교착 상태가 검출되면 회복
- 선점을 통한 회복
- 교착 상태가 해결될 때까지 한 프로세스씩 자원을 몰아주는 방식
- 프로세스 강제 종료를 통한 회복
- 교착 상태에 놓인 프로세스 모두 강제 종료 - 작업 내역을 잃을 위험
- 교착 상태가 해결될 때까지 한 프로세스씩 강제 종료 - 오버헤드
- 교착 상태 무시
- 타조 알고리즘
'CS지식 쌓기' 카테고리의 다른 글
페이징을 통한 가상 메모리 관리 (0) | 2024.01.02 |
---|---|
연속 메모리 할당 (0) | 2024.01.02 |
교착 상태(데드락) (0) | 2024.01.02 |
동기화 기법 (0) | 2024.01.02 |
동기화 (0) | 2024.01.02 |