2012-04-18 2 views
1

매우 구체적인 용도로는 간단한 키 - 값 저장소를 작성해야합니다. 이 저장소는이를 사용하는 프로세스와 동일한 메모리 공간에서 실행됩니다.RAM에 트리/해시 테이블 유지하기

이 저장소에 대한 한 가지 요구 사항은 RAM에 보관되어야하며 가능한 한 빨리해야한다는 것입니다. 데이터 구조를 결정하지 않았지만 LLRB-Tree을 사용했을 수 있습니다.

내 데이터 구조가 항상 RAM에 유지되도록하려면 어떻게해야합니까? 스왑되지 않고, 페이징되지 않고, 어딘가에 캐시되지 않고 독점적으로 메모리에 캐시됩니다. 당신이 리눅스를 사용하는 경우

+0

데이터를 [ramdisk] (http://en.wikipedia.org/wiki/RAM_disk)에 저장 하시겠습니까? – Jasonw

+0

어떤 운영 체계입니까? – RedX

+1

POSIX를 준수하는 경우 표준 방법은 mlock() 및 친구입니다. – tbert

답변

2

, 다음 mlock()

MLOCK를 (확인) 및 mlockall()가 각각 일부 또는 RAM에 호출 프로세스의 가상 주소 공간을 모두 잠금, 에서 해당 메모리를 방지하는받는 페이징되고 스왑 영역. (man page)

관련 문제