투케이2K

27. (운영체제/OperatingSystem) 교착상태 (Deadlock) 개념 설명 본문

SE & OS & HW

27. (운영체제/OperatingSystem) 교착상태 (Deadlock) 개념 설명

투케이2K 2022. 11. 25. 08:28

[학습 구분]

과목 : 운영체제

 

[설 명]

1. 교착상태 란 두 개 이상의 작업이 서로 상대방의 작업이 끝나기 만을 기다리고 있기 때문에 결과적으로 아무것도 완료되지 못하는 상태를 의미합니다

2. 교착 상태란 다중 프로그래밍 환경에서 흔히 발생할 수 있는 문제이며 [상호배제, 점유대기, 비선점, 순환대기] 조건으로 교착상태가 발생합니다

- 상호배제 (Mutual exclusion) : 프로세스들이 필요로 하는 자원에 대해 배타적인 통제권을 요구

- 점유대기 (Hold and wait) : 프로세스가 할당된 자원을 가진 상태에서 다른 자원을 기다림

- 비선점 (No preemption) : 프로세스가 어떤 자원의 사용을 끝낼 때까지 그 자원을 뺏을 수 없음

- 순환대기 (Circular wait) : 각 프로세스는 순환적으로 다음 프로세스가 요구하는 자원을 가지고 있음

- [상호배제, 점유대기, 비선점, 순환대기] 조건 중에서 한 가지라도 만족하지 않으면 교착 상태는 발생하지 않습니다

3. 교착 상태의 예방 방법 :

- 상호배제 조건의 제거 : 교착 상태는 두 개 이상의 프로세스가 공유가능한 자원을 사용할 때 발생하는 것이므로 공유 불가능한, 즉 상호 배제 조건을 제거하면 교착 상태를 해결할 수 있습니다

- 점유와 대기 조건의 제거 : 한 프로세스에 수행되기 전에 모든 자원을 할당시키고 나서 점유하지 않을 때에는 다른 프로세스가 자원을 요구하도록 하는 방법 (자원 과다 사용으로 인한 효율성, 프로세스가 요구하는 자원을 파악하는 데에 대한 비용, 자원에 대한 내용을 저장 및 복원하기 위한 비용, 기아 상태, 무한대기 등의 문제점이 있음)

- 비선점 조건의 제거 : 비선점 프로세스에 대해 선점 가능한 프로토콜을 만들어 줍니다

- 환형 대기 조건의 제거 : 자원 유형에 따라 순서를 매깁니다

 
반응형
Comments