* 언뜻 떠오르는 분야로는, 수동패킷수집분야에서는 ring buffer를 만들어 성능개선에 사용하고 있습니다.(과거 듀얼버퍼를 보다 많은 버퍼로.....)
libpcap + ring buffer , ethereal + ring buffer, ntop + ring buffer, winpcap + ring buffer 등등에서 사용되고 있습니다. 또한, 원초적으로는 커널의 TCP/IP프로토콜 스택 도 링버퍼를 사용하며, 오래전의 시리얼 통신을 만들때도 링버퍼를 사용했었고, 그 이전에 자료구조론을 설명하는 책에서 링버퍼를 논의하고 있습니다.
링버퍼 알고리즘 자체는 단순하지요. 단지, 특정 시스템(운영체제등)의 환경에 옵티마이즈된 링버퍼의 구현은 해당시스템에 대한 이해를 필요로 합니다. 아울러, 제로카피 메카니즘에 대한 테크닉을 동원하는게 통례입니다. 특히, 네트워크 인터페이스인 경우 NAPI를 사용하는등 다양한 테크닉이 동원되고 있습니다.
------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.
아시다시피, 링버퍼
아시다시피, 링버퍼 자체는(알고리즘) 아주 단순하지요.
* 언뜻 떠오르는 분야로는, 수동패킷수집분야에서는 ring buffer를 만들어 성능개선에 사용하고 있습니다.(과거 듀얼버퍼를 보다 많은 버퍼로.....)
libpcap + ring buffer , ethereal + ring buffer, ntop + ring buffer, winpcap + ring buffer 등등에서 사용되고 있습니다. 또한, 원초적으로는 커널의 TCP/IP프로토콜 스택 도 링버퍼를 사용하며, 오래전의 시리얼 통신을 만들때도 링버퍼를 사용했었고, 그 이전에 자료구조론을 설명하는 책에서 링버퍼를 논의하고 있습니다.
링버퍼 알고리즘 자체는 단순하지요. 단지, 특정 시스템(운영체제등)의 환경에 옵티마이즈된 링버퍼의 구현은 해당시스템에 대한 이해를 필요로 합니다. 아울러, 제로카피 메카니즘에 대한 테크닉을 동원하는게 통례입니다. 특히, 네트워크 인터페이스인 경우 NAPI를 사용하는등 다양한 테크닉이 동원되고 있습니다.
------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.
------------------ P.S. --------------
지식은 오픈해서 검증받아야 산지식이된다고 동네 아저씨가 그러더라.
다음
다음 참조해보세요.
http://elonen.iki.fi/code/misc-notes/ringbuffer/
저도 얼마전 구현을 했는데, 실은 위 문서를 찾긴 했지만 참고는 별로 안했습니다. 링버퍼라는 게 결국 환형큐와 다를 바가 없습니다. 단지 인터넷에 떠도는 환형큐 예제들은 대개 하나의 엔트리만 넣고 하나의 엔트리만 빼는 것들입니다.
이것을 여러 엔트리를 넣고, 여러 엔트리를 뺄 수 있게 확장하면, 환형큐나 링버퍼나 그냥 말만 다를 뿐입니다.
Coral Library Project : http://coral.kldp.net
Orion Project : http://home.megapass.net/~heesc22/
Orion Project : http://orionids.org
댓글 달기