그림으로 쉽게 배우는 운영체제 - 섹션4 데드락

이지섭·2023년 6월 27일
0

섹션4 데드락

  • 데드락(교착상태)이란?
    • 여러 프로세스들이 서로 끝나기만을 기다리며 아무것도 진행되지 못하는 상태
    • 발생 이유?
      • 공유 자원
  • 교착상태의 필요조건
    • 한 가지라도 충족하지 않는다면, 교착상태는 발생하지 않는다.
      • 상호배제
        • 점유된 리소스가 다른 프로세스들과 공유되면 안된다.
      • 비선점
        • 점유된 리소스를 다른 프로세스가 뺏을 수 없어야 한다.
      • 점유와 대기
        • 리소스 A를 점유중인 상태에서 리소스 B를 원하는 상태여야 한다.
      • 원형 대기
        • 점유와 대기를 하는 프로세스들의 관계가 원형을 이룬다.
    • 이를 이용해서 교착상태를 해결해보려 하였으나, 제약이 많고 비효율적이라 다른 방식을 연구함. → 빠졌을 때 해결하는 방법
  • 교착상태 해결 방법
    • 교착상태 회피
      • 프로세스에게 자원 할당 시, 어느정도의 자원을 할당해야 교착상태가 발생하는지 파악 후, 그렇지 않은 수준의 자원을 할당
      • 할당된 자원의 수를 기준으로, 안정 상태와 불안정 상태로 나뉜다.
        • 운영체제는 최대한 안정상태를 유지하기 위해 자원할당을 한다.
        • 불안정 상태에 있더라도 무조건 교착상태에 빠지는 것이 아니라, 확룰이 높아진다.
      • 교착상태 회피 - 은행원 알고리즘 (상환능력이 있는 사람에게 돈을 빌려준다)
        • 운영체제는 자신이 가진 자원의 수를 알고있다 . (시스템의 총 자원)
        • 프로세스들은 자신이 필요한 최대 자원 개수를 운영체제에게 알려준다. (최대 요구 자원)
        • 교착상태 방지는 되지만, 비용이 비싸고 비효율적
    • 교착상태 해결
      • 가벼운 교착 상태 검출 - 타이머를 이용하는 방식
        • 프로세스가 일정 시간동안 동작하지 않는다면(타임아웃) 교착상태로 간주하고 해결
        • 일정 시간마다 체크포인트를 만들어 작업을 저장해 두었다가 롤백
      • 무거운 교착 상태 검출 - 자원 할당 그래프를 이용하는 방식
        • 프로세스가 어떤 자원을 사용하는지 지켜보고, 교착상태 발생 시 해결
        • 프로세스와 자원간의 관계를 그래프로 그려 순환구조가 있는지 확인
          • 교착상태를 일으킨 프로세스를 강제종료
          • 재실행시 체크포인트로 롤백
        • 운영체제가 지속적으로 그래프를 유지하고 확인해야하기 때문에 오버헤드가 크다
          • 하지만 가벼운 교착상태에서 억울하게 종료되는 프로세스가 발생하지 않는다.

출처 : 인프런, 그림으로 쉽게 배우는 운영체제

profile
Stop thinking. Just do it.

0개의 댓글

관련 채용 정보