식사하는 철학자 문제 -> 영원히 생각하면서 아무도 식사하지 못하는 상태
-생각을 하다가 왼쪽 포크가 사용가능하면 집는다
- 생각을 하다가 오른쪽 포크가 사용가능하며 집는다
- 왼쪽과 오른쪽 포크를 모두 집으면 정해진 시간동안 식사를 한다
- 오른쪽 포크를 내려놓는다
- 왼쪽 포크를 내려놓는다
- 이를 반복한다
철학자 = 프로세스 또는 스레드
포크 = 자원
이런 상태가 교착상태
1. 교착상태의 상황이란?
2. 교착상태가 일어나는 근본적인 원인은?
자원 할당 그래프
1. 프로세스는 원 / 자원은 사각형
2. 사용할 수 있는 자원의 갯수는 사각형 내의 점의 갯수
3. 프로세스가 자원을 할당받으면 자원에서 프로세스를 향해 화살표 표시
4. 프로세스가 어떤 자원을 기다리면, 프로세스에서 자원으로 화살표를 표시
-> 교착 상태의 자원할당 그래프는 루프를 형성한다
교착상태 발생 조건
- 상호 배제 ; 해당 자원을 한 번에 하나의 프로세스만 사용할 수 있기 때문
- 점유와 대기 ; 어떤 자원을 할당받은 상태에서 다른 자원을 기다릴 때
- 비선점 ; 다른 프로세스에 할당받은 자원을 뺏지 않기 때문
- 원형 대기 ; 원의 형태로 다른 자원을 기다릴 때
교착상태 해결 방법
- 예방 ; 교착상태 발생 조건에 부합하지 않게 자원을 분배
- 회피 ; 자원을 할당하지 않는 방식으로 교착상태를 회피
- 검출 & 회복 ; 교착상태가 검출 시 회복
교착상태 예방
- 상호 배제 없애기 ? -> 현실적으로 불가능
- 점유와 대기 없애기?-> 자원의 활용률이 낮아짐
- 비선점 없애기?-> 프린터 등 비선점 조건을 모두 없앴을 수는 없음
- 원형 대기 없애기?-> 모든 자원에 번호를 붙익, 오름차순으로 자원을 할당한다
번호에 따라, 특정 자원의 할당률이 떨어질 수 있음
교착상태 회피
- 안전상태 ; 교착상태가 발생하지 않고 / 모든 프로세스가 정상적으로 자원을 할당
- 불안전 상태 ; 교착상태가 발생할 수도 있는 상태
- 안전 순서열 ; 교착 상태 없이, 프로세스들에 자원을 할당할 수 있는 순서
교착상태 검출 후 회복
- 선점을 통한 회복 ; 강제로 자원을 뺏어서 하나의 프로세스씩 해결
- 프로세스 종료를 통한 회복 ; 모두 강제 종료 -> 가장 빠름 + 작업 내역 전부 잃어버림
하나씩 강제 종료 -> 오버헤드 야기
'IT 공부 > 운영체제(완)' 카테고리의 다른 글
운영체제 7. 파일 시스템 (0) | 2025.03.07 |
---|---|
운영체제 6 가상 메모리 (0) | 2025.03.06 |
운영체제 4 프로세스 동기화 (0) | 2025.02.27 |
운영체제 3 CPU 스케줄링 (0) | 2025.02.26 |
운영체제 2 프로세스 (0) | 2025.02.25 |