2011년 4월 3일 일요일

non-block lock free circular queue

non-block circular queue에 대한 내용이다.
one producer,one consumer환경에서 lock을 쓰지 않는 방법을 제시한다.
dream.eng.uci.edu/eecs123/15_NBB.pdf

다음은 저자 홈페이지
http://dream.eng.uci.edu/kim-kane.htm
저자가 한국인 교수님이다. ^^

TMO를 다운로드하면, NBB소스를 볼 수 있는데,
자세히 살펴보면 버그가 숨겨져 있다;;;;
공부겸 스스로 찾아보길 바란다. ^^

이 circular queue로 thread간 통신에 쓰면 lock을 쓰지 않아도 된다. ^^
다만, multiple producer/multiple consumer 상에서는 통하지 않는다.
multiple producer/multiple consumer에서는 producer lock/consumer lock을 사용하여 제어하면 될 것이다.

linux에서 memory barrier를 이용한 방법도 함께 소개한다.
다음 링크를 참조.
http://lxr.linux.no/#linux+v2.6.38/Documentation/circular-buffers.txt

도움이 되셨다면, 광고 클릭을 ㅎㅎ ^^