관리 메뉴

FU11M00N

[OS]교착상태 본문

CS

[OS]교착상태

호IT 2019. 10. 25. 02:54

1.교착 상태

두 개 이상의 작업이 서로 상대방의 작업이 끝나기 만을 기다리고 있기 때문에 결과적으로 아무것도 완료되지 못하는 상태를 가리킨다. 예를 들어 하나의 사다리가 있고, 두 명의 사람이 각각 사다리의 위쪽과 아래쪽에 있다고 가정한다

 

. 이때 아래에 있는 사람은 위로 올라 가려고 하고, 위에 있는 사람은 아래로 내려오려고 한다면, 두 사람은 서로 상대방이 사다리에서 비켜줄 때까지 하염없이 기다리고 있을 것이고 결과적으로 아무도 사다리를 내려오거나 올라가지 못하게 되듯이, 전산학에서 교착 상태란 다중 프로그래밍 환경에서 흔히 발생할 수 있는 문제이다.

 

이 문제를 해결하는 일반적인 방법은 아직 없는 상태이다.

 

교착상태가 발생할려면 4가지의 조건이 필요하다.

  • 상호배제 조건
  • 점유와 대기조건
  • 비선점
  • 환형 대기

상호배제조건 : - 한번에 한개의 프로세스만이 공유 자원을 사용할 수 있어야 합니다. 

 

유와 대기조건: - 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 사용되고 있는 자원을

                        추가로 점유하기 이해 대기하는 프로세스가 있어야 합니다. 

 

비선점: - 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없어야합니다. 

 

환형 대기: - 공유자원과 공유자원을 사용하기 위해 대기하는 프로세스들이 원형으로 구성되어 있어 자신에게

               할당된 자 원을 점유하면서 앞이나 뒤에 있는 프로세스의 자원을 요구해야 합니다. 

 

 

Comments