Spin Locks  추가 자료 아꿈사  (http://cafe.naver.com/architect1.cafe) Codevania  (http://codevania.textcube.com)
Index <ul><li>Queue Lock V.S. Backoff Lock </li></ul><ul><li>Composite Lock </li></ul><ul><ul><li>Fast-Path Composite Lock...
Queue Lock V.S. Backoff Lock -  확장 불가능 -  느린 잠금 해제 :  시간 초과 매개 변수들 조절 난해 -  포기된 노드들을 재활용할 때 복잡한 프로토콜 필요 단점 -  시간 초과 프로토콜 구...
Composite Lock <ul><li>Qlock 과  BL 의 잠점들의 균형을 맞추자 </li></ul><ul><ul><li>임계영역에 돌입하기 위해 대기하는 스레드 </li></ul></ul><ul><ul><ul>...
Composite Lock <ul><li>장점 </li></ul><ul><ul><li>스레드가 양보하는 경우 </li></ul></ul><ul><ul><ul><li>각각은 서로 다른 위치에 접근하므로 경쟁을 감소 시킴 ...
Composite Lock <ul><li>Fast-Path Composite Lock </li></ul><ul><ul><li>병행적이지 않은 상황에서의 성능을 고려 </li></ul></ul><ul><ul><li>개요 ...
Hierarchical Locks <ul><li>클러스터 </li></ul><ul><ul><li>현대의 캐시가 일관된 구조에서는 </li></ul></ul><ul><ul><li>프로세스를 클러스터로 나누어 구성 </li...
Hierarchical Locks <ul><li>Hierarchical Backoff Lock </li></ul><ul><ul><li>장점 </li></ul></ul><ul><ul><ul><li>짧은 양보 시간을 가진다...
Hierarchical Locks <ul><li>Hierarchical CLH Queue Lock </li></ul><ul><ul><li>높은 통신 비용을 피하기 위해 같은 클러스터 안에서 잠금을 넘기는 것은 선호함 <...
One Lock To Rule Them All <ul><li>모든 종류의 응용프로그램에 적합한 알고리즘 </li></ul><ul><ul><li>존재하지 않음 !! </li></ul></ul><ul><li>최선의 선택 <...
Upcoming SlideShare
Loading in …5
×

Spin locks 추가 자료

902 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
902
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Spin locks 추가 자료

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

×