Course Overview
This course attempts to answer the following INTERVIEW QUESTIONS :
1. How will you design your own heap Memory Manager?
2. What is the data structure employed for Heap Memory Management?
3. What is the time complexity to allocate memory to a process?
4. How free( ) knows how much memory to free?
5. How to get rid of Memory Fragmentation?
This course is about - "Design and Implement your own Memory Allocation Scheme to address the problem of Memory Fragmentation, see Memory Usage and statistics and Catch Memory Leaks. Talk to your prof and ask to do this project as your Operating Seminar Project".
Do this yet another System Project and Impress the interviewer with your knowledge of System Memory Management.
In this course, we shall design and implement a scheme in the form of a Library that takes the responsibility to allocate & de-allocate memory to your userspace process while taking care of the problems of Heap internal and external fragmentation behind the scenes. We already are familiar with the problem of Heap internal and external fragmentation which grows and magnifies over a period of time when a process is in execution and make much of the part of Heap memory unusable.
Many companies implement this scheme in the industry in userspace itself to get rid of Fragmentation problems and also speed up the mechanism of Memory (de)allocation to a process.
This is a pure coding based course and at every stage of the course, you need to write a code to implement the project.
FAQ
FAQ area empty
Course curriculum
-
What is Page Family & its Registration
236 -
Page Family Data Structures
429 -
Defining Data structures for Page Families Management
236 -
Page Family Instantiation
130 -
Page Family Instantiation Algorithm
275 -
Looping Macro - Iterate over Page Families within a Page
308 -
Page Family Instantiation Algorithm Implementation - step by Step
647 -
Application Integration
433 -
Mandatory Assignment - Write APIs
-
Problem Statement
499 -
Priority Queue of Free Data Blocks
359 -
Introducing Glthreads
258 -
Glthreads Integration
159 -
Data Structure Enhancements For Managing Free Data Blocks
357 -
Priority Queue : Data Block Insertion
365 -
Priority Queue : Other Operations
192 -
Assignment - Other Minor Code changes on Free Data Block Management
-
Final Push - Goals of this Section
85 -
Xmalloc Algorithm Discussion
445 -
Xmalloc Implementation
300 -
Supporting API - mm_allocate_free_data_block
508 -
Theory - Supporting API - mm_split_free_data_block_for_allocation
433 -
Handling Internal Fragmentation
383 -
Implementation - mm_split_free_data_block_for_allocation
826
-
Heap Memory Management - Goals and Introduction
239 -
Malloc() - Quick Revision
529 -
Break Pointer
151 -
Brk and sbrk System Calls
347 -
Malloc Version 1.0
431 -
Problem Statement
219 -
Metablock and Datablock
378 -
Allocations and Deallocations
333 -
Block Splitting
367 -
Block Merging
225 -
Problem of Fragmentation
257
Requirment
-
C programming skills
-
Working with Doubly linked lists
-
Heap Memory management Theory (Covered in this course again)
-
Understanding of Virtual Memory Concepts
-
Enthu and Zeal to lean, love for coding
-
Very Important for Interview perspective
Outcomes
-
Understanding Heap Memory Management
-
How to track the Objects malloc'd by the application
-
Internal Design and implementation of Heap Memory Management
-
Develop own Implementation in C
-
Catch Memory Leaks
-
See Memory Usage and statistics
0 Student
1 Course
0 review