본문 바로가기
~ 2024.03/컴퓨터 구조 + 운영체제

[컴퓨터 구조] 교착상태

by Monett 2024. 1. 5.
반응형

혼자 공부하는 컴퓨터 구조 + 운영체제(강민철 저, 한빛미디어)를 공부하며 내용을 정리한 글 입니다.
현재 블럭의 내용은 작성자의 의견 혹은 생각이며, 틀린 내용이 있을 수 있습니다. 지적 감사드립니다.

 

교착상태란

프로세스를 실행하기 위해서 자원이 필요한데, 두 개 이상의 프로세스가 각자 가지고 있는 자원을 무작정 기다리면 교착상태가 발생한다.

 

자원 할당 그래프

교착상태를 확인하기 위한 그래프 표현법

  1. 프로세스는 원, 자원은 사각형으로 표시
  2. 사용할 수 있는 자원의 개수는 자원 사각형 내에 점으로 표현
  3. 프로세스가 사용중인 자원은 점에서부터 프로세스를 향해 화살표 표시
  4. 프로세스가 기다리는 자원은 프로세스로부터 사각형에 화살표 표시

 

위 그래프에서 교착상태가 발생하면 원의 형태를 띄게 된다.

교착상태 발생 조건

아래 조건 중 하나라도 만족하지 않으면 발생하지 않고, 모두 만족하면 발생 가능하다.

  • 상호배제 : 한번에 하나의 프로세스만 자원을 이용 가능
  • 점유와 대기 : 자원을 할당받은 상태에서 다른 자원을 대기
  • 비선점 : 다른 프로세스의 자원을 빼앗지 못함
  • 원형 대기 : 프로세스가 원의 형태로 자원을 대기

교착상태 해결 방법

교착상태는 그게 세가지 방법으로 해결할 수 있다.

예방

운영체제가 적절하게 분배하여 교착상태를 예방한다.

  • 현실적으로 상호배제는 예방이 어렵다.
  • 점유와 대기를 예방할 수 있으나, 자원의 활용률이 낮아진다.
  • 비선점은 모든 자원에 대한 예방은 어렵다. ex) 프린터는 하나의 인쇄만 가능하다.
  • 원형대기는 자원에 번호를 붙이고 순서대로 사용하면 예방 가능하나, 넘버링의 어려움이 있다.

위와 같은 문제로 예방은 가능하나 부작용이 많다.

회피

자원의 양을 고려하여 배분하는 방법

  • 안전상태 : 정상적으로 자원을 할당받고 종료될 수 있는 상태
  • 불안전상태 : 교착상태가 발생할 수도 있는 상황
  • 안전 순서열 : 교착상태 없이 자원을 할당할 수 있는 순서 (안전 순서열이 존재한다면 안전상태인 것)

회피는 항상 안전상태를 유지하도록 할당하는 방법이다.

교착 상태 검출 후 회복

교착상태 검출 후 회복은 교착상태 발생을 인정하고 사후에 조치하는 방식

운영체제는 프로세스가 자원을 요구할 때마다 그때그때 모두 할당하며 교착상태 발생 여부를 주기적으로 검사

  • 선점을 통한 회복 : 교착상태가 해결될 때까지 한 프로세스씩 자원을 몰아주는 방식
  • 프로세스 강제 종료를 통한 회복 : 교착상태에 놓인 프로세스를 모두 강제 종료하거나, 한 프로세스씩 강제 종료하는 방식
반응형