Spin Lock 이란?

Linux/Linux 일반 : 2011. 1. 13. 10:53
반응형
Spin Lock 은 이름이 뜻하는대로, 만약 다른 스레드가 lock을 소유하고 있다면 그 lock이 반환될 때까지 계속 확인하며 기다리는 것이다.

Spin Lock 은 다음과 같은 특성을 갖는다.

  1. Lock을 얻을 수 없다면, 계속해서 Lock을 확인하며 얻을 때까지 기다린다. 이른바 바쁘게 기다리는 busy wating이다.
  2. 바쁘게 기다린다는 것은 무한 루프를 돌면서 최대한 다른 스레드에게 CPU를 양보하지 않는 것이다.
  3. Lock이 곧 사용가능해질 경우 컨택스트 스위치를 줄여 CPU의 부담을 덜어준다. 하지만, 만약 어떤 스레드가 Lock을 오랫동안 유지한다면 오히려 CPU 시간을 많이 소모할 가능성이 있다.
  4. 하나의 CPU나 하나의 코어만 있는 경우에는 유용하지 않다. 그 이유는 만약 다른 스레드가 Lock을 가지고 있고 그 스레드가 Lock을 풀어 주려면 싱글 CPU 시스템에서는 어차피 컨택스트 스위치가 일어나야하기 때문이다
출처 : http://devnote.net/wiki/index.php/Spinlock


좀 더 자세한 설명은 영문 위키피디아를 참조하자.

http://en.wikipedia.org/wiki/Spinlock
반응형

'Linux > Linux 일반' 카테고리의 다른 글

Proc filesystem 프로그래밍  (0) 2011.01.13
tftp 설정  (0) 2010.08.07
Makefile 문법법  (1) 2010.07.22
Posted by Real_G