본문 바로가기
백수/컴퓨터구조

15. 데드락이 무엇이고, 해결방법에 대해 설명해 보세요

728x90
반응형

15. 데드락이 무엇이고, 해결방법에 대해 설명해 보세요

데드락(Deadlock)

프로세스가 자원을 얻지 못해 다음 처리를 하지 못하는 상태를 데드락(교착 상태)라 부릅니다.

이는 시스템 적으로 한정된 자원을 여러 곳에서 사용하려고 할 때 발생됩니다.

발생 4가지 조건

  • 4가지가 동시에 성립될 때 발생됩니다.
  • 하나라도 성립이 되지 않는 경우 해결 가능 합니다.
  1. 상호 배제
    • 자원은 한 번에 한 프로세스만
  2. 점유 대기
    • 프로세스가 할당된 자원을 가진 상태에서 다른 자원을 기다림
  3. 비선점
    • 다른 프로세스에 할당된 자원은 사용이 끝날 때까지 강제적으로 강탈 불가
  4. 순환 대기
    • 프로세스의 자원 점유 및 점유된 자원의 요구 관계가 원형을 이루면서 대기하는 조건
    • 각 프로세스는 순환적으로 다음 프로세스가 요구하는 자원을 가지고 있음

데드락 해결

1. 예방

  • 교착 상태 발생 조건 중 하나를 제거
  • 단점 : 자원 낭비가 심하다
    • 상호 배제 부정 : 여러 개의 프로세스가 공유 자원을 사용 가능하도록 한다.
    • 점유 대기 부정 : 프로세스가 실행되기 전 필요한 모든 자원을 할당한다.
    • 비선점 부정 : 모든 자원에 대한 선점을 허용
    • 순환 대기 부정 : 자원에 고유한 번호를 할당하고 번호 순서대로 자원을 요구하도록 한다.

2. 회피

  • 교착 상태 발생 시 피해 가는 방법
    • 은행원 알고리즘 :안정 상태면 자원 할당하고 아닌 경우 다른 프로세스들이 자원을 해지하기까지 대기합니다.
    • 프로세스가 자원을 요구할 때 시스템은 자원을 할당한 후에도 안정 상태로 남아있게 되는지 사전에 검사해서 교착 상태를 회피합니다.

3. 탐지

  • 시스템에 데드락이 발생했는지에 대한 여부를 탐색하고 회복 기법 알고리즘에 활용하는 것을 의미합니다.
  • 교착상태가 탐지되었다면 회복기법을 통해 교착상태를 복구합니다.
  • 단점 : 자원 요청 시 탐지 알고리즘을 실행시켜 그에 대한 오버헤드가 발생됩니다.

4. 회복

  • 교착 상태를 일으킨 프로세스를 종료하거나 할당된 자원을 해제시켜 회복시키는 방법입니다.
    • 프로세스 종료
      • 교착 상태의 프로세스를 모두 중지
      • 교착 상태가 제거될 때까지 하나씩 프로세스 중지
    • 자원 선점 방법
      • 교착 상태의 프로세스가 점유하고 있는 자원을 선점해 다른 프로세스에게 할당
      • 우선순위가 낮은 프로세스, 수행 횟수 적은 프로세스 위주로 자원 선점
728x90
반응형

'백수 > 컴퓨터구조' 카테고리의 다른 글

프로세스, 스레드  (0) 2023.07.20
일반PC, 서버 구분  (0) 2023.07.06
컴퓨터 구조 기초 1  (0) 2023.06.26
HTTP  (0) 2023.06.12
컴퓨터 기초 13  (0) 2023.01.18