//교착상태//
알기전에?
- 병행 프로세서 : 두개 이상 프로세스들이 동시에 존재하며 실행 상태에 있는 것을 의미
- 임계구역(Critical Section) : 여러 개의 프로세스가 공유하는 데이터 및 자원에 대하여 어느 한 시점
에서는 하나의 프로세스만 지원 또는 데이터를 사용하도록 영역 지정
하나의 프로세스만 접근 할 수 있고 자원 반납 후에만 다른 프로세스가
사용 가능하게 된다 독점은 못한다
- 상호배제 기법(Mutual Exclusion) : 여러 프로세스가 동시에 공유 자원을 사용할 때 각 프로세스가
번갈아 가며 공유 자원을 사용하도록 하는 것으로 임계구역을
유지하는 기법
- 동기화 기법 : 프로세스에 대한 처리 순서를 결정 [무지중요]
****세마포어***
수신호란 뜻으로 먼저들어온 놈을 들여보내고 나중에 들어온 놈을 들어오면 안된다고 신호를 보냄
P연산과 V연산으로 수신호를 하는데
P연산 : S = S-1
V연산 : S = S+1 이런 식이 있는데 자세한 내용은 책을 참고로!
- 모니터 : 모니터 내의 공유 자원을 사용하려면 프로세스는 반드시 모니터의 진입을 호출해야 함
모니터의 경계에서 상호 배제가 시행됨
////////////////교착 상태/////////////////
상호배제에 의해 나타나는 문제점으로 둘 이상의 프로세스들이 자원을 점유한 상태에서 서로 다른 프로세스가 점유하고 있는 자원을 요구하며 무한정 기다리는 현상을 의미
- 교착 상태 발생 조건
1. 상호 배체(Mutual Exclusion)
2. 점유 및 대기(Hold and Wait)
3. 비선점(Non - Preemption)
4. 환형대기(Circular Wait)
- 회피기법
은행원 알고리즘이라고 회피기법이 있다
프로세스 | 현재 할당량 | 최대요구량 | 추가요구량 |
p1 | 2 | 5 | 3 |
p2 | 4 | A | B |
p3 | 4 | 8 | 4 |
추가 요구량 B는 0일때 현재 할당량이 4 이므로 따로 추가 될수 있는 요구를 할 수 없다 그래서 현재 할당량인 4가 최대요구량이다 그럼 A는 4가 된다