본문 바로가기
운영체제

[운영체제] 7. 교착상태 - (5) 교착상태에 대한 통합적인 전략

by NoDapKeepGoing 2025. 5. 1.

📍1. 통합 전략

1-1. 통합 전략

✔️자원들을 유형에 따라 서로 다른 클래스로 구분하자
✔️자원 클래스들 간에는 할당 순서를 두어 환형 대기를 막자
✔️클래스 내부의 자원들 간에는 각 클래스에 적절한 교착상태 해결 방법을 사용하자

 

1-2. 시스템 자원들의 클래스

✔️스왑 공간: 보조기억장치 상의 블록
✔️프로세스 자원: 파일 같은 할당 가능한 장치 자원
✔️메인 메모리: 페이지나 세그먼트 등의 단위로 프로세스들에게 할당되는 자원
✔️내부 자원: 입출력 채널과 같은 자원

 

1-3. 각 자원 클래스에 적용될 수 있는 전략

1️⃣자원 클래스들 간에 할당 순서

스왑 공간 ➡️ 프로세스 자원 ➡️ 메인 메모리 ➡️ 내부 자원

2️⃣스왑 공간: 점유와 대기 조건을 제거한 예방 방법 사용

- 필요한 스왑 공간의 크기를 미리 알 수 있기 때문에 필요한 모든 자원을 한꺼번에 요청하게 하여 점유와 대기 조건을 없앨 수 있음

3️⃣프로세스 자원: 교착상태 회피 방법 사용

- 프로세스가 이 클래스에 속한 자원의 예상 사용 시간을 미리 예측할 수 있으며, 이 시간을 운영체제에게 알릴 수 있어 사용 가능함

4️⃣메인 메모리: 선점을 허용하는 예방 방법 사용

- 프로세스가 블록되면 그 프로세스의 수행 이미지는 보조기억장치로 스왑되고, 프로세스가 사용하던 메모리 공간을 빼앗음

5️⃣내부 자원: 자원 할당 순서를 미리 결정하는 교착상태 예방 방법 사용

 

 

📍2. 식사하는 철학자 문제

✔️교착상태에 빠진 상황
- 모든 철학자가 왼쪽 포크를 가진 상태에서 오른쪽 포크를 오른쪽 포크를 요청
- 철학자(프로세스)와 포크(자원) 간의 할당 요청 관계에 있어서 환형대기 발생
✔️5명의 철학자들이 동시에 식탁에 앉고 동시에 왼쪽 포크를 집는 경우

 

 

2-1. 세마포어를 이용한 교착상태 해결 방안

테이블에 4명 이하만 앉도록 제한

 

 

2-2. 모니터(monitor)를 이용한 교착상태 해결 방안