A Reconfigurable Memory Allocation Model for Real-Time Linux System

Real-Time Linux 시스템을 위한 재구성 가능한 메모리 할당 모델

  • Sihm, Jae-Hong (Information Communication, Graduate School of Ajou University) ;
  • Jung, Suk-Yong (Dept.of Information Computer Engineering, Graduate School of Ajou University) ;
  • Kang, Bong-Jik (Dept.of Information Computer Engineering, Graduate School of Ajou University) ;
  • Choi, Kyung-Hee (Information Communication, Graduate School of Ajou University) ;
  • Jung, Gi-Hyun (School of Elcetrical and Electrinics Engineering)
  • 심재홍 (아주대학교 정보통신전문대학원) ;
  • 정석용 (아주대학교 대학원 정보 및 컴퓨터공학부) ;
  • 강봉직 (아주대학교 대학원 정보 및 컴퓨터공학부) ;
  • 최경희 (아주대학교 정보통신전문대학원) ;
  • 정기현 (아주대학교 전기전자공학부)
  • Published : 2001.09.01

Abstract

This paper proposes a memory allocation model for Real-Time Linux. The proposed model allows users to create several continuous memory regions in an application, to specify an appropriate region allocation policy for each memory region, and to request memory blocks from a necessary memory region. Instead of using single memory management module in order to support the proposed model, we adopt two-layered structure that is consisted of region allocators implementing allocation policies and a region manager controlling regions and region allocator modules. This structure separates allocation policy from allocation mechanism, thus allows system developers to implement same allocation policy using different algorithms in case of need. IN addition, it enables them to implement new allocation policy using different algorithms in case of need. In addition, it enables them to implement new allocation policy easily as long as they preserver predefined internal interfaces, to add the implemented policy into the system, and to remove unnecessary allocation policies from the system, Because the proposed model provides various allocation policies implemented previously, system builders can also reconfigure the system by just selecting most appropriate policies for a specific application without implementing these policies from scratch.

본 논문에서는 Real-Time Linux를 위한 메모리 할당 모델을 제안한다. 제안 모델은 사용자로 하여금 하나의 응용에 여러 개의 연속된 메모리 영역들을 생성하고, 각 영역마다 별도의 영역 할당 정책을 설정한 후, 원하는 영역으로부터 필요한 메모리 블록을 할당 받을 수 있게 한다. 이를 위해 기존의 단일 메모리 관리 모듈 대신 할당 정책을 구현한 영역 할당자 모듈과 이를 제어하는 영역 관리자 모듈로 세분한 두 단계 분리 구조를 채택했다. 이 구조는 할당 정책을 할당 메커니즘으로부터 분리함으로써, 시스템 개발자로 하여금 필요한 경우 동일한 할당 정책을 서로 다른 알고리즘을 사용하여 구현할 수 있게 한다. 또한 사전에 정의된 인터페이스를 준수할 경우 새로운 할당 정책을 쉽게 구현해 삽입할 수 있고, 불필요한 정책은 시스템에서 제거할 수도 있다. 제안 모델은 다수개의 할당 정책들을 사전에 구현하여 제공함으로써, 시스템 구축자로 하여금 매번 기존 정책들을 새로이 구현할 필요 없이 제공된 정책들 중 해당 응용에 가장 적합한 정책들만을 선택하여 시스템을 재구성할 수 있게 한다.

Keywords

References

  1. Michael Barabanov, 'A Linux-based Real-Time Operating System,' Master thesis, New Mexico Institute of Mining and Technology, June, 1997
  2. Yu-Chung Wang and Kwei-Jay Lin, 'Implementing a General Real-Time Scheduling Framework in the RED-Linux Real- Time Kernel,' Proc. of 20th IEEE Real-Time Systems Symposium, Dec., 1998 https://doi.org/10.1109/REAL.1999.818850
  3. R. Hil, B. Srinivasan, S. Pather and D. Niehaus, 'Temporal Resolution and Real-Time Extensions to Linux,' Technical Report ITTC-Fy98-TR-11510-03, Department of Electrical Engineering and Computer Sciences,, University of Kansas, June, 1998
  4. 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
  5. 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
  6. 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
  7. 정성무, 유해영, 심재홍, 김하진, 최경희, 정기현, '예측 가능한 실행 시간을 가진 동적 메모리 할당 알고리즘,' 한국정보처리학회논문지, 제7권, 제7호, pp. 2204-2218, Jul., 2000
  8. 정성무, 유해영, 심재홍, 박승규, 최경희, 정기현, '다양한 할당 정책을 지원하는 실시간 동적 메모리 할당 알고리즘,' 한국통신학회논문지, 제25권, 제10B호, pp. 1648-1664, Oct., 2001
  9. 심재홍, '다양한 실시간 스케줄러를 지원하기 위한 커널 구조화 및 재구성 방안,' 공학 박사학위 논문, 아주대학교 대학원 컴퓨터공학과, Feb., 2001
  10. Integrated Systems, pSOSystem Programmer's Reference, pp. 2-17-2-20, 1997
  11. Microtec Division, VRTX User's Guide, Mentor Graphics Corporation, pp. 4-9;4-21, 1998
  12. Charles B.Weinstock, 'Quick Fit : An Efficient Algorithm for Heap Storage Allocation,' SIGPLAN Notices, Vol. 23, No. 10, pp. 141-148, 1988 https://doi.org/10.1145/51607.51619
  13. Doug Lea, Implementation of malloc, See also the short paper on the implementation of this allocator, Avaailable at http://g.oswego.edu.
  14. R. Levin, E. Cohen, W. Corwin, F. Pollack and W. Sulf, 'Policy/Mechanism Separation in HYDRA,' Proc. of Symposium on Operating Systems Principles, Nov., 1975 https://doi.org/10.1145/800213.806531
  15. Thomas Standish, Data Structure Techniques, Addition-Wesley, Reading, Massachusetts, 1980
  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.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
  18. Mark S.Johnstone and Paul R.Wilson, 'The Memory Fragmentation Problem : Solved?,' Proc. of Intn. Symposium on Memory Management, pp. 23-36, 1998 https://doi.org/10.1145/286860.286864
  19. Arun Iyengar, 'Scalability of Dynamic Storage Allocation Algorithms,' Proc. of 6th Symposium on the Frontiers of Massively Parallel Computing, pp. 223-232, 1996 https://doi.org/10.1109/FMPC.1996.558089
  20. 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
  21. David S. Wise, 'Computer Science Department, Indiana University,The Double Buddy-System,' Technical Report 79, Computer Science Department, Indiana University, 1978
  22. 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
  23. 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
  24. Marshall Kirk McKusick and Michael J. Karels, 'Design of a General Purpose Memory Allocator for the 4.3 BSD UNIX Kernel,' Proc. of the San Francisco USENIX Conference, pp. 295-303, June, 1988