안전 상태 (Safe State)
Jan 23, 2026 · Updated Jan 27, 2026
핵심 개념
섹션 제목: “핵심 개념”안전 상태란 시스템이 모든 스레드에 자원을 (최대 요구까지) 할당할 수 있는 순서가 존재하여 교착 상태를 피할 수 있는 상태입니다. 교착 상태 회피(Avoidance) 전략은 시스템을 항상 안전 상태로 유지합니다.
동작 원리
섹션 제목: “동작 원리”각 스레드가 필요한 자원의 **최대량(Maximum)**을 사전에 선언합니다.
안전 순서열 (Safe Sequence): <T1, T2, …, Tn>이 존재하여 각 Ti가 요청할 수 있는 자원 ≤ (현재 가용 자원 + 앞선 Tj들이 보유한 자원)을 만족하면 안전 상태입니다. 안전 순서열이 하나라도 존재하면 안전 상태입니다.
상태 간 관계
섹션 제목: “상태 간 관계”┌─────────────────────────────┐│ safe ││ ┌───────────────────────┐ ││ │ unsafe │ ││ │ ┌─────────────────┐ │ ││ │ │ deadlock │ │ ││ │ └─────────────────┘ │ ││ └───────────────────────┘ │└─────────────────────────────┘- 교착 상태 ⊂ 불안전 상태 ⊂ 전체 상태
- 안전 상태 → 교착 없음 (보장)
- 불안전 상태 → 교착 가능 (반드시는 아님)
총 자원 12개, 스레드 3개:
- T0(최대 10, 현재 5), T1(최대 4, 현재 2), T2(최대 9, 현재 2)
- 가용 자원 3개 → <T1, T0, T2> 순서로 모두 완료 가능 → 안전 상태
- 만약 T2에 1개 더 할당하면 가용 2개 → 어떤 순서로도 불가 → 불안전 상태
관련 개념
섹션 제목: “관련 개념”- [[교착 상태 (Deadlock)]]
- [[교착 상태 필요조건 (Necessary Conditions)]]
- [[은행원 알고리즘 (Banker’s Algorithm)]]