강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

컴퓨터공부하자님의 프로필 이미지
컴퓨터공부하자

작성한 질문수

운영체제 공룡책 강의

17. 데드락의 이해: Chapter 8. Deadlocks (Part 1)

Circular Wait를 예방하는 방법에 대한 질문입니다!

해결된 질문

작성

·

204

0

Circular Wait 을 방지하기 위한 방법과 예시에 조금 헷갈리는 부분이 있어서 확인차원에서 질문드립니다. 제가 이해해한 부분이 맞는지 봐주시면 감사하겠습니다.

 

Circular Wait을 예방하기 위한 방법이란

R={R1, R2 ... Rn}

이러한 모든 자원 R에 대하여

'타입'별로 순서를 지정해서

thread_A{

getLock(R1)

getLock(R2)

}

thread_B{

getLock(R2)

getLock(R1)

}

이렇게 락을 획득하는 순서가 다른 상황이 일어나지 않도록 하는 방법을 말씀하신 건가요?

또 그 방법이 deadlock prevention을 보장하지 않는 이유가 공유자원 타입별로 순서를 정해도 공유자원의 순서가 보장되지 않는 경우가 있기 때문이고요. 그 예로서 transaction을 보여주신거라고 보면 될까요?

제가 이해한 부분이 맞는지 궁금합니다.

퀴즈

교착 상태(Deadlock)란 프로세스들이 서로의 자원을 기다리며 영원히 진행할 수 없는 상황을 말해요. 이 상황의 핵심적인 특징은 무엇일까요?

모든 프로세스가 자원을 이미 확보한 상태

프로세스들이 서로가 가진 자원을 무한히 기다리는 상태

특정 프로세스만 CPU 시간을 독점하는 상태

시스템 메모리가 부족한 상태

답변 1

1

주니온님의 프로필 이미지
주니온
지식공유자

두번째 질문을 정확하게 이해하기 어렵지만, 이해하신 부분에는 무리가 없습니다.

circular wait을 방지하는 방법은 어차피 아주 복잡한 자원들이 복잡하게 엃혀 있는 현대적 운영체제 모델에서는 거의 사용할 수 없는 모델이므로, 개념적으로 이해하시면 될 것 같습니다.

컴퓨터공부하자님의 프로필 이미지
컴퓨터공부하자

작성한 질문수

질문하기