01. 교착 상태 예방
- 교착 상태 발생 필요 조건 중 하나를 충족하지 못하게 하는 것
- 상호 배제, 점유와 대기, 비선점, 원형 대기 중 하나의 조건이라도 충족하지 못할 경우 예방 할 수 있음
- 각각의 방법
- 상호 배제 → 모든 자원을 공유 가능하게 만드는 것
- 단점: 현실에서 사용하기에 무리
- 점유 대기 → 특정 프로세스에 자원을 모두 할당하거나, 아예 할당하지 않는 방식으로 배분
- 단점: 자원의 활용률이 낮아짐, 많은 자원을 사용하는 프로세스가 불리
- 비선점 → 자원을 이용 중인 프로세스로부터 해당 자원을 빼앗을 수 없음
- 단점: 모든 자원이 선점 가능한 것이 아님, 한 프로세스의 작업이 끝날 때까지 다른 프로세스가 기다려야 하는 자원이 존재 (범용성이 떨어짐)
- 원형 대기 → 모든 자원에 번호를 붙이고, 오름차순으로 자원을 할당
- 단점: 모든 컴퓨터 시스템 내의 모든 자원에 번호를 붙이기 어려움, 각 자원에 어떤 번호를 붙이느냐에 따라 특정 자원의 활용률이 떨어질 수 있음
- 상호 배제 → 모든 자원을 공유 가능하게 만드는 것
02. 교착 상태 회피
- 교착 상태 회피: 교착 상태가 발생하지 않을 정도로만 자원을 할당하는 방식
- 교착 상태를 한정된 자원의 무분별한 할당으로 인해 발생하는 문제로 간주
- 프로세스들에 배분할 수 있는 자원의 양을 고려하여 교착 상태가 발생하지 않을 정도의 양만큼만 자원을 배분하는 방법
- 안전 상태(safe state): 교착상태가 발생하지 않고 모든 프로세스가 정상적으로 자원을 할당받고 종료될 수 있는 상태
- 불안전 상태(unsafe state): 교착 상태가 발생할 수도 있는 상황
- 안전 순서열(safe sequence): 교착 상태 없이 안전하게 프로세스들에 자원을 할당할 수 있는 순서를 의미
03. 교착 상태 검출 후 회복
- 교착 상태 검출 후 회복: 교착 상태 발생을 인정하고 사후에 조치하는 방식
- 회복 종류
- 선점을 통한 회복: 교착 상태가 해결될 때까지 한 프로세스씩 자원을 몰아주는 방식
- 프로세스 강제 종료를 통한 회복: 교착상태에 놓인 프로세스들을 강제종료함
- 모든 프로세스를 강제 종료하는 경우: 작업 내역을 잃을 수도 있음
- 교착 상태가 없어질 때까지 하나씩 종료하는 경우: 교착상태가 없어졌는지 여부를 확인하는 과정에서 오버헤드 야기
- 교착 상태 무시: 타조 알고리즘
'CS 상식 - 운영체제' 카테고리의 다른 글
[CS 상식 - 운영체제] 연속 메모리 할당 (1) | 2025.02.20 |
---|---|
[CS 상식 - 운영체제] 페이징 (0) | 2025.02.20 |
[CS 상식 - 운영체제] 교착 상태 (0) | 2025.02.19 |
[CS 상식 - 운영체제] 동기화 기법 (2) | 2025.02.19 |
[CS 상식 - 운영체제] 동기화 (1) | 2025.02.19 |