오래 못 할 짓 하지 않기
[ 운영체제 ] 10. 교착 상태 본문
포크 = 실행에 필요한 자원
철학자 = 프로세스
식사 = 실행
서로가 점거하는 자원을 서로가 기다리고 있으면
어떠한 프로세스도 실행될 수 없다.
교착 상태 ( Dead Lock )
: 일어나지 않을 사건을 기다리면서 진행(실행)이 멈춰 버리는 현상
서로의 할당이 해제될 때까지 무작정 기다림
● 해결하기 위해서...
1. 교착 상태가 발생했을 때의 상황을 정확히 표현해보기
→ 자원 할당 그래프 : 교착 상태 발생 조건 파악 가능
- 어떤 프로세스가 어떤 자원을 할당 받아 사용 중인지 확인 가능
- 어떤 프로세스가 어떤 자원을 기다리는 중인지 확인 가능
식사하는 철학자 예시의 자원 할당 그래프는 아래와 같다
교착 상태가 일어난 그래프
= 원의 형태를 띄고있다.
● 교착 상태가 일어나는 근본적인 이유
1. 교착 상태가 발생할 조건
- 상호 배제 (Mutual Exclusion)
: 한 프로세스가 사용하는 자원을 다른 프로세스가 사용할 수 X인 상태
- 점유와 대기 (Hold and Wait)
: 자원을 할당받은 상태에서 할당 되어있는 다른 자원을 할당 받기를 기다리는 상태
ex) 식사하는 철학자 예제
- 비선점 (Nonpre - Emption)
: 어떤 프로세스도 다른 프로세스의 자원을 강제로 빼앗지 못하는 상태
ex) 철학자 예제에서 한 명이 다른 애 거 뺏을 수 있으면 교착이 안 일어남
- 원형 대기 (Circular Wait)
: 프로세스들이 원의 형태로 자원을 대기하는 상태
위 네 가지 모두 만족해야 교착상태 발생
(출처)
유튜브 한빛미디어
'3학년 1학기 > 운영체제 (OS)' 카테고리의 다른 글
[ 운영체제 ] 12. 메모리 할당 (0) | 2024.01.14 |
---|---|
[ 운영체제 ] 11. 교착 상태 해결 방법 (0) | 2024.01.13 |
[ 운영체제 ] 9. 프로세스 동기화 기법 (0) | 2024.01.12 |
[ 운영체제 ] 9. 프로세스 동기화 (0) | 2024.01.11 |
[ 운영체제 ] 8. CPU 스케줄링 알고리즘 (0) | 2024.01.10 |