개발자는 기록이 답이다
혼공 컴퓨터구조 + 운영체제 13. 교착상태 본문
1. 교착 상태란
프로세스를 실행하기 위해 자원이 필요한데, 두 개 이상의 프로세스가 각자 가지고 있는 자원을 무작정 기다린다면
그 어떤 프로세스도 더 이상 진행할 수 없는 교착상태가 된다.
교착 상태 발생 조건
교착 상태가 발 생할 조건에는 4가지가 있다.
4가지 조건 중 하나라도 만족하지 않는다면 교착 상태가 발생하지 않지만, 아래 조건이 모두 만족될 때 교착상태가 발생할 가능성이 생긴다.
상호 배제
교착 상태가 발생한 근본적인 원인은 해당 자원을 한 번에 하나의 프로세스만 이용 가능했기 때문이다.
프로세스도 마찬가지로 한 프로세스가 사용하는 자원을 다른 프로세스가 사용할 수 없을 때, 상호배제 (mutual exclusion )상황에서 교착 상태가 발생할 수 있다.
점유와 대기
프로세스가 어떠한 자원을 보유한 채(할당받은 상태) 다른 자원을 기다린다면 교착 상태가 발생할 수 있다.
이렇게 자원을 할당받은 상태에서 다른 자원을 할당받기 를 기다리는 상태를 점유와 대기(hold and wait)라고 한다.
비선점
교착 상태가 발생하게 된 또 하나의 근본적인 문제는 프로세스가 자원을 비선점(non-premptive)하고 있기 때문이다.
비선점 자원은 그 자원을 이용하는 프로세스의 작업이 끝나야만 비로소 이용 할 수 있다.
즉, 어떤 프로세스도 다른 프로세스의 자원을 강제로 빼앗지 못했기 때문에 교착상태가 발생했다고 볼 수 있다.
원형 대기
프로세스들과 프로세스가 요청 및 할당받은 자원이 원의 형태를 이루기 때문이다.
다시 말해, 자원 할당 그래프가 원의 형태로 그려지면 교착 상태가 발생할 수 있다.
이렇게 프로세스들이 원의 형태로 자원을 대기하는 것을 원형 대기(cucular wait)라고 한다.
※ 자원 할당 그래프가 원의 형태로 그려지면 교착 상태가 발생할 '수' 있다고 표현한 이유가 있다.
자원 할당 그래프 가 원의 형태를 띄지 않는다면 교착 상태는 발생하지 않으나, 원의 형태를 띈다고 해서 반드시 교착 상태가 발생하는 것은 아니다.
'CS > 운영체제' 카테고리의 다른 글
혼공 컴퓨터구조 + 운영체제 14. 가상메모리 (1) | 2024.02.11 |
---|---|
[혼공컴운] 5주차_Chapter12~13 기본미션 및 선택 미션 (0) | 2024.02.04 |
혼공 컴퓨터구조 + 운영체제 12. 프로세스 동기화 (1) | 2024.02.04 |
[혼공컴운] 4주차_Chapter9~11 기본미션 및 선택 미션 (0) | 2024.01.28 |
혼공 컴퓨터구조 + 운영체제 11. CPU스케줄링 (1) | 2024.01.28 |