• Title/Summary/Keyword: Memory allocator

Search Result 13, Processing Time 0.026 seconds

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.

Object-Size and Call-Site Tracing based Shared Memory Allocator for False Sharing Reduction in DSM Systems (분산 공유 메모리 시스템에서 거짓 공유를 줄이는 객체-크기 및 호출지-추적 기반 공유 메모리 할당 기법)

  • Lee, Jong-Woo;Park, Young-Ho;Yoon, Yong-Ik
    • Journal of Digital Contents Society
    • /
    • v.9 no.1
    • /
    • pp.77-86
    • /
    • 2008
  • False sharing is a result of co-location of unrelated data in the same unit of memory coherency, and is one source of unnecessary overhead being of no help to keep the memory coherency in multiprocessor systems. Moreover, the damage caused by false sharing becomes large in proportion to the granularity of memory coherency. To reduce false sharing in page-based DSM systems, it is necessary to allocate unrelated data objects that have different access patterns into the separate shared pages. In this paper we propose sized and call-site tracing-based shared memory allocator, shortly SCSTallocator. SCSTallocator places each data object requested from the different call-sites into the separate shared pages, and at the same time places each data object that has different size into different shared pages. Consequently data objects that have the different call-site and different object size prohibited from being allocated to the same shared page. Our observations show that our SCSTallocator outperforms the existing dynamic shared memory allocators. By combining the two existing allocation technique, we can reduce a considerable amount of false sharing misses.

  • PDF

A Smart Slab Allocator for Wireless Sensor Operating Systems (무선 센서 운영체제를 위한 지능형 슬랩 할당기)

  • Min, Hong;Yi, Sang-Ho;Heo, Jun-Young;Kim, Seok-Hyun;Cho, Yoo-Kun;Hong, Ji-Man
    • Journal of KIISE:Computing Practices and Letters
    • /
    • v.14 no.7
    • /
    • pp.708-712
    • /
    • 2008
  • Existing dynamic memory allocation schemes for general purpose operating system can not directly apply to the wireless sensor networks (WSNs). Because these schemes did not consider features of WSNs, they consume a lot of energy and waste the memory space caused by fragmentation. In this paper, we found features of WSNs applications and made the model which adapts these issues. Through this research, we suggest the slab allocator that reduces the execution time and the memory management space. Also, we evaluate the performance of our scheme by comparing to one of the previous systems.

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.

Reducing False Sharing based on Memory Reference Patterns in Distributed Shared Memory Systems (분산 공유 메모리 시스템에서 메모리 참조 패턴에 근거한 거짓 공유 감속 기법)

  • Jo, Seong-Je
    • The Transactions of the Korea Information Processing Society
    • /
    • v.7 no.4
    • /
    • pp.1082-1091
    • /
    • 2000
  • In Distributed Shared Memory systems, false sharing occurs when two different data items, not shared but accessed by two different processors, are allocated to a single block and is an important factor in degrading system performance. The paper first analyzes shared memory allocation and reference patterns in parallel applications that allocate memory for shared data objects using a dynamic memory allocator. The shared objects are sequentially allocated and generally show different reference patterns. If the objects with the same size are requested successively as many times as the number of processors, each object is referenced by only a particular processor. If the objects with the same size are requested successively much more than the number of processors, two or more successive objects are referenced by only particular processors. On the basis of these analyses, we propose a memory allocation scheme which allocates each object requested by different processors to different pages and evaluate the existing memory allocation techniques for reducing false sharing faults. Our allocation scheme reduces a considerable amount of false sharing faults for some applications with a little additional memory space.

  • PDF

Call-Site Tracing-based Shared Memory Allocator for False Sharing Reduction in DSM Systems (분산 공유 메모리 시스템에서 거짓 공유를 줄이는 호출지 추적 기반 공유 메모리 할당 기법)

  • Lee, Jong-Woo
    • Journal of KIISE:Computer Systems and Theory
    • /
    • v.32 no.7
    • /
    • pp.349-358
    • /
    • 2005
  • False sharing is a result of co-location of unrelated data in the same unit of memory coherency, and is one source of unnecessary overhead being of no help to keep the memory coherency in multiprocessor systems. Moreover. the damage caused by false sharing becomes large in proportion to the granularity of memory coherency. To reduce false sharing in a page-based DSM system, it is necessary to allocate unrelated data objects that have different access patterns into the separate shared pages. In this paper we propose call-site tracing-based shared memory allocator. shortly CSTallocator. CSTallocator expects that the data objects requested from the different call-sites may have different access patterns in the future. So CSTailocator places each data object requested from the different call-sites into the separate shared pages, and consequently data objects that have the same call-site are likely to get together into the same shared pages. We use execution-driven simulation of real parallel applications to evaluate the effectiveness of our CSTallocator. Our observations show that by using CSTallocator a considerable amount of false sharing misses can be additionally reduced in comparison with the existing 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

Design and Implementation of Efficient Memory Allocator using Contiguous Allocation Scheme (연속할당 기법을 이용한 효과적인 lock-free 메모리 할당자 설계 및 구현)

  • Kim, In-Hyuk;Kim, Tae-Hyoung;Eom, Young-Ik
    • Proceedings of the Korean Information Science Society Conference
    • /
    • 2011.06a
    • /
    • pp.559-561
    • /
    • 2011
  • 멀티코어 환경에서는 공유 데이터에 대한 동기화로 인한 병목 현상이 중요한 문제점 중의 하나이다. 그리고 동적 메모리 할당자는 대량의 메모리를 할당 및 해제하는 프로그램에서 공유 데이터에 대한 동기화 문제로 성능 저하를 유발시키고 있다. 이를 해결하기 위해 다양한 lock-free 메모리 할당 기법들이 소개되었지만 false sharing과 heap blow-up과 같은 여러 가지 문제점들을 가지고 있다. 이에 본 논문에서는 새로운 연속할당 기법을 제안하고, 이를 이용하여 동일 블록 내의 오브젝트 할당/해제에 따른 동기화 문제를 해결함으로써 효과적인 lock-free 메모리 할당 기법을 제안하였다. 그리고 제안 기법을 구현하여 기존의 메모리 할당 기법들과 실험을 통하여 검증하였으며, 대량의 메모리를 사용하는 멀티 스레드 환경에서 특히 좋은 성능을 보이는 것을 확인하였다.

Enhanced Memory Allocator for Scalability Improvement On Multicore (멀티코어 환경에서의 확장성 향상을 위한 메모리 할당자)

  • Cho, Youngjoong;Kim, Inhyuk;Eom, Young Ik
    • Proceedings of the Korea Information Processing Society Conference
    • /
    • 2013.05a
    • /
    • pp.164-165
    • /
    • 2013
  • 멀티프로세서에서 시스템의 병렬성을 향상시키기 위해서 멀티스레드 프로그램을 이용한다. 이러한 멀티스레드 프로그램은 스레드간 역할을 분담하여 작업을 진행하게 된다. 멀티스레드 프로그램에는 생산자-소비자 구조가 있다. 기존 메모리할당자들은 생산자-소비자 구조에 대한 연구가 진행되지 않고, 크리티컬 섹션이 긴 락을 사용하여 성능상에 문제가 있다. 우리는 이러한 문제점을 독특한 메모리 해제 방법을 통해 해결하였고, 실험을 통해 메모리 할당자의 속도가 향상되는 것을 검증하였다.

CMA 인식을 통한 메모리 안전성 강화 연구

  • Hong, Junwha;Park, Chanmin;Jeong, Seongyun;Min, Jiun;Yu, Dongyeon;Kwon, Yonghwi;Jeon, Yuseok
    • Review of KIISC
    • /
    • v.32 no.4
    • /
    • pp.61-69
    • /
    • 2022
  • C/C++에는 다수의 메모리 취약점이 존재하며 ASan은 낮은 오버헤드와 높은 탐지율로 이러한 메모리 취약점을 탐지하기 위해 광범위하게 사용되고 있다. 그러나 상용 프로그램 중 다수는 메모리를 효율적으로 사용하기 위해 Custom Memory Allocator(CMA)를 구현하여 사용하며, ASan은 이러한 CMA로부터 파생된 버그를 대부분 탐지하지 못한다. 이를 극복하기 위해 본 연구에서는 LLVM IR 코드를 RNN 신경망에 학습하여 CMA를 탐지하고, ASan이 CMA를 식별할 수 있도록 수정하여 CMA로부터 파생된 메모리 취약점을 탐지할 수 있는 도구인 CMASan을 제안한다. ASan과 CMASan의 성능 및 CMA 관련 취약점의 탐지 결과를 비교·분석하여 CMASan이 낮은 실행시간 및 적은 메모리 오버헤드로 ASan이 탐지하지 못하는 메모리 취약점을 탐지할 수 있음을 확인하였다.