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