[CS] 13. 교착 상태

eunoia73·2025년 4월 15일
1

TIL

목록 보기
30/32

1. 교착 상태란

교착상태 - 일어니지 않을 사건을 기다리며 무한히 대기하는 현상
상대방이 가진 자원을 기다리기만 하다가 실행 한 번 못하는 상황이 벌어짐

교착 상태 발생 조건
1) 상호배제 - 한 프로세스가 사용하는 자원을 다른 프로세스가 사용할 수 없을 때
2) 점유와 대기 - 자원을 할당받은 상태에서 다른 자원을 할당받기를 기다리는 상태
3) 비선점 - 그 자원을 이용하는 프로세스의 작업이 끝나야만 이용할 수 있음
4) 원형 대기 - 프로세스들이 원의 형태로 자원을 대기하는 것

2. 교착 상태 해결 방법

1) 교착 상태 예방 방법 - 교착 상태의 발생 조건(상호배제, 점유와 대기, 비선점, 원형 대기) 중 하나를 충족하지 못하게 하는 방법

2) 교착 상태 회피 방법 - 교착 상태가 발생하지 않을 정도의 양만큼만 자원을 배분하는 방법

  • 안전 상태 - 모든 프로세스가 정상적으로 자원을 할당받고 종료될 수 있는 상태
  • 불안전 상태 - 교착 상태가 발생할 수도 있는 상황

3) 교착 상태 검출 후 회복 - 교착 상태 발생을 인정하고 사후에 조치하는 방식

  • 선점을 통한 회복 - 교착 상태가 해결될 때까지 한 프로세스씩 자원을 몰아주는 방식
  • 프로세스 강제 종료를 통한 회복 - 교착 상태에 놓인 프로세스를 모두 강제 종료하거나 교착 상태가 없어질 때까지 한 프로세스씩 강제 종료

[혼자 공부하는 컴퓨터구조 + 운영체제] 책을 읽고 정리한 기록입니다.

0개의 댓글