기출문제/정보처리기사

2018년 1회 정보처리기사 기출문제 57번

엉클지니 2025. 6. 7. 01:20

57. Dead Lock 발생의 필요충분조건이 아닌 것은?

    Circular Wait               Hold and Wait

    Mutual Exclusion        Preemption

 

300x250

 


문제 분석

이번 문제는 Dead Lock(교착 상태) 발생에 필요한 조건들 중에서, 필요충분조건이 아닌 것을 묻고 있습니다.


Dead Lock(교착 상태)이란?

  • 여러 프로세스가 서로가 가진 자원을 기다리면서 영원히 멈춰있는 상태입니다.
  • 교착 상태가 발생하면 시스템이 멈추거나 성능 저하가 심해지므로, 운영체제에서 매우 중요한 문제입니다.

Dead Lock 발생 필요충분조건 (4가지 조건)

Dead Lock이 발생하려면 다음 4가지 조건이 모두 동시에 성립해야 합니다. 이걸 "교착상태의 필요충분조건"이라고 합니다.

번호 조건 이름 설명

Mutual Exclusion 자원은 한 번에 한 프로세스만 사용할 수 있다.
Hold and Wait 자원을 이미 점유한 상태에서 추가 자원을 기다린다.
Circular Wait 프로세스들이 원형으로 자원을 기다리며 서로 순환적으로 대기한다.
Preemption 프로세스가 자원을 강제로 빼앗길 수 있는 상황 (즉, 선점 가능)

문제: 필요충분조건이 아닌 것

  • ①, ②, ③번은 모두 Dead Lock 발생에 반드시 필요한 조건입니다.
  • 하지만 ❹ Preemption은 Dead Lock 발생의 필요조건이 아닙니다.
    • Preemption이란 자원을 강제로 빼앗을 수 있는 상태인데, Dead Lock은 비선점(Preemption 불가) 상황에서 발생합니다.
    • 즉, 자원을 강제로 빼앗지 못할 때(비선점 조건), 교착 상태가 발생할 가능성이 커집니다.
    • 따라서 Preemption은 Dead Lock의 필요충분조건에 포함되지 않습니다.

정리표

조건명 Dead Lock 발생 필요조건 여부 설명

Mutual Exclusion 필요조건 자원을 한 번에 하나만 쓸 수 있어야 한다.
Hold and Wait 필요조건 자원을 점유한 채 다른 자원을 기다린다.
Circular Wait 필요조건 프로세스들이 원형 대기 상태에 있다.
Preemption 필요조건 아님 자원을 빼앗을 수 있으면 Dead Lock 예방 가능.

결론

Dead Lock 발생의 필요충분조건이 아닌 것은 ❹ Preemption입니다!


 


정답: ❹ Preemption