내장형 시스템을 위한 Budgeted 메모리 할당기

Budgeted Memory Allocator for Embedded Systems

  • Lee, Jung-Hee (Telecommnuication R&D Center, Samsung Electronics) ;
  • Yi, Joon-Hwan (Telecommnuication R&D Center, Samsung Electronics)
  • 발행 : 2008.03.25

초록

내장형 시스템의 설계 유연성을 높이고 예측하기 어려운 입력과 출력을 다루기 위해 동적 메모리 할당기가 사용된다. 일반적으로 내장형 시스템은 사용 기간 동안 계속 수행되기 때문에 메모리 할당기를 설계하는데 있어서 단편화 문제가 중요한 고려 사항 중 하나이다. 본 논문에서는 미리 구분된 객체들에 대한 전용 영역을 활용하여 단편화를 최소화시키기는 budgeted 메모리 할당기를 제안한다. 최신의 메모리 할당기를 사용하는 대신 budgeted 메모리 할당기를 사용하면 필요한 힙 영역의 크기를 최대 49.5% 감소시킬 수 있었다. 힙 영역의 크기가 16KB 이상이면 budgeted 메모리 할당기를 사용함으로 늘어나는 코드의 크기를 줄어든 단편화로 보상할 수 있다.

Dynamic memory allocators are used for embedded systems to increase flexibility to manage unpredictable inputs and outputs. As embedded systems generally run continuously during their whole lifetime, fragmentation is one of important factors for designing the memory allocator. To minimize fragmentation, a budgeted memory allocator that has dedicated storage for predetermined objects is proposed. A budgeting method based on a mathematical analysis is also presented. Experimental results show that the size of the heap storage can be reduced by up to 49.5% by using the budgeted memory allocator instead of a state-of-the-art allocator. The reduced fragmentation compensates for the increased code size due to budgeted allocator when the heap storage is larger than 16KB.

키워드

참고문헌

  1. M. Masmano et al., "TLSF: a New Dynamic Memory Allocator for Real-Time Systems," in Proc. of Euromicro Conference on Real-Time Systems, pp,.79-86, Catania, Italy, June, 2004
  2. P. Wilson et al., "Dynamic Storage Allocation: A Survey and Critical Review," Technical Report, Department of Computer Science, Univ. of Texas, Austin, 1995
  3. D. Atienze et al., "Dynamic Memory Management Design Methodology for Reduced Memory Footprint in Multimedia and Wireless Network Applications," in Proc. of Design, Automation and Test in Europe, pp.532-537, Acropolis, France, April, 2004.
  4. H. Zhe et al., "Design and Realization of Efficient Memory Management for Embedded Real-Time Application," in Proc. of International Conference on ITS Telecommunications, pp.174-177, Chengdu, China, June, 2006
  5. D. Lea, A memory allocator, Available: http://g.oswego.edu/dl/html/malloc.html
  6. E. Berger, B. Zorn, and K. McKinley, "Reconsidering Custom Memory Allocation," in Proc. of ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications, pp.1-12, Seattle, USA, November, 2002 https://doi.org/10.1145/583854.582421
  7. E. Berger, B. Zorn, and K. McKinley, "Composing High-Performance Memory Allocators," in Proc. of ACM SIGPLAN Conference on Programming Language Design and Implementation, pp.114-124, Snowbird, USA, June, 2001 https://doi.org/10.1145/381694.378821
  8. M. Seidl and B. Zorn, "Segregating Heap Objects by Reference Behavior and Lifetime," in Proc. of International Conference on Architectural Support for Programming Languages and Operating Systems, pp.12-23, San Jose, USA, October, 1998
  9. Delorie software, Available: http://www.delorie.com
  10. RVCT 2.2. Available: http://www.arm.com
  11. M. Tofte and J. Talpin, "Region-Based Memory Management," in Information and Computation, Volume 132, Issue 2, pp. 109-176, February, 1997 https://doi.org/10.1006/inco.1996.2613
  12. Y. Hasan and J. Chang, "A Hybrid Allocator," in Proc. of IEEE International Symposium on Performance Analysis of Systems and Software, pp.214-222, Austin, USA, March, 2003
  13. J. Bonwick, "The Slab Allocator: An Object-Caching Kernel Memory Allocator, " in Proc. of USENIX Technical Conference, pp.87-98, Boston, USA, June, 1994
  14. B. Zorn and D. Grunwald, "Evaluating Models of Memory Allocation," in ACM Transactions on Modeling and Computer Simulation, Volume 4, Issue 1, pp.107-131, January, 1994 https://doi.org/10.1145/174619.174624