page6
프로세스와 자원 간의 관계를 나타내는 방향 그래프로, 요청 간선과 할당 간선으로 구성됩니다 . 사이
클이 없으면 교착상태가 없고, 사이클이 있으면 교착상태 가능성이 있습니다 .
네 가지 필요조건 중 하나를 무효화하여 교착상태를 원천 차단합니다 :
시스템이 안전 상태를 유지하도록 동적으로 자원 할당을 제어합니다 . 은행가 알고리즘이 대표적인
회피 기법입니다 .
각 프로세스의 최대 자원 요구량을 미리 알고 있다고 가정하고, 자원 할당 요청 시 안전성을 검사합니다
. Available, Max, Allocation, Need 행렬을 사용하여 안전 순서의 존재 여부를 확인합니다 .
교착상태 발생을 허용하되 주기적으로 탐지하여 복구합니다 :
대부분의 현대 운영체제(Windows, Linux, macOS)는 성능상의 이유로 교착상태를 무시하는 접근법을
사용합니다 . 교착상태 발생 빈도가 매우 낮고 예방/회피의 오버헤드가 크기 때문입니다 .
주 메모리 관리는 한정된 메모리 자원을 효율적으로 관리하고 프로세스 간 메모리 보호를 제공하는 운
영체제의 핵심 기능입니다
. 메모리 계층은 CPU 레지스터, 캐시, 주 메모리, 보조 저장소 순으로 구성
되며 속도와 용량이 반비례 관계를 가집니다
.
3.2 자원 할당 그래프
[3]
[3]
3.3 교착상태 처리 방법
예방 (Prevention)
[3]
점유와 대기 무효화: 모든 자원을 한 번에 요청하거나 자원을 보유하지 않은 상태에서만 요청
[3]
비선점 무효화: 추가 자원 요청 시 현재 자원을 모두 해제
[3]
순환 대기 무효화: 자원에 순서를 부여하여 오름차순으로만 요청
[3]
회피 (Avoidance)
[3]
[3]
은행가 알고리즘
[3]
[3]
탐지 및 복구 (Detection & Recovery)
[3]
탐지: 대기 그래프의 사이클 검사 또는 다중 인스턴스용 탐지 알고리즘 사용
[3]
복구: 프로세스 종료 또는 자원 선점을 통해 교착상태 해결
[3]
3.4 실제 시스템에서의 적용
[3]
[3]
4. 주 메모리 관리
4.1 개요와 메모리 계층 구조
[4]
[4]