- 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상
- Multi processing 환경에서 다수의 프로세스가 특정 자원의 할당을 무한정 기다리고 있는 상태
|
교착상태 (Deadlock) |
기아(Starvation) |
정의 |
다수의 프로세스가 아무일도 하지 못하고 특정 사건 무한대기 |
특정 프로세스가 자원을 할당 받기위해 무한정 대기 상태 |
발생 원인 |
상호배제, 점유와 대기, 비선점, 환형 대기 |
자원의 편중된 분배정책 |
해결방안 |
예방, 회피, 발견, 회복 기법 |
Aging 기법 |
( ※ Aging 기법 : 대기 시간 등에 따라 우선순위를 높여줌으로써 기아현상을 해결하는 방법)
- 교착상태는 다음 4가지 조건이 모두 성립시에 발생한다.
- 상호배제 (Mutual Exclusion) - 한 시점에 한 프로세스만이 자원을 사용 할 수 있다. 즉 한 프로세스에 의해 점유된 자원을 다른 프로세스들이 접근할 수 없다.
- 점유와 대기 (Hold-and-wait) - 프로세스가 어떤 자원을 할당 받아 점유하고 있으면서 다른 자원을 요구.
- 비선점 (No Preemption) - 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없으며, 점유하고 있는 프로세스 자신만이 해제 가능
- 환형 대기 (Circular wait) - 프로세스들 간에 닫힌 연결(closed chain)이 존재한다. 즉 자원 할당 그래프에서 환형이 만들어지는 것.
- 교착상태 예방
- 교착상태 회피
- 교착상태 발견
- 교착상태 회복
- 내부 시스템 자원을 순서화
- 사용자 작업에 대한 주기억장치 선점
- 작업이나 작업단계의 자원필요량 산정
- 교체 가능 공간 사전 할당 - 요구된 기억장치를 사전에 할당
'운영체제' 카테고리의 다른 글
커널(Kernel), 마이크로 커널&모놀리식 커널 (0) | 2018.08.28 |
---|---|
캐시 메모리(Cache Memory) (0) | 2018.08.28 |
세마포어와 뮤텍스 (Semaphores&Mutex) (0) | 2018.08.26 |
병행성과 상호배제&상호배제 알고리즘 (0) | 2018.08.26 |
Thread (0) | 2018.08.24 |