[OS] 7. Deadlock - Deadlock Prevention

2022. 4. 3. 12:03· CS/OS
목차
  1. Deadlock 해결 방법
  2. Deadlock Prevention
  3. 1. 모든 자원을 공유 허용
  4. 2. 모든 자원에 대해 선점 허용
  5. 3. 필요 자원 한번에 모두 할당 (Total allocation)
  6. 4. Circular wait 조건 제거

Deadlock 발생 필요 조건은 다음 4가지를 전부 만족시켜야한다.

  • Exclusive use of resources
  • Non preemptible resources
  • Hold and wait (Partial allocation)
  • Circular wait

이 중에서 하나라도 만족시키지 않으면 Deadlock이 발생하지 않는다. 

Deadlock을 해결하는 다음 3가지 방법이 있다. 

 

Deadlock 해결 방법

  • Deadlock prevention methods (교착상태 예방)
  • Deadlock avoidance method (교착상태 회피)
  • Deadlock detection and deadlock recovery methods (교착상태 탐지 및 복구)

Deadlock Prevention

  • 4 개의 deadlock 발생 필요 조건 중 하나를 제거
    • Exclusive use of resources
    • Non preemptible resources
    • Hold and wait (Partial allocation
    • Circular wait
  • Deadlock 이 절대 발생하지 않음
  • 심각한 자원 낭비 발생
    • Low device utilization
    • Reduced system throughput
  • 비현실적

 

1. 모든 자원을 공유 허용

  • Exclusive use of resources 조건 제거
  • 현실적으로 불가능

2. 모든 자원에 대해 선점 허용

  • Non preemptible resources 조건 제거 (모든 자원에 선점을 허용)
  • 현실적으로 불가능 (많은 문제들이 발생함)
  • 유사한 방법
    • 프로세스가 할당 받을 수 없는 자원을 요청한 경우 , 기존에 가지고 있던 자원을 모두 반납하고 작업 취소
    • Ex) P1이 P2이 쓰고 있는 Rj를 요청할 때 P1의 모든 자원을 반납하고 작업을 취소함
    • 이후 처음 (또는 check point) 부터 다시 시작
    • 선점 가능한 비슷한 효과를 낼 수 있다.
    • 심각한 자원 낭비 발생 -> 비현실적

3. 필요 자원 한번에 모두 할당 (Total allocation)

  • Hold and wait 조건 제거
  • 자원 낭비 발생 (필요하지 않은 순간에도 가지고 있음)
  • (자원을 요청 할때 필요한 자원을 모두 받고 내일이 다 끝날 때 까지 반납하지 않음)
  • 무한 대기 현상 발생 가능 (다른 프로세스가 해당 자원을 받으려고 계속 기다림)

4. Circular wait 조건 제거

  • Totally allocation 을 일반화 한 방법
  • 자원들에게 순서를 부여
  • 프로세스는 순서의 자원 순서가 증가 방향으로만 자원 요청 가능
    • Ex) R1 R2 R3 R4 ... P1 P2 이있다고 가정
    • P1은 R1234 필요 P2 는 R13번이 필요하다고 가정 
    • R1:1 R2:1 R3:3 R4:2 개 있다고 가정
    • P1이 증가순서대로 R1234 요청을 순차적으로 할것임
    • P2이 자원을 요청하면 P1요청
    • P1할당 못받으니 P3도 요청할 수 없음
    • Curcle이 만들어 질 수 없다 -> dead lock이 발생하지 않음
    • 그런데 이는 자원의 낭비가 발생함. (R3는 사용할 수 있는데 R1을 사용하지 못해서 R3도 사용할 수 없음)
  • 자원 낭비 발생

 


본 포스트는 KOREATECH의 HPC LAB. Duksu Kim 교수님 OS강의를 기반으로 정리한 내용입니다.

상업적 의도가 아닌 공부한 것을 정리해 놓은 목적으로 게시한 포스트입니다. 

아래의 출처에서 자세한 내용을 수강하실 수 있습니다.

https://www.youtube.com/playlist?list=PLBrGAFAIyf5rby7QylRc6JxU5lzQ9c4tN


'CS > OS' 카테고리의 다른 글

[OS] 7. Deadlock - Detection and Recovery  (0) 2022.04.07
[OS] 7. Deadlock - Deadlock Avoidance  (0) 2022.04.05
[OS] 7. 교착 상태 (Deadlock) 개념, 자원의 분류, 모델, 발생조건  (0) 2022.04.01
[OS] 6. 프로세스 동기화 - Process Synchronization and Mutual Exclusion (Monitor)  (0) 2022.03.31
[OS] 6. 프로세스 동기화 - Mutual Exclusion OS supported SW Solution (EventCount/ seqiencer)  (0) 2022.03.29
  1. Deadlock 해결 방법
  2. Deadlock Prevention
  3. 1. 모든 자원을 공유 허용
  4. 2. 모든 자원에 대해 선점 허용
  5. 3. 필요 자원 한번에 모두 할당 (Total allocation)
  6. 4. Circular wait 조건 제거
'CS/OS' 카테고리의 다른 글
  • [OS] 7. Deadlock - Detection and Recovery
  • [OS] 7. Deadlock - Deadlock Avoidance
  • [OS] 7. 교착 상태 (Deadlock) 개념, 자원의 분류, 모델, 발생조건
  • [OS] 6. 프로세스 동기화 - Process Synchronization and Mutual Exclusion (Monitor)
White Han
White Han
Software Developer
White Han
sudo apt-get happiness
White Han
전체
오늘
어제
  • 분류 전체보기 (183)
    • Language (35)
      • Java (17)
      • Java-Weekly-study (0)
      • Python (18)
    • BackEnd (11)
      • Server (2)
      • Spring (3)
      • Spring Security (0)
      • JDBC (1)
      • NodeJS (2)
      • LINUX (3)
    • DataBase (10)
      • MySQL (5)
      • MongoDB (4)
      • Oracle (1)
    • Infra (4)
      • Docker (4)
    • CS (38)
      • OS (38)
    • Problem Solving (79)
      • Algorithm (8)
      • CT-Java (30)
      • CT-Python (41)
    • IDE (1)
      • eclipse (1)
      • vscode (0)
    • Etc. (3)
      • Git (1)
      • TDD, Refactor, CleanCode (1)
      • Conference (1)
    • 기록 (2)
      • 후기 (1)
      • 프로젝트 회고록 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 글쓰기

공지사항

  • 방문해 주셔서 감사합니다.

인기 글

태그

  • AOC 24B1X
  • java
  • 자바스크립스 식별자 종류
  • 자바스크립트 개념
  • 운영체제
  • 자바스크립트
  • 자바 inheritance
  • 자바스크립트 식별자
  • 알파스캔 AOC 24B1X
  • Java super
  • 프로세서
  • SSAFY
  • 자바 super
  • 프로세스
  • 운영체제 구조
  • 사무용 모니터
  • OS
  • 24인치 모니터 추천
  • 싸피8기
  • 싸피
  • 싸피 합격
  • javascript identifier
  • 알파스캔 모니터
  • 운영체제 역할
  • 사무용 모니터 추천
  • Java Inheritance
  • Java this
  • javascript
  • 싸피 후기
  • 자바 this

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
White Han
[OS] 7. Deadlock - Deadlock Prevention
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.