반응형

교착상태(deadlock) 3

[운영체제(OS)] 8-3) 교착상태(Deadlock) 탐지, 회복

앞서서 배운 교착상태 방지, 회피 알고리즘을 사용하지 않을 경우에는 교착상태가 발생할 수 있으므로 탐지, 회복 알고리즘이 필요합니다. 1. 교착상태(Deadlock) 탐지 : 탐지 알고리즘은 교착상태가 얼마나 자주 일어나는지, 교착상태가 발생하면 몇 개의 프로세스가 연루되는지를 고려해야 합니다. 교착상태가 자주 일어난다면 탐지 알고리즘도 자주 돌려야하는데, 시간이 오래 지나면 못 쓰는 리소스가 묶이고 연루되는 스레드의 수가 늘어날 수 있기 때문입니다. 교착상태가 일어나는 시점 = 어떤 스레드의 자원 요청이 만족되지 못하는 시점 입니다. 극단적으로 스레드의 요청이 만족되지 못할 때마다 탐지 알고리즘을 돌리는 방법도 있습니다. 1) 각 Resource type이 한 개씩만 있는 경우 : 대기 그래프(wait..

[운영체제(OS)] 8-2) 교착상태(Deadlock) 예방, 회피

1. 교착상태(Deadlock) 처리 방법 1) 문제를 무시하고 교착상태가 절대 발생하지 않는 척(?)하기 : 교착상태를 해결하는 데 비용이 더 많이 들기 때문에 무시합니다. 교착상태가 지속될 경우 시스템 성능을 저하시킬 수 있기 때문에 수작업으로 다시 시작해야할 필요가 있습니다. 2) 교착상태를 예방, 회피하는 protocol을 사용 - 예방 : 교착상태 발생 조건 4가지 중 적어도 하나 이상 성립하지 않도록 합니다. - 회피 : 프로세스가 사용할 리소스에 대한 부가적인 정보를 얻은 후에 프로세스를 기다려야할지 결정합니다. 3) 교착상태를 허용한 후 회복 : 교착상태가 발생했는지 조사하는 알고리즘, 복구 알고리즘을 사용합니다. 2. 교착상태(Deadlock) 방지 방법 (조건 중 하나만 끊어도 방지 가..

[운영체제(OS)] 8-1) 교착상태(Deadlock)란?

1. 교착상태(Deadlock) : 두 개 이상의 프로세스, 스레드가 서로 자원을 얻지 못해 다음 처리를 못하는 상태, 무한히 자원을 기다리는 상태를 말합니다. 멀티 프로그래밍 환경에서 한정된 자원을 얻기 위해 서로 경쟁하는 상황에서, 한 프로세스가 자원을 요청했을 때 그 자원을 동시에 사용할 수 없는 경우 프로세스는 대기 상태에 들어갑니다. 이 대기상태로 들어간 프로세스들이 실행 상태로 변경될 수 없을 때 교착 상태가 발생합니다. System Model : System은 유한한 수의 리소스로 구성이 되며, 정상적인 작동 모드에서 프로세스는 다음과 같은 순서로만 리소스를 사용할 수 있습니다. 1) 요청(Request) : 프로레스가 리소스를 요청하고, 얻을 때까지 대기합니다. 2) 사용(Use) : 프로..

반응형