2sjin
2sjin
2sjin

블로그 메뉴

  • My GitHub
  • 전체 게시글
    • UNIX 이론 정리
    • Linux
      • Linux 관련 노하우
      • Linux 과제
      • OracleCloud & Ubuntu
      • Tomcat Server
      • MySQL Server
      • 구름 OS
      • 라즈베리파이4
    • 데이터베이스
      • DB 관련 노하우
      • DB 과제
      • DB 프로젝트
    • Unity
    • Computer Science
      • 통신 & 네트워크
      • 자료구조 & 알고리즘
      • 운영체제
      • 정보보호
      • 기타 분야
    • 소프트웨어
      • 소프트웨어공학
      • 프로그래밍 언어

공지사항

인기 글

태그

  • 팀 프로젝트
  • 개인 Term Project

최근 글

티스토리

전체 방문자
오늘
어제
hELLO · Designed By 정상우.
2sjin

2sjin

Computer Science/운영체제

교착상태(Deadlock) 발생 조건 및 예방법

2022. 10. 3. 16:44

1. 교착상태(Deadlock)란?

두 개 이상의 프로세스가 자신이 가진 자원은 계속 가지고 있으면서 서로 상대방이 가진 자원을 요구하게 되는 상태.

 

2. 교착상태 발생 조건

아래 4가지 조건이 모두 발생하면(AND 조건 만족) 데드락이 발생할 가능성이 있다.

 

① 상호 배제(Mutual exclusion) 조건

  • 프로세스들이 필요로 하는 자원에 대해 배타적인 통제권을 요구

② 대기(Waiting) 조건

  • 할당된 자원을 가진 상태에서 다른 자원을 기다리는 경우

③ 비선점(Non-preemption) 조건

  • 프로세스에게 할당된 자원은 사용이 끝날 때까지 프로세스로부터 제거할 수 없음

④ 환형 대기(Circular wait) 조건

  • 자원 할당 그래프 내에 환형 대기가 존재함

 

3. 교착상태 예방법

① 상호 배제(Mutual exclusion) 조건의 방지

  • 임계 구역(Critical Section) 내의 데이터를 보호하지 못하는 매우 큰 문제가 발생함

② 대기(Waiting) 조건의 방지

  • 모든 자원을 일시에 요구하는 방법
  • 자원의 심한 낭비를 초래(현실적으로 사용하기 어려움)

③ 비선점(Non-preemption) 조건의 방지

  • 더 이상 자원의 요구를 거절당할 경우 프로세스는 자신이 가진 자원을 모두 반납
  • 그 시점까지 수행했던 모든 작업이 수포로 돌아감(현실적으로 사용하기 어려움)
  • 예: 작업을 99/100 완료 후 중단하게 되면 다시 1/100부터 시작해야 함

④ 환형 대기(Circular wait) 조건의 방지

  • 자원 할당 그래프 내의 특정 자원 할당을 반납(가장 현실적인 방법)
 

'Computer Science > 운영체제' 카테고리의 다른 글

주소 바인딩(Address Binding) 방식  (0) 2022.10.04
가상기억장치(Virtual Memory) 관리 기법  (0) 2022.10.03
프로세스 실행 다이어그램  (0) 2022.10.03
운영체제의 기능과 역할, 실시간 운영체제  (0) 2022.10.03
[컴퓨터공학개론 과제] 가상기억장치(Virtual Memory)의 관리  (0) 2022.10.03
'Computer Science/운영체제' 카테고리의 다른 글
  • 주소 바인딩(Address Binding) 방식
  • 가상기억장치(Virtual Memory) 관리 기법
  • 프로세스 실행 다이어그램
  • 운영체제의 기능과 역할, 실시간 운영체제
2sjin
2sjin

티스토리툴바