One_Blog

교착 상태 (Deadlock) [운영체제 수업] 본문

운영체제

교착 상태 (Deadlock) [운영체제 수업]

0xOne 2023. 5. 2. 16:09
728x90

날짜 : 2023년 5월 2일

 

오늘 수업 주제

: 교착 상태





오늘 배운 내용 요약

:

기아 상태

  • 특정 프로세스의 우선 순위가 낮아서 원하는 자원을 할당받지 못함

해결방법

  • 프로세스의 우선순위를 수시로 변경
  • 오래 기다린 프로세스의 우선순위 높이기

 

자원 사용 순서

  • 요청 및 대기
  • 사용
  • 해제

{

allocate(first)

//사용영역

free(first)

}

 

디바이스 : request, release

파일 : open, close

메모리 : allocate, free

세마포어 : wait, signal

뮤텍스 : lock, unlock

 

교착상태

  • 프로세스가 무한정 대기하는 상태
  • 2개 이상의 작업이 서로 끝나기를 기다리는 상태

 

교착상태

  • 제한된 자원을 효율적으로 쓰려다 생기는 부작용
  • 프로세스가 일어나지 않을 사건을 기다림
  • 프로세스가 교착 상태에 빠지면 작업이 정지됨
  • 운영체제가 해결 못하면 작업, 교체, 종료 등의 외부 간섭
  • 하나 이상의 작업에 영향을 주어 무한정 대기를 만들며, 기아 상태보다 심각한 문제를 야기
  • 두 프로세스 이상 사용하는 자원에 대해 발생

 

발생조건

 

상호배제

  • 자원은 한번에 하나의 프로세스만 이용 가능
  • 사용 중인 자원을 다른 프로세스가 쓰려면 요청 자원이 해제될 때 까지 대기

점유와 대기

  • 점유 : 자원을 최소한 하나 정도 보유
  • 대기 : 다른 프로세스에 할당된 자원을 얻으려고 대기하는 프로세스가 있어야 함.

비선점

  • 선점 : 다른 프로세스가 쓰는 자원을 강탈
  • 자원 점유 중인 프로세스가 해제해야 사용이 가능

순환 대기

  • 자원을 받으려고 기다리는 상태가 원형이면 안됨