데드락(교착상태)
여러 프로세스가 서로의 작업 종료를 기다리다 모두 작업을 진행하지 못하는 상태 : 교착상태
공유자원이 원인
교착상태의 필요조건
1. 상호배제
프로세스가 한 리소스를 점유한 상태에서 다른 프로세스에게 공유 불가한 상태
2. 비선점
다른 프로세스가 점유한 공유자원을 빼앗을 수 없는 상태
3. 점유와 대기
공유자원을 점유한 상태에서 다른 공유자원을 점유하고 싶어 하는 상태
4. 원형 대기
점유와 대기 상태의 프로세스들이 원형을 이룬 상태
교착상태의 예방은 제약이 많고 비효율적.
이 대신 교착상태에 빠졌을 때 해결하는 방법을 연구.
데드락 해결
교착상태 회피 (예방)
프로세스들에게 어느 정도 자원을 할당해야 교착상태가 발생하는지 파악
→ 교착상태가 발생하지 않는 수준의 자원 할당
전체 자원의 수 & 할당된 자원의 수
→ 안정 상태 / 불안정 상태
OS는 최대한 안정상태를 유지하려고 자원할당.
불안정 상태는 교착상태에 빠질 확률이 높아지는 것.
은행원 알고리즘
안정상태 : 상환 능력
OS는 자신의 전체 자원의 수를 인식 : 시스템의 총 자원
각 프로세스는 필요한 자원의 최대숫자 OS에 알림 : 최대 요구 자원
불안정상태 :
시스템의 사용 가능한 자원보다 모든 프로세스의 요청 예상 자원의 수가 더 많은 경우
비용이 비싸고 비효율적
교착상태 해결
1. 가벼운 교착상태 검출
타이머를 이용
프로세스가 일정시간동안 작업을 진행하지 않으면 교착상태 발생으로 간주
교착상태를 해결하기 위해 마지막 저장 체크포인트로 롤백
교착상태가 아닌 프로세스를 종료시킬 수 있음
2. 무거운 교착상태 검출
자원 할당 그래프 이용
OS가 프로세스의 자원 사용을 지켜본 후, 교착상태 발생 시 해결
교착상태를 해결하기 위하여
교착상태를 일으킨 프로세스 강제 종료, 다시 실행 시 체크포인트로 롤백
OS가 지속적으로 자원할당 그래프 유지, 검사 필요 → 오버헤드 발생
하지만, 가벼운 교착상태 검출에서 일어나는 교착상태가 아닌 프로세스의 종료 발생 X
'스터디 > 운영체제' 카테고리의 다른 글
[인프런 CS 전공지식 스터디 3기_운영체제] 4. 프로세스 동기화 (0) | 2025.03.16 |
---|---|
[인프런 CS 전공지식 스터디 3기_운영체제] 3. CPU스케줄링 (0) | 2025.03.11 |
[스터디] 인프런 CS 전공지식 스터디 3기_운영체제(1주차) (0) | 2025.03.09 |