Windows , IIS

인스택 큐드 스핀락(InStack Queued SpinLock)

SungWookKang 2015. 7. 16. 19:12
반응형

인스택 큐드 스핀락(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