Deadlocks
교착 상태
- 프로세스나 스레드가 결코 일어날 수 없는 특정 이벤트를 기타리는 것
- 대부분의 교착 상태는 전용 자원을 차지하려는 경쟁에서 발생
- 순환 대기는 교착 상태에 있는 시스템의 특징
- 교착 상태 성립 조건
- 상호 배제 조건 : 자원은 한 번에 한 프로세스에서만 배타적으로 점유
- 대기 조건 : 자원을 최소 1개 갖고있으면서 다른 자원을 기다리는 상태
- 비선점 조건 : 시스템이 프로세스의 제어를 빼앗을 수 없음
- 순환 대기 조건
- 두 프로세스 이상이 순환 고리 상태
- 각 프로세스는 고리 안에 있는 다음 프로세스가 점유하고 있는 자원을 대기
교착 상태 해결책
-
교착 상태 방지
- 대기 조건 거부
- 자원을 요청할 땐 어느 자원도 소유하고 있지 않아야함
- 단점 : 자원의 낭비
- 비선점 조건 거부
- 하나 이상의 자원을 소유하고 있고 다른 프로세스가 소유한 다른 자원을 요청한다면
- 소유하고 있는 모든 자원을 반납하게 함
- 단점 : 프로세스가 재 시작 되어야하는 추가적인 부하
- 순환 대기 조건 거부
- 자원에 대한 선형 순서 사용 (프로세스가 자원을 돌아가면서 사용)
- 단점 : 자원의 요구에 대해 동적이거나 유연하지 못함
- 대기 조건 거부
-
교착 상태 회피
-
교착 상태 탐지
- 순환 대기 존재 여부에 초점
- 실행 시 심각한 부담을 줌
- 자원 할당 그래프 소거
- 실행을 완료할 수 있는 그래프가 있는지 확인
- 자원 요청을 허용할 수 있다면 그래프 소거
- 그래프가 모든 ㅡ로세스에 대해 소거될 수 있으면 교착 상태 없음
-
교착 상태 복구
- 일시정지/재시작 메커니즘
- 체크 포인트/롤백
'컴퓨터과학 > 운영체제' 카테고리의 다른 글
[운영체제] 가상 메모리 (Virtual memory) (0) | 2021.01.22 |
---|---|
[운영체제] 메인 메모리 (Main memory) (0) | 2021.01.21 |
[운영체제] 동기화 (Synchronization) (0) | 2021.01.19 |
[운영체제] 스케줄링 (Scheduling) (0) | 2021.01.18 |
댓글