2025-12-18

오늘 배운 것

13-1 교착 상태란

식사하는 철학자 문제

  • 동그란 원탁에 다섯 명의 철학자가 앉아 있음
  • 식사 순서
    1. 계속 생각을 하다가 왼쪽 포크가 사용 가능하면 집어듬
    2. 계속 생각을 하다가 오른쪽 포크가 사용 가능하면 집어듬
    3. 왼쪽과 오른쪽 포크를 모두 집어들면 정해진 시간동안 식사를 함
    4. 식사 시간이 끝나면 오른쪽 포크를 내려놓음
    5. 오른쪽 포크를 내려놓은 뒤 왼쪽 포크를 내려 놓음
    6. 다시 1번 부터 반복
  • 문제 : 모든 철학자가 동시에 포크를 집어 식사를 하면 어떤 철학자도 식사를 할 수 없고 영원히 생각만 하는 상황 발생
  • 교착 상태 : 일어나지 않을 사건을 기다리며 진행이 멈춰 버리는 현상

자원 할당 그래프

  1. 프로세스는 원으로 자원의 종류는 사각형으로 표현
  2. 사용할 수 있는 자원의 개수는 자원 사각형 내에 점으로 표현
  3. 프로세스가 어떤 자원을 할당 받아 사용 중이라면 자원에서 프로세스를 향해 화살표를 표시
  4. 프로세스가 어떤 자원을 기다리고 있다면 프로세스에서 자원으로 화살표를 표시

교착 상태 발생 조건

상호 배제

  • 한 프로세스가 사용하는 자원을 다른 프로세스가 사용할 수 없을 때 교착 생태 발생

점유와 대기

  • 자원을 할당받은 상태에서 다른 자원을 할당받기를 기다리는 상태

비선점

  • 비선점 자원은 그 자원을 이용하는 프로세스의 작업이 끝나야만 비로소 이용할 수 있기 때문에 어떤 프로세스도 다른 프로세스의 자원을 강제로 빼앗지 못했기 때문에 교착 상태 발생

원형 대기

  • 프로세스들이 원의 형태로 자원을 대기하는 것

13-2 교착 상태 해결 방법

교착 상태 예방

  • 상호 배제 없애기
    • 모든 자원을 공유가능하게 만든다 → 현실적으로 무리
  • 점유와 대기 없애기
    • 특정 프로세스에 자원을 모두 할당하거나, 아예 할당하지 않는 방식으로 배분
    • 단점
      • 자원 활용률 낮아짐
      • 많은 자원을 사용하는 프로세스가 불리함
  • 비선점 조건을 없애기
    • 선점하여 사용할 수 있는 일부 자원에 대해서는 효과적
    • 그렇지 않은 것은 사용할 수 없음
      • 예 : 프린터
  • 원형 대기 조건 없애기
    • 모든 자원에 번호를 붙이고, 오름차순으로 자원을 할당
    • 단점
      • 모든 컴퓨터 시스템 내에 존재하는 수많은 자원에 번호를 붙이는 일은 어려움
      • 각 자원에 어떤 번호를 붙이는지에 따라 특정 자원의 활용률이 떨어짐

교착 상태 회피

  • 한정된 자원의 무분별한 할당으로 인해 발생하는 문제를 해결
  • 안전 상태
    • 교착 상태가 발생하지 않고 모든 프로세스가 정상적으로 자원을 할당 받고 종료될 수 있는 상태
  • 불안정 상태
    • 교착 상태가 발생할 수도 있는 상황
  • 안전 순서열
    • 교착 상태 없이 안전하게 프로세스들에 자원을 할당할 수 있는 순서
  • 교착 상태 회피하기 위해서는 시스템 상태가 안전 상태에서 안전 상태로 움직이는 경우에만 자원을 할당

교착 상태 검출 후 회복

  • 교착 상태 발생을 인정하고 사후에 조치하는 방식

선점을 통한 회복

  • 교착 상태가 해결될 때까지 한 프로세스씩 자원을 몰아주는 방식

프로세스 강제 종료를 통한 회복

  • 교착 상태에 놓인 프로세스를 모두 강제 종료 하거나
  • 교착 상태가 없어질 때까지 한 프로세스씩 강제 종료

타조 알고리즘

  • 드물게 발생하는 잠재적 문제를 무시로 대처

results matching ""

    No results matching ""