운영 체제 : 교착 상태

주요 여기에 참조 "컴퓨터 운영 체제 (제 4 판)"와 칭화 (전자 과학 기술 출판사의 서안 대학) 자신의 검토 검사 운영 시스템의 기본 개념을 마무리 (용인, 유 첸에) 시스템 개방 클래스를 운영.

교착 상태

그룹 프로세스가 집단 과정의 이벤트 만 기다리고 있습니다 각 프로세스는 다른 프로세스가 트리거 할 수있는 경우, 프로세스는 교착 상태의 그룹이라고합니다.

교착 상태가 발생

경쟁, 경쟁이 자원을 소비 할 수있는 자원을 점유 부적절한 질서의 과정을 촉진 할 수 없습니다 교착 상태는 다음과 같은 세 가지 범주에 기인 할 수있다하도록합니다.

교착 상태에 필요한 조건을 생성

네 가지 전제 조건이없는 이러한 네 가지 조건이 교착하지 않습니다 충족하면서, 교착 상태가 있습니다.

  1. 상호 배타적 인 조건 : 즉 자원 배타적 할당하는 단계;
  2. 요청 및 보관 조건 : 프로세스가 우리가 새로운 자원 요청이 동시에 자원을 보유하고 있으며 리소스가 다른 프로세스에 의해 점유 된 경우, 요청 프로세스가 보유 자원을 차단하고 유지하기 위해 시간;
  3. 조건을 포착하지 : 자원을 얻는 과정을 선점 할 수없는 당신이 프로세스가 완료 사실을 우리 만 출시 완료 될 때까지;
  4. 순환 대기 조건 : 프로세스가 있음 - 순환 체인 자원 루프 대기를 형성한다.

치료 교착 상태

교착 상태 방지

교착 필요 조건의 형성에 의한 4, 즉 긴 손상된 것과 같이, 그 교착 않는다. 뮤텍스는 리소스 액세스 보안 상태를 확인하는 것이 중요하기 때문에 또한, 일반적으로 손상 요청과 유지 조건이 조건이 압류 할 수없는 교착 상태 또는 1가 대기 할 수있는 순환 상태의 예방을 위해 다른 세 가지 조건이다.

피 교착 상태

또한 사전에 교착 상태 예방 전략을 피하지만, 자원의 동적 할당에 배치 할 때 그것은 일을하고, 불안의 상태로 시스템을 방지하여 교착 상태를 방지 할 수 있습니다. 이 때문에이 방법은 한계상의 통상적 인 방법에 미리 도포하는 것이 방지된다 약하고, 시스템 성능이 더 좋다.

보안 상태

이 방법에서, 가능성 소위 안전 조건은 교착 상태가 발생한다. 자원을 할당하기 위해 방법마다 시스템을 사용하는 경우,이 결과는 분배 시스템은 안전하지 않은 상태로 진입 예정이라면 첫째, 보안 자원 할당을 계산하기 때문에 대기하는 과정이된다. 소위 보안 상태, 즉, 시스템 구현의 과정을 촉진하기 위해 안전한 순서를 찾을 수 있습니다. 보안 순서 수단 : 시스템의 모든 현재 프로세스의 경우, 각 프로세스가 만족 할 수있는 자원의 최대 수요가 각 프로세스가 성공적으로 최종 완료 할 수 있도록 프로세스를 촉진하기 위해 몇 가지 순서, 안전 순서를 촉진하는 순서가있다.

은행의 알고리즘

이 알고리즘은 다 익스트라가 제안한 교착 상태 회피 알고리즘의 가장 대표적인입니다. 은행 알고리즘은 각각의 새로운 프로세스가 시스템에 입력 할 때 선언해야 실행하는 데 필요한 자원의 최대 수 있으며, 해당 시스템의 총량은 또한 시스템 유지 보수 4 개의 데이터 구조를 요구하고있다 초과 할 수 없습니다 필요합니다

  1. 가능한의 m 차원 벡터, \ (가능한 [j]가 K는 \ =) 이용 가능한 시스템 리소스의 현재 수 나타내는 J를 번째 클래스 가능한 총 리소스의 수가 명확 벡터 시스템의 초기 값 인 K이고;
  2. \ (n \ 시간 해요 \) 행렬 맥스 \ (최대 [I] [J] = K \) 나타내고, 최대 수의 I j 번째 공정 K의 리소스 요구 클래스;
  3. \ (n \ 시간 \ M) 매트릭스 할당 \ (할당 [I] [J] = K \) 나는 현재 공유 자원 클래스 j는 K 인 프로세스의 개수를 나타내고;
  4. A는 (\ n \ 시간 \ M) 행렬이 필요 \ (필요가 [I] [J] = K \) 내가 K. 작업을 완료하는데 필요한하게 자원이 j 번째의 프로세스 클래스를 나타내는

이 행렬은 명백 세 갖는다 \ (최대 [I] [J] = 필요 [I]가 [J] + 할당 [I] [J]를 \) .

이러한 데이터 구조는 안전을 확인할 수 있습니다로. 프로세스의 입장 \ (P_i \) 요청 벡터는 위해 자원을 설정 \ (요청 - 난 \) \ (요청 - I [J] = K가 \) K위한 공정 J 클래스 자원에 대한 수요는, 다음 것을 나타낸다 시작 검사 :

  1. 만약 \ (요청 - I [J] \ 르 요구 [I] [J] \) 은 그것이 필요한 자원의 수보다 많은 요청 자원의 수를 나타 내기 때문에, 다음 단계는, 그렇지 않으면 오류로 간주;

  2. 만약 \ (요청 - I [J] \ 르 가능한 [J] \) , 다음 단계는 자원이 프로세스의 동작을 보장하기에 충분하기 때문에, 그렇지 만드는 프로세스를 기다릴;

  3. 시스템 (즉, 아날로그 자원 할당)의 데이터 구조의 값을 수정 \
    [가능한 [J] = 가능한 [J] -Request_i [J] \\ 할당을 [I]가 [J] = 할당 [I]는 [J] + 요청 - I [J ] \\ 필요 [I] [J ] = 필요 [I] [J] -Request_i [J] \]

  4. 시스템이 수행하는 보안 알고리즘은 자원 할당 형식 또는 아날로그 별도로 배포 집합, 처리가 대기하는 경우, 자원 할당 한 후 시스템이 아직 안전한 상태인지 여부를 판정한다.

보안 알고리즘은 두 개의 보조 데이터 구조가 필요합니다 :

  1. 벡터 작업은 제공 할 수있는 시스템의 다양한 자원의 수, 초기 상태 나타냅니다 : \ (= 가능한 일을 \) ;
  2. 마침 벡터 시스템은 충분한 리소스가 처리 완료 초기 상태를 만들기 위해 할당되어 있는지 여부를 나타내는 모든 I에 대해 \ (마침 [I] = 거짓으로 \) .

두 벡터의 크기는 벡터로 사용 가능한 일치한다. 각각의 실행은이 프로세스 세트의 프로세스는 다음 조건을 만족 찾을 : \ (마침 [I] = false로 \) \ (필요 [I]가 [J] \ 르 작업 [J]를 \) 공정 후 발견 실행 : \ (작업 [J] = 작업 [J] + 할당 [I] [J] \)\ (마침 [I]은 \ 사실에) , 상태까지 처리가 만족되지 않고, 검사 마침 여부 모든 프로세스 이 시스템의 보안을 유지 믿는다면 그것은 그렇지 않으면 안전하지 않은, 사실이다.

감지, 릴리스 교착 상태

시스템이 예방 조치의 교착 상태에 대한 시간이없는 경우, 시스템은 교착 상태 및 해제 알고리즘을 감지 장착해야합니다.

자원 할당 맵

모니터 교착 상태에, 시스템은 자원의 정보 요청 및 할당을 저장해야하며 검출 알고리즘을 제공합니다. 자원 할당 맵은 우리가 교착 상태 감지 메커니즘을 이해하는 데 도움이 될 수 있습니다. 도 자원 할당이 있고, 가장자리에 할당 된 자원 유닛, 처리 또는 자원 노드의 공정도 담당자에게 자원을 나타내는 자원의 단위를 나타내는 반면, 릴리스.

자원 할당 그래프

간단한 자원 할당도이며, 원 프로세스 노드를 나타내고, 원의 수는 자원 노드 자원 블록도의 프레임을 나타내는 나타낸다. 우리는 자원 할당의 단순화 된 다이어그램에 대한 기초를 제공 할 것이다, 프로세스의 진행이 프로세스가 완료와 함께, 즉, 응용 프로그램 프로세스 자원이 결국 공개 될 것이라는 점을 알고있다. 첨부합니다 (고립 된 경우에도) 모든 어느 쪽도 차단하지 않고 별도의 프로세스 노드를 찾아, 동시에 모든 할당 요청 및 측면 가장자리를 제거합니다. 모든 과정이 원활하게 수행 될 수 있다면, 그래프의 모든 가장자리지도 완전히 감소 될 수있다 최종 자원 할당인지, 제거되어야한다 시스템이 교착 상태에있는 경우, 반대로, 리소스 할당 맵은 그 시스템이 완전히없는 단순화.

교착 정리

전자가 입증 되었기 때문에 다음 간략한 도면을 단순화하기 위해 다른 순서가 결정된다 주어질 수있는, 최종적으로 얻어지는 영향을 미치지 않는 교착 정리 여부 : 충분 조건은 교착 상태에있는 경우에만 시스템 자원 경우 도 할당 완전히 감소 될 수 없다.

교착 상태를 올립니다

교착 상태의 감지되면, 교착 상태는 일반적으로 두 가지 방법으로 헤어 졌 수 있습니다 :

  1. 과정을 교착 다른 프로세스에서 리소스, 즉 약탈 자원을 잡아라;
  2. 프로세스를 종료하려면, 시스템은 교착 상태 루프를 중단하는 여러 프로세스를 종료합니다.

추천

출처www.cnblogs.com/Li-F/p/11944370.html