본문 바로가기
컴퓨터공학/운영체제

9. 교착 상태 1

by meow0110 2024. 7. 8.

■ 교착상태
다중 프로그래밍 시스템에서 프로세스가 결코 일어나지 않을 사건(event)을 기다리는 상태로서 프로세스가 교착 상태에 빠지면 작업이 정지되어 명령 진행이 불가한 상태를 말한다.

 

 

■ 각자가 자원을 쓰고 있음. 그러나 서로가 가진 자원을 요구함. 그래서 교착상태에 빠짐

 

■ 스풀

- 임시공간

- 예를 들면 인쇄에 필요한 프로세스들이 모이는 공간

- 즉 스풀 공간에 너무 많은 작업이 요청될 경우 교착에 빠짐.

- 일정 포화 임계치를 설정해서 (예를들면 75%까지만) 예방할수 있다.

 

■ 디스크에서의 교착

-대표적인 공유자원

-공유자원이기 때문에 서로 쓸려다가 교착상태 발생

 

 

■ 디스크제어기가 교착상태에 빠지지 않게 해준다. 한 작업이 쓰면 다른 작업은 못쓴다!

 

■ 네트워크에서 발생할 수 있는 교착상태

- 트래픽이 넘칠 시, 버퍼가 부족하고 흐름 제어 프로토콜이 없을 경우

 

 

■ 상호배제
자원을 최소 하나 이상 비공유. 즉, 한 번에 프로세스 하나만 해당 자원 사용할 수 있어야 한다. 사용 중인 자원을 다른 프로세스가 사용하려면 요청한 자원 해제될 때 까지 대기해야 한다.

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

 

 

■  비선점

■  순환대기 : 싸이클 돌듯 서로가 자원을 차지한 상태에서 자원을 쓸려고하면서 생김

 

■  이 4가지 모두 교착상태에 빠지는데 필요한 조건들이다. 

 

 

■ 방향 그래프 : 교착 상태 표현할 수 있다.

 

 

■ 싸이클이 존재한다 = 교착

 

■ 교착 상태가 아니다 왜?

P4가 일을 끝내면 풀리게 되어 있으니까. 즉 지금은 막혀있으나, P4가 R2를 다 쓰게 되면 풀리게 되어 있다.

 

 

 

 

■학습정리

교착 상태 개념

  • 다중 프로그래밍 시스템에서 프로세스가 결코 일어나지 않을 사건(event)을 기다리는 상태이다.
  • 운영체제가 교착 상태 해결 못하면, 시스템 운영자나 사용자는 작업 교체, 종료하는 외부 간섭으로 해결해야 한다.
  • 하나 이상의 작업에 영향을 주어 무한 대기, 기아 상태보다 더 심각한 문제 야기한다.
  • 두 프로세스가 사용하는 자원(비공유)으로 서로 기다리고 있을 때 발생한다.
  • 자원 해제 요청 받아들일 때까지 프로세스들은 작업 진행이 불가하다.

 

교착 상태 발생

  • 스풀링 시스템 쉽게 교착 상태에 빠진다. 디스크에 할당된 스풀 공간의 출력 완료하지 않은 상태에서 다른 작업이 스풀 공간 모두 차지하면 교착 상태가 발생한다.
  • 스풀링 처리부에 공간 넉넉하면 교착 상태 발생률 감소하나 비용 많이 든다. 이때는 스풀링 파일의 일정 포화 임계치(Saturation Threshold 설정하여 교착 상태 예방이 가능하다.

 

 

교착 상태 발생 조건

  • 상호배제
  • 점유와 대기
  • 비선점
  • 순환(환형) 대기

'컴퓨터공학 > 운영체제' 카테고리의 다른 글

11. 주기억장치 관리의 의미  (0) 2024.07.08
10. 교착 상태 2  (0) 2024.07.08
8. 상호배제와 동기화  (0) 2024.07.03
7. 병행 프로세스  (1) 2024.07.03
6. 스케쥴링 알고리즘  (0) 2024.06.25