티스토리 뷰

반응형

교착 상태

2개 이상의 프로세스가 다른 프로세스의 작업이 끝나기만 기다리며 작업을 더 이상 진행하지 못하는 상태

 


교착 상태의 발생

  1. 시스템 자원
    동시에 같이 사용할 수 없는 시스템 자원을 할당받은 후 양보 안 할 시 발생
    ex) 스캐너, 프린터

  2. 공유 변수
    한 변수를 할당받은 상태에서 다른 변수 대기 시 발생

  3. 응용 프로그램
    데이터베이스 같은 응용 프로그램에서도 발생

 

자원 할당 그래프

프로세스가 어떤 자원을 사용 중이고 어떤 자원을 기다리고 있는지를 방향성이 있는 그래프로 표현

 

 

*사용하는 이유 : 어떤 프로세스에 어떤 자원이 할당되어 있는지 혹은 어떤 프로세스가 자원을 기다리고 있는지 한눈에 파악 가능하다.

 

*다중 자원 : 여러 프로세스가 하나의 자원을 동시에 사용

 

*식사하는 철학자 문제

  1. 철학자들은 서로 포크를 공유할 수 없다.
    -> 자원을 공유하지 못하는 교착 상태 발생

  2. 각 철학자는 다른 철학자의 포크를 빼앗을 수 없다.
    -> 자원을 빼앗을 수 없으면 자원을 놓을 때까지 기다려야 하므로 교착 상태 발생

  3. 각 철학자는 왼쪽 포크를 잡은 채 오른쪽 포크를 기다린다.
    -> 자원 하나를 잡은 상태에서 다른 자원을 기다리면 교착 상태 발생

  4. 자원 할당 그래프가 원형이다.
    -> 자원을 요구하는 방향이 원을 이루면 양보를 하지 않기 때문에 교착 상태 발생

교착 상태 필요조건

교착 상태는 상호 배제, 비선점, 점유와 대기, 원형 대기를 모두 충족해야 발생한다.

 

  1. 상호 배제
    한 프로세스가 사용하는 자원은 공유할 수 없는 배타적인 자원이어야 한다.


  2. 비선점
    한 프로세스가 사용 중인 자원은 중간에 다른 프로세스가 빼앗을 수 없는 비선점 자원이어야 한다.


  3. 점유와 대기
    프로세스가 어떤 자원을 할당받은 상태에서 다른 자원을 기다리는 상태여야 한다.


  4. 원형 대기
    점유와 대기를 하는 프로세스 간의 관계가 원을 이루어야 한다.

 

 

좋아요는 로그인하지 않아도 누를 수 있습니다!

728x90
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함