Problem Scenarios Synchronization Basic Insight Problem Scenarios Deadlock
순서 • • Problem Scenarios Synchronization Basic Insight! 마무리
Problem Scenarios Deadlock Orphaned Critical Section Dll. Main Awareness Lock Contention Managing Critical Section
5가지 동기화 문제 상황 동기화 Lock 경합 Dll. Main Loader Lock! CS 잘못 사용한 경우 Managing CS Lock Contention Dll. Main Awareness Orphaned CS 짝 잃은 동기화객체 Deadlock 교착 상태
Orphaned Critical Section#2 Heap. Alloc 내 안에 Critical Section 있다 • P. 523 ~ 524 • Thread Termianation 할 때! • 해당 쓰레드에서 예상치 못 한 동기화 객체를 사용하고 있을 때 문제 발생
Managing Critical Section Cretical. Section cs Initialization (&cs) Enter (&cs) Leave (&cs) … … • P. 546 ~ 547 • 크리티컬 섹션 함수를 바르게 사용하자! • Lock. Count 를 고려하면서! • 초기화를 고려하면서!
Synchronization Basic Event Critical Section Mutex Semaphore 문제 해결 시나리오
동기화 객체 • • Event Critical Section Mutex Semaphore ! 님 n o i t c e S l a c i t i Cr
Critical Section#2 RTL_CRITICAL_SECTION + Debug. Info + Lock. Count + Recursion. Count + Owning. Thread + Lock. Semaphore + Spin. Count • P. 498 • 스핀 카운트와 Event 커널 객체를 이용하는 똑똑한 유 저 모드 동기화 객체! • Owner. Ship 전환에 걸리는 시간을 줄여 Lock Convoy 현상을 줄임!
마무리 Reference
Reference • Advanced Windows Debugging p. 493 ~ 550 • Windows 구조와 원리 2 th
- Slides: 24