Abstract

Memory fragmentation is the development of a large number of separate free areas. Memory management in embedded systems demand effective implementation schemes to avoid fragmentation problem. Existing dynamic memory allocation methods fail to suit real time system requirements. Execution times need to be deterministic and this motivates the need for allocation and deallocation to be done in constant time with the help of API’s. In I¼C/OS-II, memory allocation is semi-dynamic and a buddy allocator dynamic memory allocation algorithm is commonly used. Programmer must statically allocate a memory and partition the region using I¼C/OS-II Kernel API. Tasks can only request pre-partitioned fixed-size memory space from I¼C/OS-II. Memory allocation times are influenced by the ratio of memory allocation to the stack size of the task. In this research work memory management in LPC 1768 environment using RTOS I¼C/OS-II is proposed. Effective sharing of memory blocks among tasks co exists with partition. The captured results shows that the memory allocation and deallocation suits real time. The implication of the work is that, the necessity to reserve a static set of locations ahead of time is eliminated so that memory can be allocated at compile or design time.

Highlights

  • MethodsMalloc() and free() is dangerous in embedded realtime system as inability to obtain a single contiguous memory area due to fragmentation can be fatal (Krishnaveni and Sivakumar, 2013)”

  • Allocation and deallocation of these memory blocks is done in constant time and is deterministic. μC/OS-II controls the partitions with memory control blocks

  • The results shows that memory allocation is done in real time

Read more

Summary

Methods

Malloc() and free() is dangerous in embedded realtime system as inability to obtain a single contiguous memory area due to fragmentation can be fatal (Krishnaveni and Sivakumar, 2013)”. Execution time of malloc() and free() are nondeterministic. When using dynamic memory allocation de-fragmentation of memory will be required, but that can be time consuming. To avoid the above issues, all the memory allocations have to be done initially in the program, so that there is no uncertainty about the availability of memory during runtime. All memory blocks are the same size and the partition contains an integral number of blocks. Allocation and deallocation of these memory blocks is done in constant time and is deterministic. ΜC/OS-II controls the partitions with memory control blocks Allocation and deallocation of these memory blocks is done in constant time and is deterministic. μC/OS-II controls the partitions with memory control blocks

Results
Discussion
Conclusion
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call