• Title/Summary/Keyword: Memory Fragmentation

Search Result 29, Processing Time 0.025 seconds

Improving Memory Efficiency of Dynamic Memory Allocators for Real-Time Embedded Systems

  • Lee, Jung-Hee;Yi, Joon-Hwan
    • ETRI Journal
    • /
    • v.33 no.2
    • /
    • pp.230-239
    • /
    • 2011
  • Dynamic memory allocators for real-time embedded systems need to fulfill three fundamental requirements: bounded worst-case execution time, fast average execution time, and minimal fragmentation. Since embedded systems generally run continuously during their whole lifetime, fragmentation is one of the most important factors in designing the memory allocator. This paper focuses on minimizing fragmentation while other requirements are still satisfied. To minimize fragmentation, a part of a memory region is segregated by the proposed budgeting method that exploits the memory profile of the given application. The budgeting method can be applied for any existing memory allocators. Experimental results show that the memory efficiency of allocators can be improved by up to 18.85% by using the budgeting method. Its worst-case execution time is analyzed to be bounded.

Fixed-Length Allocation and Deallocation of Memory for Embedded Java Virtual Machine (임베디드 자바가상기계를 위한 고정 크기 메모리 할당 및 해제)

  • 양희재
    • Proceedings of the IEEK Conference
    • /
    • 2003.07d
    • /
    • pp.1335-1338
    • /
    • 2003
  • Fixed-size memory allocation is one of the most promising way to avoid external fragmentation in dynamic memory allocation problem. This paper presents an experimental result of applying the fixed- size memory allocation strategy to Java virtual machine for embedded system. The result says that although this strategy induces another memory utilization problem caused by internal fragmentation, the effect is not very considerable and this strategy is well-suited for embedded Java system. The experiment has been performed in a real embedded Java system called the simpleRTJ.

  • PDF

An Extended-Weighted Buddy System for an Object-Oriented Computer (객체지향 컴퓨터를 위한 확장-가중치 버디 시스템)

  • Kim, Kwan-Joong;Kim, Byung-Gi
    • The Transactions of the Korea Information Processing Society
    • /
    • v.4 no.6
    • /
    • pp.1625-1635
    • /
    • 1997
  • An extension of the weighted buddy system, called the extended-weighted buddy system, for dynamic memory allocation in an object-oriented computer is presented. The extended-weighted buddy system allows block sizes of $2^k,\;3*2^k,\;5*2^k,\;7*2^k$, whereas the original weighted buddy system allowed block sizes of $2^k\;and\;3*2^k$. This extension is achieved at only the cost of additional 3 bits per block for memory management unit. Simulation results are presented which compare our method with the weighted buddy system. These results indicate that, for uniform request distributions, our system has less internal memory fragmentation than the weighted buddy system(approximately 60%). And, for exponential request distributions, it has less internal memory fragmentation than the weighted buddy method (approximately 50%). The external fragmentation is greater for this system than the weighted buddy system. But, our system has less total memory fragmentation for exponential request distributions, and two systems take a similar total memory fragmentation for uniform request distributions, so we can substitutes the extended-weighted buddy system for weighted buddy system.

  • PDF

Budgeted Memory Allocator for Embedded Systems (내장형 시스템을 위한 Budgeted 메모리 할당기)

  • Lee, Jung-Hee;Yi, Joon-Hwan
    • Journal of the Institute of Electronics Engineers of Korea SC
    • /
    • v.45 no.2
    • /
    • pp.61-70
    • /
    • 2008
  • 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.

Real-time Garbage Collection Algorithm for Efficient Memory Utilization in Embedded Device (내장형 장비용 자바 가상 기계에서의 실시간 쓰레기 수집기 알고리즘에 관한 연구)

  • Choi, Won-Young;Park, Jae-Hyun
    • Proceedings of the KIEE Conference
    • /
    • 1998.11b
    • /
    • pp.672-674
    • /
    • 1998
  • Java virtual machine has the garbage collector that automate memory management. Mark-compact algorithm is one of the garbage collection algorithm that operating in 2 phases, marking and sweeping. One is Marking is marking live objects reachable from root object set. Sweeping is sweeping unmarked object from memory(return to free memory pool). This algorithm is easy to implement but cause a memory fragmentation. So compacting memory, before memory defragmentation become serious. When compacting memory, all other processes are suspended. It is critical for embedded system that must guarantee real-time processing. This paper introduce enhanced mark-compact garbage collection algorithm. Grouping the objects by their size that minimize memory fragmentation. Then apply smart algorithm to the grouped objects when allocating objects and compacting memory.

  • PDF

Automatic Dynamic Memory Management Techniques for Memory Scarce Java system (메모리가 적은 자바 시스템을 위한 자동 동적 메모리 관리 기법)

  • Choi, Hyung-Kyu;Moon, Soo-Mook
    • Journal of KIISE:Computer Systems and Theory
    • /
    • v.35 no.8
    • /
    • pp.378-384
    • /
    • 2008
  • Many embedded systems are supporting Java as their software platform via Java virtual machine. Java virtual machine manages memory automatically by providing automatic memory management, i.e. garbage collector. Because only scarce memory is available to embedded system, Java virtual machine should use small memory and manage it efficiently. This paper introduces two memory management techniques to exploit small memory in Java virtual machine which can execute multiple Java applications concurrently. First, compaction based garbage collection is introduced to overcome external fragmentation problem in presence of immovable memory area. Then garbage collector driven class unloading is introduced to reduce memory use of unnecessary loaded classes. We implemented these techniques in working embedded system and observed that they are very efficient, since more Java applications are able to be executed concurrently and memory use is also reduced with these techniques.

Java Garbage Collection in CLDC (CLDC에서 자바 가비지 콜렉션)

  • Kwon, He-Eun;Kim, Sang-Hoon
    • The Journal of Information Technology
    • /
    • v.5 no.2
    • /
    • pp.27-34
    • /
    • 2002
  • The KVM garbage collector implemented in CLDC was generally based on the simple mark-sweep algorithm, but it is difficult to handle objects of varying size without fragmentation of the available memory. In this paper, we have designed and implemented a memory allocator based on the mark-sweep algorithm that minimizes the fragmentation by the method that determines the allocation position of free-space list according to object size. The experimental result shows that our algorithm reduce the fragmentation and improve the execution time than the existing algorithm.

  • PDF

Fixed Size Memory Pool Management Method for Mobile Game Servers (모바일 게임 서버를 위한 고정크기 메모리 풀 관리 방법)

  • Park, Seyoung;Choi, Jongsun;Choi, Jaeyoung;Kim, Eunhoe
    • KIPS Transactions on Computer and Communication Systems
    • /
    • v.4 no.9
    • /
    • pp.327-336
    • /
    • 2015
  • Mobile game servers usually execute frequent dynamic memory allocation for generating the buffers that deal with clients requests. It causes to deteriorate the performance of game servers since it increases system workload and memory fragmentation. In this paper, we propose fixed-sized memory pool management method. Memory pool for the proposed method has a sequential memory structure based on circular linked list data structure. It solves memory fragmentation problem and saves time for searching the memory blocks which are required for memory allocation and deallocation. We showed the efficiency of the proposed method by evaluating the performance of dynamic memory allocation, through the proposed method and the memory pool management method based on boost open source library.

Quick Semi-Buddy Scheme for Dynamic Storage Allocation in Real-Time Systems (실시간 시스템에서의 동적 스토리지 할당을 위한 빠른 수정 이진 버디 기법)

  • 이영재;추현승;윤희용
    • Journal of the Korea Society for Simulation
    • /
    • v.11 no.3
    • /
    • pp.23-34
    • /
    • 2002
  • Dynamic storage allocation (DSA) is a field fairly well studied for a long time as a basic problem of system software area. Due to memory fragmentation problem of DSA and its unpredictable worst case execution time, real-time system designers have believed that DSA may not be promising for real-time application service. Recently, the need for an efficient DSA algorithm is widely discussed and the algorithm is considered to be very important in the real-time system. This paper proposes an efficient DSA algorithm called QSB (quick semi-buddy) which is designed to be suitable for real-time environment. QSB scheme effectively maintains free lists based on quick-fit approach to quickly accommodate small and frequent memory requests, and the other free lists devised with adaptation upon a typical binary buddy mechanism for bigger requests in harmony for the .improved performance. Comprehensive simulation results show that the proposed scheme outperforms QHF which is known to be effective in terms of memory fragmentation up to about 16%. Furthermore, the memory allocation failure ratio is significantly decreased and the worst case execution time is predictable.

  • PDF

XML Fragmentation for Resource-Efficient Query Processing over XML Fragment Stream (자원 효율적인 XML 조각 스트림 질의 처리를 위한 XML 분할)

  • Kim, Jin;Kang, Hyun-Chul
    • The KIPS Transactions:PartD
    • /
    • v.16D no.1
    • /
    • pp.27-42
    • /
    • 2009
  • In realizing ubiquitous computing, techniques of efficiently using the limited resource at client such as mobile devices are required. With a mobile device with limited amount of memory, the techniques of XML stream query processing should be employed to process queries over a large volume of XML data. Recently, several techniques were proposed which fragment XML documents into XML fragments and stream them for query processing at client. During query processing, there could be great difference in resource usage (query processing time and memory usage) depending on how the source XML documents are fragmented. As such, an efficient fragmentation technique is needed. In this paper, we propose an XML fragmentation technique whereby resource efficiency in query processing at client could be enhanced. For this, we first present a cost model of query processing over XML fragment stream. Then, we propose an algorithm for resource-efficient XML fragmentation. Through implementation and experiments, we showed that our fragmentation technique outperformed previous techniques both in processing time and memory usage. The contribution of this paper is to have made the techniques of query processing over XML fragment stream more feasible for practical use.