Always Be Wise

데드락이란? 본문

기술 관련 정리

데드락이란?

bewisesh91 2022. 4. 3. 12:10
728x90

데드락이란?


둘 이상의 프로세스가 다른 프로세스가 점유하고 있는 자원을 서로 기다리며 아무것도 하지 못하는 상태를

의미합니다. 이는 멀티 프로그래밍 환경에서 한정된 자원을 사용하려고 하는 경쟁 상황에서 발생할 수 있습니다.

데드락 발생조건


  1. 상호 배제자원이 해제될 때까지 기다려야 한다.
  2. 한 번에 프로세스 하나만 해당 자원을 사용할 수 있다. 사용 중인 자원을 다른 프로세스가 사용하려면 요청한
  3. 점유 대기대기하는 프로세스가 존재해야 한다.
  4. 최소한 하나의 자원을 점유하고 있으면서 다른 프로세스에 할당되어 있는 자원을 추가로 점유하기 위해
  5. 비선점
  6. 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제로 빼앗을 수 없다.
  7. 순환 대기대기하는 등 순환 형태로 자원을 대기하고 있어야 한다.
  8. 프로세스의 집합(ex P0, P1, ... PN)에서 P0은 P1가 점유한 자원을 대기하고, P1은 P2가 점유한 자원을

데드락 해결 방법


  1. 예방위해 한 번에 여러 프로세스가 공유 자원을 사용할 수 있게 한다. 그러나 동기화 관련 문제가 발생할 수 있다.점유하기 위해 대기하는 것을 방지한다. 이미 다른 프로세스에게 할당된 자원이 선점권이 없을 때 높은 우선할당하고 순서대로 자원을 요구하도록 한다.
  2. 순위의 프로세스가 해당 자원을 선점할 수 있도록 한다. 자원을 순환 형태로 대기하지 않도록 고유 번호를
  3. 프로세스 실행에 필요한 모든 자원을 한꺼번에 요구하고 허용할 때까지 작업을 보류해서 나중에 다른 자원을
  4. 데드락의 발생 조건 4가지 중 하나라도 발생하지 않게 하는 것을 의미한다. 자원의 상호 배제 조건을 방지하기
  5. 회피안정 상태면 자원을 할당하고 아니면 다른 프로세스들이 자원을 해제할 때까지 대기하여 데드락을 회피할 수
  6. 있다. 은행원 알고리즘이 대표적이다.
  7. 프로세스가 자원을 요구할 때 시스템은 자원을 할당한 후에도 안정 상태로 남아있게 되는지 사전에 검사하여,
  8. 탐지 및 회복그래프 등을 이용하여 탐지할 수 있다. 회복 관련하여서는 데드락 상태에 빠진 프로세스를 모두 중지하거나자원을 선점해 다른 프로세스에게 할당하거나, 우선 순위가 낮은 프로세스나 수행 횟수가 적은 프로세스해주는 방법이 있다.N명이 앉을 수 있는 테이블에 N-1명만 앉힌다.누군가는 왼쪽 젓가락을 먼저 집지 않고 오른쪽 젓가락을 먼저 집도록 허용한다.
  9. 한 철학자가 젓가락 두 개를 모두 집을 수 있는 상황에서만 젓가락을 집도록 허용한다.
  10. ex) 식사하는 철학자 문제
  11. 위주로 프로세스 자원을 선점할 수 있도록 하여 교착 상태를 해결할 때까지 그 자원을 다른 프로세스에 할당
  12. 데드락이 해제 될 때까지 프로세스를 하나 씩 중지할 수 있다. 혹은 데드락 상태의 프로세스가 점유하고 있는
  13. 데드락이 발생하는 것을 탐지하고 회복하는 알고리즘을 이용할 수 있다. 예를 들어, 탐지의 경우 자원 할당
Comments