inflearn logo
강의

Khóa học

Chia sẻ kiến thức

[Tuyển tập phát triển game MMORPG bằng C++ và Unreal] Phần 4: Máy chủ game

Phát hiện DeadLock

DeadLock 탐지에서 재귀 Lock 상황에 대해 궁금합니다.

3

hancheon

2 câu hỏi đã được viết

0

이전에 강의에서 만든 Lock은 같은 쓰레드가 재귀적으로 Lock을 잡을 수 있다고 기억합니다.

(아마 재귀 Lock의 상황을 제가 오해하고 있을 수도 있다고 생각합니다.)

오늘 만든 DeadLock Profiler대로면,

하나의 스레드가 A lock -> B lock -> A lock을 잡으려하면 DeadLock이 발생하는 것 같습니다.
제가 앞 강의의 RW SpinLock의 정책을 잘못 알고 있는걸까요?

항상 강의 잘보고 있습니다. 좋은 강의에 감사드려요!

네트워크 MMORPG windows-server

Câu trả lời 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 한천님.

강의에서 제공되는 Lock 구조에서는, 동일한 스레드 내에서의 재귀적인 Lock 사용을 허용했을 가능성이 있습니다. 즉, 동일한 스레드가 여러 번 같은 Lock을 잡을 수 있도록 설정되어 있을 수 있습니다. 이는 보통 Recursive Lock 또는 재귀적인 락이라고 부릅니다.

하지만 DeadLock Profiler의 경우, 서로 다른 Lock 간의 의존성을 추적하며 Deadlock 여부를 탐지하게 됩니다. 이 경우 하나의 스레드가 A lock을 잡은 상태에서 다시 A lock을 잡으려고 하면, 스레드는 자기 자신에 의해 막히게 되어 Deadlock이 발생할 수 있다고 판단될 수 있습니다.

다음 링크에서 관련 내용을 더 깊게 확인하실 수 있습니다:

  • Deadlock detector 동작 방식 및 정책: 여기에서 Rookiss 강사님의 Deadlock 탐지 컨셉과 관련한 설명을 들어보실 수 있습니다. Deadlock이 어떻게 탐지되며, 왜 발생하는지를 이해하는 데 도움이 될 것입니다.

이외에 Deadlock을 포착하고 피할 수 있는 다양한 기법에 대해서도 학습을 해보시면 많은 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

LockFreeStack #2에서 ABA 문제

0

47

1

RefCounting 강의 질문있습니다.

0

67

2

writeLock을 잡을때 꼭 empty 상태여야하는 이유?

0

91

2

Memory Pool에서 오버플로우 질문입니다.

0

108

2

포토폴리오 및 진로 관련하여 고민입니다.

0

202

1

포토폴리오 관련 고민입니다.

0

114

1

실무에서도 alloc, 스마트포인터 등을 구현해서 쓰는지 궁금합니다.

0

124

2

성능 테스트 결과

0

127

2

게임 서버 Stateful, Stateless 진로 고민

0

161

1

WaitOnAddress와 Sleep의 차이 질문

0

117

1

궁금한거 있습니다.

0

103

2

JobTimer 구동 스레드

0

132

2

TryPop() 동작 관련 질문

0

95

1

로드맵 C#서버 C++서버 방향성 질문

0

186

2

스레드 id를 출력할떄 메인스레드 id도 출력되나요?

0

93

1

생명주기를 위한 의도적 복사

0

110

2

락프리의 실무에서 사용 질문

0

171

2

32bit threadID와 16비트 상위 WriteFlag에 대해

0

122

2

mutex와 sleep 차이점

0

146

1

실무에서는 어떠한 코드 스타일을 사용하는지 궁금합니다

0

181

2

Stomp Allocator의 Release함수에 대한 질문입니다.

0

113

1

공부법 관련해서

0

200

2

MakeShared 함수 관련

0

127

1

지금까지 서버코어에서 만든 내용에 대해 궁금한 점이 있어서 질문 드립니다.

0

163

2