카테고리 없음

교착 상태란?

Ski_ 2025. 6. 22. 23:44

유튜브에 공개된 『혼자 공부하는 컴퓨터 구조+운영체제』 강의를 보고 정리한 내용입니다.

 

출처 : 유튜브 - 혼자 공부하는 컴퓨터 구조+운영체제


  1. 계속 생각을 하다가 왼쪽 포크가 사용 가능하면 집어든다
  2. 계속 생각을 하다가 오른쪽 포크가 사용 가능하면 집어든다
  3. 왼쪽과 오른쪽 포크를 모두 집어들면 정해진 시간동안 식사를 한다
  4. 식사 시간이 끝나면 오른쪽 포크를 내려놓는다
  5. 오른쪽 포크를 내려놓은 뒤 왼쪽 포크를 내려놓는다
  6. 다시 1번부터 반복한다

→ 아무도 식사를 할 수 없는 상황

 

 

교착 상태 : 일어나지 않을 사건을 기다리며 진행이 멈춰 버리는 현상

 

철학자 : 프로세스 or 스레드 / 포크 : 자원 / 식사 : 실행

서로가 점거하고 있는 자원을 서로가 기다리고 있을 경우 그 어떤 프로세스나 스레드도 끝까지 실행될 수 없다.

 

교착 상태를 해결하기 위해서

1. 교착 상태가 발생했을 때의 상황을 정확히 표현해보기

자원 할당 그래프 : 교착 상태가 발생했을 때의 상황을 표현하기 위한 그래프

→ 교착 상태 발생 조건 파악 가능

  • 어떤 프로세스가 어떤 자원을 할당 받아 사용 중인지 확인 가능
  • 어떤 프로세스가 어떤 자원을 기다리고 있는지 확인 가능

 

자원 할당 그래프를 그리는 방법

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

식사하는 철학자 문제의 자원 할당 그래프

교착 상태가 일어난 그래프의 특징 = 자원 할당 그래프가 원의 형태를 띄고 있음

 

2. 교착 상태가 일어나는 근본적인 이유 이해하기

교착 상태가 발생할 조건

  1. 상호 배제 : 한 프로세스가 사용하는 자원을 다른 프로세스가 사용할 수 없는 상태
  2. 점유와 대기 : 자원을 할당 받은 상태에서 다른 자원을 할당 받기를 기다리는 상태
  3. 비선점 : 어떤 프로세스도 다른 프로세스의 자원을 강제로 뺏앗지 못하는 상태
  4. 원형 대기 : 프로세스들이 원의 형태로 자원을 대기하는 상태

위 네 가지 조건 중 하나라도 만족하지 않으면 교착 상태가 발생하지 않음

위 네 가지 조건을 모두 만족하면 교착 상태가 발생할 수 있음


출처 : 유튜브 - 혼자 공부하는 컴퓨터 구조+운영체제

반응형