본문 바로가기
🖥️ Computer Science

[쉽게 배우는 운영체제] ch.6 프로세스 동기화 - 연습 & 심화 문제

by GroovyArea 2022. 11. 6.

연습 문제

1. 2개 이상의 프로세스가 서로의 작업이 끝나기만 기다리며 작업을 더 이상 진행하지 못하는 상태를 무엇이라 하는가?

  • 교착 상태 (dead lock)

2. 프로세스가 어떤 자원을 사용 중이고 어떤 자원을 기다리고 있는지를 나타내는 방향성이 있는 그래프?

  • 자원 할당 그래프 (resource allocation graph)

3. 네 가지 교착 상태 필요조건에 대한 설명

  • 상호 배제 (mutual exclusion) :
    • 한 프로세스가 사용하는 자원은 다른 프로세스와 공유할 수 없는 배타적 자원이어야 함.
  • 비선점 (non-preemption):
    • 한 프로세스가 사용중인 자원은 다른 프로세스가 빼앗을 수 없는 비선점 자원이어야 한다.
  • 점유와 대기 (hold and wait):
    • 프로세스가 어떤 자원을 할당 받은 상태에서 다른 자원을 기다리는 상태여야 한다.
  • 원형 대기 (circular wait):
    • 점유와 대기를 하는 프로세스 간의 관계가 원을 이루어야 한다. 점유와 대기를 하는 프로세스들이 서로 방해하는 방향이 원을 이루면 프로세스들이 서로 양보하지 않는다.

4. 교착 상태 해결 방법 중, 교착 상태를 유발하는 네 가지 조건을 무력화하는 방법?

  • 교착 상태 예방
  • 실효성이 적음.

5. 교착 상태 해결 방법 중, 교착 상태가 발생하지 않는 수준으로 자원을 할당하는 방법?

  • 교착 상태 회피
  • 자원을 할당하다가 교착 상태를 유발 가능성이 보이면 자원 할당을 중단하고 지켜 봄.
  • 실효성이 적음.

6. 교착 상태 해결 방법 중, 자원 할당 그래프를 사용하여 교착 상태를 발견하는 방법?

  • 교착 상태 검출
  • 교착 상태 발생 시 교착 상태 회복 단계 진행

7. 교착 상태 해결 방법 중, 타임아웃을 이용하여 해결하는 방법?

  • 타임 아웃을 이용한 교착 상태 검출
  • 일정 시간 작업이 미진행중인 프로세스를 교착 상태가 발생한 것으로 간주한 뒤 처리.
  • 문제점 :
    1. 엉뚱한 프로세스 강제 종료
      • 교착 상태 외의 다른 이유로 작업이 진행되지 못하는 모든 프로세스가 강제 종료 될 수 있다.
    2. 데이터가 나뉘어진 분산 데이터베이스의 경우, 타임아웃 방법을 적용하기 어렵다. 원격지의 프로세스 응답이 교착 상태 때문인지, 네트워크 때문인지 모름.

8. 교착 상태 해결 방법 중, 은행원 알고리즘을 사용하여 해결하는 방법?

  • 교착 상태 회피

9. 교착 상태 해결 방법 중, 모든 자원에 번호를 부여하고 낮은 번호의 자원을 사용할 수 없도록 하는 방법?

  • 교착 상태 예방

10. 교착 상태 해결 방법 중, 프로세스가 시작 초기에 자신이 사용하려는 모든 자원을 한꺼번에 점유하거나, 그렇지 못할 경우 자원을 모두 반납하는 방법?

  • 점유와 대기 예방
  • 프로세스는 초기에 사용하려는 모든 자원을 한꺼번에 점유하거나, 미사용시 모두 반납해야됨.
  • 단점 :
    • 프로세스 자신이 사용하는 모든 자원을 자세히 알기 어려움
    • 자원의 활용성이 떨어짐. 사용하지 않는 자원까지 잡고 있다.
    • 많은 자원을 사용할 수록 불리하다.
    • 결국 일괄 작업 방식으로 동작함.

11. 교착 상태 해결 방법 중, 교착 상태가 검출되면 교착 상태를 일으킨 모든 프로세스를 종료하는 방법?

  • 교착 상태 회복

12. 자원 할당 그래프에서 무엇이 발견되면 교착 상태라고 판단할 수 있는가?

  • 단일 자원을 사용하는 경우 자원 할당 그래프에 사이클이 있으면 교착 상태이다.
  • 다중 자원의 경우 대기 그래프와 그래프 감소 방법을 이용하여 사이클을 찾는다.

심화 문제

1. 교착 상태 해결 방법 중 프로세스가 시작 초기에 자신이 사용하려는 모든 자원을 한꺼번에 점유하거나, 그렇지 못할 경우 자원을 모두 반납하는 방법이 있다. 이 방법의 단점을 설명하시오

  • 프로세스가 자신이 사용하는 모든 자원을 자세히 알기 어렵다.
  • 자원의 활용성이 떨어진다. 현재 사용하지도 않을 자원을 미리 잡고 있기 때문이다.
  • 많은 자원을 사용하는 프로세스가 적은 자원을 사용하는 프로세스보다 불리하다.
  • 결국 일괄 작업 방식으로 동작한다.

2. 교착 상태 회피 방법인 은행원 알고리즘의 단점을 설명하시오

  • 프로세스가 자신이 사용할 모든 자원을 미리 선언해야 한다. 실제로 불가능하다.
  • 시스템의 전체 자원 수가 고정적이어야 한다.
  • 자원이 낭비된다. 모든 불안정 상태가 교착 상태가 되는 것이 아닌데도 자원을 할당하지 않는 것은 자원 낭비이다.

3. 교착 상태 검출 시 타임아웃을 이용하는 방법의 장단점을 설명하시오

  • 장점 :
    특별한 알고리즘 없이 쉽게 구현할 수 있다.
  • 단점:
    • 엉뚱한 프로세스가 강제 종료될 수 있음: 교착 상태 외의 다른 이유로 작업이 진행되지 못하는 모든 프로세스가 강제 종료될 수 있다.
    • 여러 군데에 데이터가 나뉘어 있는 분산 데이터베이스의 경우에는 타임아웃을 이용하는 방법을 적용하기가 어렵다. 원격지에 있는 프로세스의 응답이 교착 상태 때문인지, 네트워크 때문인지 모르기 때문이다.
반응형