deadlock과 starvation

2021. 2. 25. 18:09Computer(인강)/운영체제

728x90
반응형

안녕하세요 bannavi입니다^ㅅ^

오늘은 교착상태(Deadlock)와 기아상태(Starvation)에 대해

배워보도록 할거에요 

 

바로 시작해볼게요!

 

 

교착상태(Deadlock)

무한 대기 상태: 두개 이상의 작업이 서로 상대방의 작업이 끝나기만을 기다리고 있기 때문에, 다음 단계로 진행하지 못하는 상태

(프로그램이 동작을 못하고 있는 상태)

배치처리 시스템에서는 일어나지 않는 문제로

프로세스, 스레드 둘다 이와 같은 상태가 일어날 수 있음.

 

 

 

참고: 교착상태 발생 조건

- 다음 네가지 조건이 모두 성립될 때, 교착상태 발생 가능성이 있음

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

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

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

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

 

 

 

 

참고: 교착상태 해결 방법

1. 교착상태 예방

2. 교착상태 회피

3. 교착상태 발견과 교착상태 회복

 

핵심은 조건중에 일부가 성립이 안되도록 '뺀다'에 있습니다. 위의 ppt글은 참고만 해주세요

 

 

 

 

 

기아상태(starvation)

 

- 특정 프로세스의 우선순위가 낮아서 원하는 자원을 계속 할당 받지 못하는 상태

- 교착상태와 기아상태

1. 교착상태는 여러 프로세스가 동일 자원 점유를 요청할 때 발생

2. 기아상태는 여러 프로세스가 부족한 자원을 점유하기 위해 경쟁할 때, 특정 프로세스는 영원히 자원 할당이 안되는 경우를 주로 의미함.

 

 

 

 

기아상태 해결 방안

* 우선순위 변경

1. 프로세스 우선순위를 수시로 변경해서, 각 프로세스가 높은 우선순위를 가질 기회 주기

2. 오래 기다린 프로세스의 우선순위를 높여주기

3. 우선순위가 아닌, 요청 순서대로 처리하는 FIFO 기반 요청큐 사용

728x90
반응형

'Computer(인강) > 운영체제' 카테고리의 다른 글

페이징 시스템  (0) 2021.02.25
가상 메모리 개념  (0) 2021.02.25
세마포어  (0) 2021.02.25
스레드 동기화 문제  (0) 2021.02.25
스레드 장단점  (0) 2021.02.23