Spin locks 추가 자료
-
Upload
taewoo-kim -
Category
Education
-
view
672 -
download
3
Transcript of Spin locks 추가 자료
![Page 1: Spin locks 추가 자료](https://reader031.fdocument.pub/reader031/viewer/2022020207/55a48dea1a28ab85288b4605/html5/thumbnails/1.jpg)
Spin Locks 추가 자료
아꿈사 (http://cafe.naver.com/architect1.cafe)Codevania (http://codevania.textcube.com)
![Page 2: Spin locks 추가 자료](https://reader031.fdocument.pub/reader031/viewer/2022020207/55a48dea1a28ab85288b4605/html5/thumbnails/2.jpg)
Index
• Queue Lock V.S. Backoff Lock• Composite Lock– Fast-Path Composite Lock
• Hierarchical Locks– Hierarchical Backoff Lock– Hierarchical CLH Queue Lock
• One Lock To Rule Them All
![Page 3: Spin locks 추가 자료](https://reader031.fdocument.pub/reader031/viewer/2022020207/55a48dea1a28ab85288b4605/html5/thumbnails/3.jpg)
Queue Lock V.S. Backoff Lock
- 확장 불가능
- 느린 잠금 해제 : 시간 초과 매개 변수들 조절 난해
- 포기된 노드들을 재활용할 때 복잡한 프로토콜 필요
단점
- 시간 초과 프로토콜 구현이 쉬움
- 공평성 : 먼저 시도하면 먼저 잠금을 얻음
- 빠른 잠금 해제
- 낮은 경쟁장점
Backoff LockQueue Lock
![Page 4: Spin locks 추가 자료](https://reader031.fdocument.pub/reader031/viewer/2022020207/55a48dea1a28ab85288b4605/html5/thumbnails/4.jpg)
Composite Lock
• Qlock 과 BL 의 잠점들의 균형을 맞추자–임계영역에 돌입하기 위해 대기하는 스레드
• 이 스레드의 수를 적게 유지
–나머지 스레드들
• 이 작은 큐에 들어가기 위해 지수적 양보 방법을 사용
–양보하는 중의 스레드가 포기하고 빠져나가는 방법은 명백함
• 단점–먼저 온 스레드가 먼저 잠금을 획득하는 것을 보장
못함
![Page 5: Spin locks 추가 자료](https://reader031.fdocument.pub/reader031/viewer/2022020207/55a48dea1a28ab85288b4605/html5/thumbnails/5.jpg)
Composite Lock
• 장점–스레드가 양보하는 경우
• 각각은 서로 다른 위치에 접근하므로 경쟁을 감소 시킴
–잠금을 넘겨주는 과정
• CLH 나 TO 만큼 빠름
–잠금 요청을 포기하는 것
• 양보하는 스레드의 경우 명백함
• 큐노드를 획득한 스레드에 대해서도 상대적으로 직관적
• 단점–먼저 온 스레드가 먼저 잠금을 획득하는 것을 보장
못함
![Page 6: Spin locks 추가 자료](https://reader031.fdocument.pub/reader031/viewer/2022020207/55a48dea1a28ab85288b4605/html5/thumbnails/6.jpg)
Composite Lock
• Fast-Path Composite Lock–병행적이지 않은 상황에서의 성능을 고려
–개요
• 잠금을 획득한 경우를 구분– 지름길을 시도해보고
– 실패한 경우 , 이전처럼 큐에 자신을 넣음
![Page 7: Spin locks 추가 자료](https://reader031.fdocument.pub/reader031/viewer/2022020207/55a48dea1a28ab85288b4605/html5/thumbnails/7.jpg)
Hierarchical Locks
• 클러스터–현대의 캐시가 일관된 구조에서는
–프로세스를 클러스터로 나누어 구성
–클러스터 내의 통신 is faster then 클러스터 간의 통신
• 계층적 잠금–컴퓨터 구조의 메모리 계층구조와
–접근 비용을 고려하여
–지역성의 관점에서 이런차이점을 고려한 잠금 설계
![Page 8: Spin locks 추가 자료](https://reader031.fdocument.pub/reader031/viewer/2022020207/55a48dea1a28ab85288b4605/html5/thumbnails/8.jpg)
Hierarchical Locks
• Hierarchical Backoff Lock–장점
• 짧은 양보 시간을 가진다면
• 잠금이 해제되었을 때 ,• 같은 클러스터의 스레드가 원격 스레드에 비해
– 잠금을 획득하게 될 확률이 높게되고 ,– 잠금 소유권을 넘기는 과정에 드는 총 시간을 감소 가능
–단점
• 동기화 문제 발생 : 지역성을 과도하게 활용하기 때문
• 기아 : 같은 클러스터끼리만 잠금을 주고받으면 ?• 잠금 획득 / 해제 과정은 잠금 필드의 원격 캐시 복사본을
무효화 (NUMA 구조에서 높은 비용 )
![Page 9: Spin locks 추가 자료](https://reader031.fdocument.pub/reader031/viewer/2022020207/55a48dea1a28ab85288b4605/html5/thumbnails/9.jpg)
Hierarchical Locks
• Hierarchical CLH Queue Lock–높은 통신 비용을 피하기 위해
같은 클러스터 안에서 잠금을 넘기는 것은 선호함
–하지만 , 어느 정도의 공평성을 보장하여원격 잠금 요청이 지나치게 대기하지 않도록
–같은 클러스터에서의 요청들을 같이 스케쥴링하여이런 요구들의 균형을 맞추자• 지역큐 , 전역큐
• 스레드는 클러스터 마스터의 역할- 지역큐에 쌓인 노드들을 전역 큐에 넣는 것
–암시적인 참조 구조는 캐시 미스를 최소화• 각 스레드는 앞 노드의 상태의
지역적 캐시 복사본에 대해 스핀
![Page 10: Spin locks 추가 자료](https://reader031.fdocument.pub/reader031/viewer/2022020207/55a48dea1a28ab85288b4605/html5/thumbnails/10.jpg)
One Lock To Rule Them All
• 모든 종류의 응용프로그램에 적합한 알고리즘–존재하지 않음 !!
• 최선의 선택–응용프로그램의 특징과
–컴퓨터의 구조에 따라 선택 & 테스트 & 사용