[Process & Thread] 교착상태(Deadlock)

2023. 5. 11. 16:21·CS/OS
728x90

1. 교착 상태

두 개 이상의 프로세스들이 서로가 가진 자원을 기다리며 중단된 상태, 둘 이상의 스레드가 다른 스레드가 점유하고 있는 자원을 서로 기다릴때 무한대기에 빠지는 상황입니다.스레드일수도 있고 프로세스일 수도 있습니다.

 

2. 교착상태의 원인 (4가지 모두 성립)

  1. 상호 배제 : 한 프로세스가 자원을 독점하고 있으며 다른 프로세스들은 접근 불가능
  2. 점유 대기 : 특정 프로세스가 점유한 자원을 다른 프로세스가 요청하는 상태
  3. 비선점 : 다른 프로세스가 점유중인 프로세스의 자원을 강제로 선점 불가
  4. 순환 대기: 대기중인 프로세스들이 사이클을 이룸, 서로가 서로의 자원을 요구하는 상황

 

3. 해결방법 4가지

1) 무시 : 아무조치 안함

2) 예방 : 4가지중 하나가 성립되지 않도록 미리 예방. 비용이 커서 비추천. 자원을 할당할 때 애초에 조건이 성립되지 않도록 설계

3) 회피 : 자원할당 할때 자원할당 그래프, 은행원 알고리즘을 이용하여 데드락을 회피. 교착 상태 가능성이 없을 때만 자원 할당되며, 프로세스당 요청할 자원들의 최대치를 통해 자원 할당 기능 여부를 파악하는 은행원 알고리즘을 씀

4) 회복 : 데드락이 발생 후 탐지하여 회복. 교착 상태가 발생하면 사이클이 있는지 살펴보고 이에 관련된 프로세스를 한개씩 지움

 

은행원 알고리즘 : 총 자원의 양과 현재 할당한 자원의 양을 기준으로 안정 또는 불안정 상태로 나누고 안정 상태로 가도록 자원을 할달하는 알고리즘

 

 

728x90
저작자표시 비영리 변경금지 (새창열림)
'CS/OS' 카테고리의 다른 글
  • [Memory] segmentation
  • [Memory] paging (메모리 관리 기법, 메모리 단편화)
  • [Process & Thread] Multi Process, Multi Thread 동기화 (Mutex, Semaphore)
  • [Process & Thread] 프로세스간 통신(IPC, 공유메모리, 메시지전달)
Karla Ko
Karla Ko
𝘾𝙤𝙣𝙩𝙞𝙣𝙪𝙤𝙪𝙨𝙡𝙮 𝙄𝙢𝙥𝙧𝙤𝙫𝙞𝙣𝙜, 𝘾𝙤𝙣𝙨𝙩𝙖𝙣𝙩𝙡𝙮 𝘿𝙚𝙫𝙚𝙡𝙤𝙥𝙞𝙣𝙜 𝙔𝙚𝙨!
    250x250
  • Karla Ko
    karlaLog
    Karla Ko
  • 전체
    오늘
    어제
    • Total (467)
      • Spring (19)
      • JPA (4)
      • Cloud & Architecture (15)
        • Kubernetes (5)
        • Docker (3)
        • MSA (2)
        • GCP (1)
        • AWS (4)
      • Devops (1)
      • Message Queue (4)
        • Kafka (2)
        • RabbitMQ (2)
      • Git (4)
      • DB (4)
      • Java (9)
      • Python (4)
      • CS (11)
        • OS (8)
        • Network (2)
        • Algorithm (1)
      • Coding Test (392)
        • programmers (156)
        • Graph (43)
        • DP (37)
        • Search (31)
        • Tree (13)
        • Data Structure (26)
        • Combination (12)
        • Implement (18)
        • Geedy (23)
        • Sort (7)
        • Math (21)
        • geometry (2)
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    월간코드챌린지
    덱
    다익스트라
    트리
    LIS
    백준
    이분탐색
    BFS
    구간합
    최대공약수
    조합
    플로이드워셜
    큐
    재귀
    그리디
    자료구조
    그래프
    DP
    프로그래머스
    구현
    힙
    DFS
    파이썬
    스택
    최단거리
    정렬
    알고리즘
    동적계획법
    최소신장트리
    Algorithm
  • hELLO· Designed By정상우.v4.10.3
Karla Ko
[Process & Thread] 교착상태(Deadlock)
상단으로

티스토리툴바