Skip to main content

교착 상태 피해자는 무엇입니까?

Deadlock 희생자는 서버에 연결된 클라이언트 역할을하는 컴퓨터 사용자이며 서버 호스트가 교착 상태를 해결하기 위해 종료하기로 선택한 서버에 연결된 클라이언트입니다.이러한 유형의 교착 상태는 종종 두 개의 다른 프로세스가 동일한 리소스를 활용하려고 시도 할 때 발생합니다.이 문제를 해결하기 위해 많은 서버 데이터베이스 시스템은 교착 상태가 발생할 때를 감지 한 다음 두 프로세스 중 하나의 연결을 종료하도록 선택할 수 있습니다.사용자는 일반적으로 시스템에 가장 쉽게 다시 연결할 수있는 사람으로 선택되지만 교착 상태 피해자는 프로그램에 의해 임의로 선택 될 수 있습니다.

"교착 상태 피해자"라는 용어는 일반적으로 시스템에서 표시하는 오류 또는 예외 메시지에 사용됩니다.자신의 연결이 종료 될 때 사용자에게.이 오류는 일반적으로 교착 상태라고하는 상황에서 발생합니다.일반적으로 교착 상태는 서버에 연결된 두 사용자가 시스템에 잠금을 생성하는 방식으로 동일한 리소스에 액세스하려고 시도 할 때 발생합니다.예를 들어, 사용자 A가 리소스 1을 사용하고 자원 2를 사용해야하는 경우 사용자 B는 리소스 2를 사용하고 있으며 리소스 1을 사용해야하는 경우에도 자원 1을 사용해야합니다. 어느 쪽도 자신의 프로세스를 완료 할 수 없으므로 교착 상태가 발생합니다.이 예제, 두 사용자 중 하나는 시스템에 의해 교착 상태 피해자와 서버와의 연결이 종료되기 때문에 선택됩니다.이 작업이 발생하면 다른 사용자는 자신의 프로세스를 완료하여 교착 상태를 끝내고 교착 상태 피해자는 서버에 다시 연결할 수 있습니다.대부분의 서버 데이터베이스 프로그램은 교착 상태 감지로 설계되었으며 일반적으로 일정 시간 후에 교착 상태를 감지합니다.교착 상태가 반드시 큰 문제 일 필요는 없지만 사용자, 특히 교착 상태 피해자로 선택된 사용자에게 귀찮을 수 있으며 서버 데이터베이스 프로그래밍에서 하나 이상의 실수를 나타냅니다.다를 수 있습니다.일부 프로그램은 순전히 무작위로 피해자를 선택합니다.이것은 상당히 효과적 일 수 있지만, 어떤 선택은 해결책과 교착 상태의 끝으로 이어지기 때문에 이것이 항상 이상적인 방법은 아닙니다.서버는 일반적으로 두 명의 사용자를 평가하여 가장 쉽게 다시 연결할 수 있거나 단절로 인해 데이터가 가장 적은 사람을 선택하도록 프로그래밍됩니다.