[ 교착 상태 ]
일어나지 않을 사건을 기다리며 진행이 멈춰버리는 현상
( EX. 식사하는 철학자 문제 )
자원 할당 그래프
교착 상태를 간단히 표현할 수 있는 그래프
방법
1. 프로세스는 원으로, 자원의 종류는 사각형으로 표현
2. 사용할 수 있는 자원의 개수는 자원 사각형 내에 점으로 표현
3. 프로세스가 자원을 할당받아 사용 중이라면 자원에서 프로세스를 향해 화살표를 표시
4. 프로세스가 자원을 기다리고 있다면 프로세스에서 자원으로 화살표를 표시
=> 교착 상태가 발생하면 그래프가 원 모양이 된다.
교착 상태 발생 조건
1. 상호 배제
한 프로세스가 사용하는 자원을 다른 프로세스가 사용할 수 없는 상황
2. 점유와 대기
자원을 할당받은 상태에서 다른 자원을 할당받기를 기다리는 상황
3. 비선점
어떤 프로세스도 다른 프로세스의 자원을 강제로 빼앗지 못하는 상황
4. 원형 대기
프로세스들과 프로세스가 요청 및 할당받은 자원이 원의 형태를 이룬 상황
교착 상태 해결
1. 예방
교착 상태 발생 조건 중 하나를 충족하지 못하게 하는 방법
( 4가지 조건이 다 만족해야 교착 상태 발생 )
2. 회피
교착 상태가 발생하지 않을 정도로 자원을 할당하는 방법
안전 상태
교착 상태 없이 안전하게 프로세스들에 자원을 할당할 수 있는 순서를 안전 순서열이라 하고, 안전 순서열대로 프로세스들에 자원을 배분하여 교착 상태가 발생하지 않는 상태 ( <-> 불안정 상태 )
3. 검출 후 회복
3-1. 선점을 통한 회복
교착 상태가 해결될 때까지 힌 프로세스씩 자원을 몰아주는 방식
다른 프로세스로부터 자원을 강제로 빼앗고 한 프로세스에 할당
3-2. 프로세스 강제 종료를 통한 회복
교착 상태에 놓인 프로세스를 모두 강제 종료할 수도 있고, 교착 상태가 없어질 때까지 한 프로세스씩 강제로 종료할 수도 있음. 전자는 가장 확실하지만 많은 작업 내역을 잃을 수 있고, 후자는 교착 상태가 없어졌는지 여부를 확인하는 과정에서 오버헤드를 야기함.
'👩💻 알고리즘 > 🎛️ 컴퓨터 구조 & OS' 카테고리의 다른 글
[ 혼공학습단 12기 ] 15강 - 파일 시스템 (0) | 2024.08.26 |
---|---|
[ 혼공학습단 12기 ] 14강 - 가상 메모리 (0) | 2024.08.25 |
[혼공학습단 12기] 12강 - 프로세스 동기화 (0) | 2024.08.23 |
[혼공학습단 12기] 11강 - CPU 스케줄링 (0) | 2024.08.04 |
[혼공학습단 12기] 10장, 프로세스와 스레드 (0) | 2024.07.28 |