반응형
인스택 큐드 스핀락(InStack Queued SpinLock)
- Windows Server 2008
인스택 큐드 스핀락은 서드파티 개발자들이 스핀락을 사용할 수 있도록 한다. KeAcquireInstackQueuedSpinLock과 KeReleaseInstackQueuedSponLock 함수로 동적으로 할당되는 큐드 스핀락을 사용한다.
전역 정적 큐드 스핀락이 낭비라고 판단되는 경우 캐시 관리자와 익스큐티브 풀 관리자, NTFS 등의 여러 구성 요소가 이들 락 유형을 이용한다.
KeAcquireInstackQueuedSpinLockdms 인자로 스핀락 데이터 구조체의 포인터와 스핀락 큐 핸들을 가진다. 커널은 이 데이터 구조체에 락 소유권과 락이 이용가능하기를 기다리는 프로세서의 큐 등의 락 상태 정보를 저장한다. 이런 이유로 핸들은 전역 변수가 될 수 없다. 핸들은 일반적으로 스택 변수로서 호출자 스레드에 대한 지역성을 보장한다.
[참고자료]
Windows Internals
강성욱 / http://sqlmvp.kr
반응형
'Windows , IIS' 카테고리의 다른 글
Raid Level (0) | 2015.07.20 |
---|---|
익스큐티브 인터락드 동작 (0) | 2015.07.16 |
큐드 스핀락(Queued SpinLock) (0) | 2015.07.16 |
스핀락(SpinLock) (0) | 2015.07.16 |
객체구조 – 객체 유지 (0) | 2015.07.16 |