Spin buffer explained : Part 2

전번에 들고 나왔었던 스핀 버퍼 (spin buffer) 에 대한 설명. 스핀 버퍼 정의대로 3개의 동일한 버퍼 배열들을 가지고 진행하게 되며, 앞에서 설명한 busy 여부는 Free 상태만 non-busy로 생각하면 된다. 그리고 빗금친 버퍼는 데이터가 들어있는 것이다. 생산자-소비자 모델 (consumer-producer model)에서, 생산자가 1 개의 아이템을 버퍼에 집어 넣은 형태가 다음이라고 하자. (다음 다이어그램부턴 여기에 대한 연속) 생산자가 […]

Spin buffer explained…

이번 달 초에 Dr. Dobb’s Journal (DDJ)을 보다가 multi-thread 용으로 구현된 흥미로운 링버퍼(ring buffer; circular buffer)에 관한 글을 발견(http://www.ddj.com/dept/architect/199902669) 간략히 설명하자면 기존의 링버퍼는 1개의 1차원 배열을 사용하고 여기의 양 끝에 각각 접근하는 consumer-producer modle을 사용했습니다. 각각은 이 1차원 배열에 접근해서 데이터를 추가하거나(producer part), 데이터를 꺼내가는(consumer part) 작업을 수행하는데 이 동작에 대해 1차원 배열을 접근하는 것을 […]