■ 교착상태
다중 프로그래밍 시스템에서 프로세스가 결코 일어나지 않을 사건(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 |