A Dynamic Storage Allocation Algorithm with Predictable Execution Time

예측 가능한 실행 시간을 가진 동적 메모리 할당 알고리즘

  • 정성무 (아주대학교 대학원 컴퓨터공학과) ;
  • 유해영 (단국대학교 전산통계학과) ;
  • 심재홍 (아주대학교 대학원 컴퓨터공학과) ;
  • 김하진 (아주대학교 정보 및 컴퓨터공학부) ;
  • 최경희 (아주대학교 정보 및 컴퓨터공학부) ;
  • 정기현 (아주대학교 전기전자공학부)
  • Published : 2000.07.01

Abstract

This paper proposes a dynamic storage allocation algorithm, QHF(quick-half-fit) for real-time systems. The proposed algorithm manages a free block list per each worked size for memory requests of small size, and a free block list per each power of 2 size for memory requests of large size. This algorithms uses the exact-fit policy for small sie requests and provides high memory utilization. The proposed algorithm also has the time complexity O(I) and enables us to easily estimate the worst case execution time (WCET). In order to confirm efficiency of the proposed algorithm, we compare he memory utilization of proposed algorithm with that of half-fit and binary buddy system that have also time complexity O(I). The simulation result shows that the proposed algorithm guarantees the constant WCET regardless of the system memory size and provides lower fragmentation ratio and allocation failure ratio thant other two algorithms.

Keywords

References

  1. Takeshi Ogasawara, 'An Algorithm with Constant Execution Time for Dynamic Storage Allocation,' Proc. of 2nd Intn. Workshop on Real-Time Computing Systems and Applications, pp.21-25, 1995 https://doi.org/10.1109/RTCSA.1995.528746
  2. Kelvin D. Nilsen and Hong Gao, 'The Real-Time Behavior of Dynamic Memory Management in C++,' Proc. of Real-Time Technology and Application Symposium, pp.142-153, 1995 https://doi.org/10.1109/RTTAS.1995.516211
  3. Ray Ford, 'Concurrent Algorithms for Real-Time Memory Management,' IEEE Software, Vol.5, Issue 5, pp.10-23, 1988 https://doi.org/10.1109/52.7940
  4. Doug Smith, 'Ada Quality and Style : Guidelines for Professional Programmers, Version 02.01.01,' Technical Report SPC-91061-CMC, Software Productivity Consortium, Inc., 1992
  5. David B. Stewart, R. A. Volpe, and Pradeep K. Khosla, 'Design of Dynamically Reconfigurable Real-Time Software Using Port-Based Objects,' IEEE Transactions on Software Engineering, Vol. 23, No.12, pp.759-776, 1997 https://doi.org/10.1109/32.637390
  6. Arun Iyengar, 'Parallel Dynamic Storage Allocation Algorithms,' Proc. of 5th IEEE Symposium on Parallel and Distributed Processing, pp.82-91, 1993 https://doi.org/10.1109/SPDP.1993.395547
  7. Arun Iyengar, 'Scalability of Dynamic Storage Allocation Algorithms,' Proc. of 6th Symposium on the Frontiers of Massively Parallel Computing, pp. 223-232, 1996
  8. Paul R. Wilson, Mark S. Johnstone, Michael Neely, and David Boles, 'Dynamic Storage Allocation : A Survey and Critical Review,' Proc. of Intn. Workshop on Memory Management, pp.1-126, 1995
  9. Mark S. Johnstone and Paul R. Wilson, 'The Memory Fragmentation Problem: Solved?,' Proc. of Intn. Symposium on Memory Management, pp. 26-36, 1998 https://doi.org/10.1145/286860.286864
  10. Charles B. Weinstock, 'Dynamic Storage Allocation Techniques,' Ph.D. thesis, Carnegie Mellon University, Pittsburgh, Pennsylvania, 1976
  11. Charles B. Weinstock, 'Quick Fit : An Efficient Algorithm for Heap Storage Allocation,' SIGPLAN Notices, Vol.23, No.10, pp.l41-148, 1988 https://doi.org/10.1145/51607.51619
  12. Doug Lea, Implementation of malloc, See also the short paper on the implementation of this allocator, Available at http://g.oswego.edu
  13. Donald E. Knuth, The Art of Computer Programming, Volume1 : Fundamental Algorithms, Addition-Wesley, Reading, Massachusetts, 1973
  14. C. Bay, 'A Comparison of Next-fit, First-fit, and Best-fit,' Communications of the ACM, Vol.20, No. 3, pp.191-192, 1977 https://doi.org/10.1145/359436.359453
  15. Kenneth C. Knowlton, 'A Fast Storage Allocator,' Communications of the ACM, Vol.8, No.10, pp. 623-625, 1965 https://doi.org/10.1145/365628.365655
  16. J. L. Peterson and T. A. Norman, 'Buddy Systems,' Communications of the ACM, Vol.20, No.6, pp. 421-431, 1977 https://doi.org/10.1145/359605.359626
  17. J. S. Fenton and D. W. Payne, 'Dynamic Storage Allocation of Arbitrary Sized Segments,' Proc. of IEIPS, pp.344-348, 1974
  18. Thomas Standish, Data Structure Techniques, Addition-Wesley, Reading, Massachusetts, 1980
  19. C. J. Stephon, 'Fast Fits : New Method for Dynamic Storage Allocation,' Proc. of the 9th Symposium on Operating Systems Principles, pp.30-32, 1983. Also published as Operating Systems Review, Vol. 17, No.5, 1983 https://doi.org/10.1145/800217.806613
  20. R. P. Brent, 'Efficient Implementation of the First Fit Strategy for Dynamic Storage Allocation,' ACM Transactions on Programming Languages and Systems, Vol. 11, No.3, pp.388-403, 1989 https://doi.org/10.1145/65979.65981
  21. G. Bozman, 'The Software Lookaside Buffer Reduces Search Overhead with Linked Lists,' Communications of the ACM, Vol.27, No.3, pp.222-227, 1984 https://doi.org/10.1145/357994.358020
  22. R. R. Oldehoeft and S. J. Allan, 'Adaptive Exact-Fit Storage Management,' Communications of the ACM, Vol.28, No.5, pp.506-5l1, 1985 https://doi.org/10.1145/3532.3536
  23. D. Grunwald and B. Zorn, 'CustoMalloc : Efficient Synthesized Memory Allocators,' Software Practice and Experience, Vol.23, No.8, pp.851-869, 1993 https://doi.org/10.1002/spe.4380230804
  24. D. S. Hirschberg, 'A Class of Dynamic Memory Allocation Algorithms,' Communications of the ACM, Vol.16, No.10, pp.615-618, 1973 https://doi.org/10.1145/362375.362392
  25. K. K. Shen and J. L. Peterson, 'A Weighted Buddy Method for Dynamic Storage Allocation,' Communications of the ACM, Vol.17, No.10, pp.558-562, 1974 https://doi.org/10.1145/355620.361164
  26. David S. Wise, 'The Double Buddy-System,' Technical Report 79, Computer Science Department, Indiana University, Bloomington, Indiana, 1978
  27. J. E. Shore, 'Anomalous Behavior of the Fifty-percent Rule in Dynamic Memory Allocation,' Communications of the ACM, Vol.20, No.11, pp. 812-820, 1977 https://doi.org/10.1145/359863.359880