<쉽게 배우는 운영체제> 교재를 참고하였습니다.
교착 상태 필요조건
교착 상태 필요 조건
- 다음 4가지 조건이 모두 발생해야만 교착상태 발생(필요조건)
- 4가지 중 단 한 가지라도 만족하지 않으면 교착상태가 발생하지 않음
- 상호 배제(mutual exclusion) : 한 프로세스가 사용하는 자원은 다른 프로세스와 공유할 수 없는 배타적인 자원이어야 함
- 비선점(non-preemptive) : 한 프로세스가 사용 중인 자원은 중간에 다른 프로세스가 빼앗을 수 없는 비선점 자원이어야 함
- 점유와 대기(hold and wait) : 프로세스가 어떤 자원을 할당받은 상태에서 다른 자원을 기다리는 상태여야 함
- 원형 대기(circular wait) : 점유와 대기를 하는 프로세스 간의 관계가 원을 이루어야 함
교착 상태 필요 조건 분석
- 상호 배제, 비선점 조건 : 자원이 어떤 특징을 가지는지를 나타냄. 즉, 사용하는 자원을 동시에 공유할 수 없고, 중간에 빼앗을 수도 없다면 자원을 가진 프로세스가 자원을 내놓을 때까지 무작정 기다리는 교착상태 발생
- 점유와 대기, 원형 대기 조건 : 프로세스가 어떤 행위를 하고 있는지를 나타냄. 즉, 프로세스가 자원을 점유 및 대기하고 있는 상태에서 다른 프로세스를 방해하는 방향이 원을 이루면 서로 양보하지 않기 때문에 교착상태 발생
식사하는 철학자 문제와 교착 상태 필요 조건
식사하는 철학자 문제와 교착 상태 필요 조건
- 상호 배제 : 포크는 한 사람이 사용하면 다른 사람이 사용할 수 없는 배타적인 자원임
- 비 선점 : 철학자 중 어떤 사람의 힘이 월등하여 옆 사람의 포크를 빼앗을 수 없음
- 자원을 빼앗을 수 있다는 것은 시간간격을 두고 그 자원을 공유할 수 있다는 의미이므로 상호배제가 성립되지 않고, 교착상태는 비 선점 자원을 사용할 때 발생
- 상호배제와 비 선점 조건은 임계구역과 관련이 있음. 즉, 임계구역을 보호하기 위해 잠금 장치를 사용하면 상호배제와 비 선점 조건이 보장되고 교착상태가 발생할 수 있음
- 그러나, 임계구역으로 보호되는 모든 자원이 교착상태를 유발하는 것은 아님. 임계구역의 자원을 사용하는 프로세스들이 점유와 대기, 원형 대기 상황에 처하면 교착상태가 발생함
- 점유와 대기 : 한 철학자가 두 자원(왼쪽 포크와 오른쪽 포크)을 다 점유하거나, 반대로 두 자원을 다 기다릴 수 없음
- 한 프로세스가 자원을 점유한 상태에서 다른 프로세스의 자원을 기다리면 서로 진행을 방해하는 상태가 되므로 교착상태가 발생
- 원형 대기 : 철학자들은 둥그런 식탁에서 식사를 함, 원을 이룬다는 것은 선후 관계를 결정할 수 없어 문제가 계속 맴돈다는 의미 (사각형 식탁에서 한 줄로 앉아서 식사를 한다면 교착 상태가 발생하지 않음)
'전공 > 운영체제' 카테고리의 다른 글
[심화]Ch06. 교착 상태_04)다중 자원과 교착 상태 검출 (0) | 2023.04.29 |
---|---|
Ch06. 교착 상태_03)교착 상태 해결 방법 (0) | 2023.04.29 |
Ch06. 교착 상태_01)교착 상태의 개요 (0) | 2023.04.19 |
[심화]Ch05. 프로세스 동기화_04)파일, 파이프, 소켓 프로그래밍 (0) | 2023.04.19 |
Ch05. 프로세스 동기화_03)임계구역 해결 방법 (1) | 2023.04.19 |
댓글