[컴퓨터과학개론] 운영체제 -6
교착 상태
- 다중 프로그래밍 실행 환경에서는 여러 프로세스들이 제한된 컴퓨터 자원을 사용하려고 서로 경쟁할 수 있음
-
한 프로세스가 컴퓨터 자원을 요청했지만 바로 할당받을 수 없다면, 그 프로세스는 자원을 얻기 위한 대기 상태로 들어감
-
두 개의 다른 프로세스가 서로에게 할당된 컴퓨터 자원을 얻기 위해 대기하면서 자신에게 할당된 컴퓨터 자원을 포기하지 않는다면, 서로의 컴퓨터 자원을 무한대로 기다리는 상태가 됨
- 2개 이상의 프로세스가 대기 중인 프로세스들 중의 하나에 의해서만 발생할 수 있는 사건을 무작정 기다리는 상태를 교착상태라고 함
교착상태의 필수 조건
- 상호 배제 조건
- 한 프로세스가 컴퓨터 자원을 사용중이면 다른 프로세스는 그 컴퓨터 자원을 사용하지 못하고 해제될 때까지 반드시 기다려야 함
- 한 프로세스가 컴퓨터 자원을 사용중이면 다른 프로세스는 그 컴퓨터 자원을 사용하지 못하고 해제될 때까지 반드시 기다려야 함
- 대기 조건
- 프로세스가 적어도 하나 이상의 컴퓨터 자원을 할당 받아 점유하고 있으면서 다른 프로세스가 할당 받은 자원을 요청하고 그것이 해제되기를 기다림
- 프로세스가 적어도 하나 이상의 컴퓨터 자원을 할당 받아 점유하고 있으면서 다른 프로세스가 할당 받은 자원을 요청하고 그것이 해제되기를 기다림
- 비선점 조건
- 할당된 컴퓨터 자원이 그 프로세스의 작업 종료 후 자발적으로만 해제될 수 있고 타의에 의해서는 해제되지 않음
- 할당된 컴퓨터 자원이 그 프로세스의 작업 종료 후 자발적으로만 해제될 수 있고 타의에 의해서는 해제되지 않음
- 환형 대기 조건
- 프로세스의 원형 사슬이 존재해서 이를 구성하는 각 프로세스가 사슬 내의 다음에 있는 프로세스가 요구하는 하나 이상의 자원을 가지고 있는 조건
- 프로세스의 원형 사슬이 존재해서 이를 구성하는 각 프로세스가 사슬 내의 다음에 있는 프로세스가 요구하는 하나 이상의 자원을 가지고 있는 조건
교착상태의 처리
- 교착상태 방지
- 교착상태는 교착상태 필수 조건을 만족할 경우에 발생
- 네 가지 교착상태 발생 조건 중에서 어느 한 가지 조건이라도 제거하면 교착상태가 발생하지 않도록 할 수 있음
- 이와 같이 요구 상태를 제한함으로써 교착상태를 방지하게 되면 컴퓨터 자원의 이용률과 시스템 성능이 저하되는 부작용이 생기게 됨
- 교착상태는 교착상태 필수 조건을 만족할 경우에 발생
- 교착상태 탐지
- 교착상태에 빠진 프로세스의 존재를 검사하여 교착상태를 찾아내는 기법
- 교착상태 탐지 알고리즘을 수행하는 것은 시스템 성능에 상당한 부담이 되기 때문에, 교착상태 탐지 알고리즘은 적절하게 수행되어야 함
- 교착상태에 빠진 프로세스의 존재를 검사하여 교착상태를 찾아내는 기법
- 교착상태 복구
- 교착상태를 제거하여 다른 프로세스가 컴퓨터 자원을 사용할 수 있도록 하는 방법
- 교착상태 복구 방법 중 하나는 시스템 관리자에게 교착상태가 발생하였음을 알려주어 직접 수작업으로 처리하도록 하는 것
- 원형 대기를 없애기 위해 몇 개의 프로세스들을 중지시키거나 교착상태에 있는 하나 이상의 프로세스들로부터 몇 개의 자원을 반납하게 하는 것임
- 교착상태를 제거하여 다른 프로세스가 컴퓨터 자원을 사용할 수 있도록 하는 방법