kidney
kidney
Submitted By
(Banoth.Sujith)
(133613)
Under the Guidance of
(Dr. Rajeev Sharma)
Academic Year: 2023-24
Abstract:
Memory management is an important part of modern computer system. Dynamic Memory
Allocation has plays very important role in Memory Management and becomes fundamental
part of today’s computer system. It is classical problem in computer science by paying some
complexity. It is minimizing the cost of memory by providing efficient use of it and it is art of
handling computer memory powerfully. Memory Management is commonly one of the most
critical parts of Operating System, especially the main memory. In this paper, we will
describe the role of Dynamic Memory allocation in Memory Management, comparison with
static memory allocation, and issues with using DMA.
Keywords: DMA: Dynamic Memory Allocation, MM: Memory Management, DMM:
Dynamic Memory Management, OS: Operating System. CPU: Central Processing Unit.
Research Methodology:
1. Literature Review:
Based on your literature review, narrow down your research focus within DMA. This could
be:
o Performance Analysis: Compare different allocation strategies (e.g., Buddy System vs. Free
List) and their impact on memory access times and overall program performance.
o Memory Leak Detection and Prevention: Investigate existing memory leak detection tools
or develop new techniques to identify and prevent memory leaks in programs using DMA.
o DMA for Specific Programming Paradigms: Research how DMA can be effectively
utilized in specific programming paradigms like functional programming or object-oriented
programming.
3. Research Methods:
The chosen research method will dictate your data collection approach.
For analytical and simulation methods, data might involve memory access times,
fragmentation levels, and program execution times.
For empirical studies, data could be performance metrics like memory usage,
allocation/deallocation overhead, and program execution time.
Evaluate the effectiveness of your chosen DMA approach based on your research findings.
Document your findings, limitations, and potential for future research avenues.
Consider refining your research questions or methods based on the insights gained during the
research process
Learning Outcomes:
Conceptual Understanding:
Explain the core concepts of DMA, including its advantages and disadvantages compared to
static memory allocation.
Describe the role of pointers in accessing dynamically allocated memory.
Identify the different allocation functions (e.g., malloc, calloc) and their functionalities.
Understand the purpose of deallocation functions (e.g., free) and their importance in
preventing memory leaks.
Grasp the concept of memory fragmentation and its impact on program performance.
Technical Skills:
Implement code to allocate and deallocate memory dynamically using appropriate functions.
Write code to manage memory for different data structures (e.g., arrays, linked lists) using
DMA.
Debug memory-related errors such as memory leaks and dangling pointers.
Analyze the memory usage of a program that utilizes DMA.
Apply DMA techniques to solve problems requiring dynamic data structures or variable-sized
memory allocation.
Develop strategies to optimize memory usage and minimize memory fragmentation.
Understand best practices for writing memory-safe code using DMA, including proper
initialization and deallocation.
Evaluate the trade-offs between flexibility and complexity when choosing between static and
dynamic memory allocation.
Compare and contrast different memory allocation algorithms (e.g., Buddy System
vs. Free List).
Analyze the impact of hardware architecture (cache size, memory hierarchy) on DMA
performance.
Explore memory management techniques in specific programming languages related to
DMA.
Investigate tools for memory leak detection and prevention in programs using DMA.
By achieving these learning outcomes, students will gain a solid foundation in dynamic
memory allocation, enabling them to write more efficient, flexible, and memory-safe
programs.
References:-
Dipti Diwase, Shraddha Shah, Tushar Diwase, Priya Rathod.
(2012). Survey Report on Memory Allocation Strategies for
Real Time Operating System in Context with Embedded
Devices. IJERA Internet Computing [Online]. 2(3), pp. 1151-
1156. Available
M. Masmano, I. Ripoll, A. Crispo Dynamic Storage Allocation
for real time embedded systems Universidad politecnica de
Valencia, Spain.
Manish Mehta, David J. DeWitt Dynamic Memory Allocation
for Multiple-Query Workloads Computer Science Department,
University of Wisconsin-Madison.
Krishna M. Kavi, Merhan Rezaei, Ron Cytron An Efficient
Memory Management Technique That Improves Localities
University of Alabama in Huntsville and Washington
University in Saint Louis.
s