Udemy
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
Development
Web Development Data Science Mobile Development Programming Languages Game Development Database Design & Development Software Testing Software Engineering Development Tools No-Code Development
Business
Entrepreneurship Communications Management Sales Business Strategy Operations Project Management Business Law Business Analytics & Intelligence Human Resources Industry E-Commerce Media Real Estate Other Business
Finance & Accounting
Accounting & Bookkeeping Compliance Cryptocurrency & Blockchain Economics Finance Finance Cert & Exam Prep Financial Modeling & Analysis Investing & Trading Money Management Tools Taxes Other Finance & Accounting
IT & Software
IT Certification Network & Security Hardware Operating Systems Other IT & Software
Office Productivity
Microsoft Apple Google SAP Oracle Other Office Productivity
Personal Development
Personal Transformation Personal Productivity Leadership Career Development Parenting & Relationships Happiness Esoteric Practices Religion & Spirituality Personal Brand Building Creativity Influence Self Esteem & Confidence Stress Management Memory & Study Skills Motivation Other Personal Development
Design
Web Design Graphic Design & Illustration Design Tools User Experience Design Game Design Design Thinking 3D & Animation Fashion Design Architectural Design Interior Design Other Design
Marketing
Digital Marketing Search Engine Optimization Social Media Marketing Branding Marketing Fundamentals Marketing Analytics & Automation Public Relations Advertising Video & Mobile Marketing Content Marketing Growth Hacking Affiliate Marketing Product Marketing Other Marketing
Lifestyle
Arts & Crafts Beauty & Makeup Esoteric Practices Food & Beverage Gaming Home Improvement Pet Care & Training Travel Other Lifestyle
Photography & Video
Digital Photography Photography Portrait Photography Photography Tools Commercial Photography Video Design Other Photography & Video
Health & Fitness
Fitness General Health Sports Nutrition Yoga Mental Health Dieting Self Defense Safety & First Aid Dance Meditation Other Health & Fitness
Music
Instruments Music Production Music Fundamentals Vocal Music Techniques Music Software Other Music
Teaching & Academics
Engineering Humanities Math Science Online Education Social Science Language Teacher Training Test Prep Other Teaching & Academics
AWS Certification Microsoft Certification AWS Certified Solutions Architect - Associate AWS Certified Cloud Practitioner CompTIA A+ Cisco CCNA Amazon AWS CompTIA Security+ AWS Certified Developer - Associate
Graphic Design Photoshop Adobe Illustrator Drawing Digital Painting InDesign Character Design Canva Figure Drawing
Life Coach Training Neuro-Linguistic Programming Personal Development Mindfulness Meditation Personal Transformation Life Purpose Emotional Intelligence Neuroscience
Web Development JavaScript React CSS Angular PHP WordPress Node.Js Python
Google Flutter Android Development iOS Development Swift React Native Dart Programming Language Mobile Development Kotlin SwiftUI
Digital Marketing Google Ads (Adwords) Social Media Marketing Google Ads (AdWords) Certification Marketing Strategy Internet Marketing YouTube Marketing Email Marketing Google Analytics
SQL Microsoft Power BI Tableau Business Analysis Business Intelligence MySQL Data Modeling Data Analysis Big Data
Business Fundamentals Entrepreneurship Fundamentals Business Strategy Online Business Business Plan Startup Blogging Freelancing Home Business
Unity Game Development Fundamentals Unreal Engine C# 3D Game Development C++ 2D Game Development Unreal Engine Blueprints Blender
30-Day Money-Back Guarantee
IT & Software Operating Systems Linux

System C Project - Write a Garbage Collector from Scratch

Linux/Windows System Programming - C Project, Heap Memory Leak detection tool, Operating System, Memory Management
Rating: 4.5 out of 54.5 (95 ratings)
1,145 students
Created by Abhishek CSEPracticals, Shiwani Nigam, Ekta Ekta
Last updated 3/2021
English
English [Auto]
30-Day Money-Back Guarantee

What you'll learn

  • Developing a C/C++ Library
  • Integrating a Library with Application
  • How to implement Memory Leak Detector tool
  • How to track the Objects malloc'd by the application
Curated for the Udemy for Business collection

Requirements

  • Good knowledge of C programming knowledge, and Pointers
  • Elementary knowledge of OS Memory Management

Description

I was asked this question in Amazon/Google Interviews :

     1. How would you design a garbage collector for C programs?

     2. If designing a garbage collector was that easy, why we don’t have it integrate with C programming language already ??

Complete this course to get the answers.  :p


This course is a Project-based course and involved coding in C at every stage of the course.

Mention this project on your Resume with all proud.


This is a C Project (open for extension for C++) in which you will learn and write a library that catches the memory leaks, if any, by the application. In this project, I have explained step by step how to design and implement a garbage collector library called MLD (Memory Leak Detector) which when integrated to your application will provide the facility to catch leaked objects and report them. MLD library will be the generic library and has the ability to parse any application's data structures and manipulate them.

The Project is explained in 3 phases.


Note: This is a course that require a little bit of analysis power, beginner students can also learn much from this course that how you can create a program which can parse its own objects and structures. This technique is used to create many other projects out of which one is Memory leak detection.

Advice: Class of Students who needs "spoon-feeding", pls refrain from enrolling in project-based courses.


Key highlights :

  • Since the advent of C/C++ Programming language, Memory management is one of the responsibilities which the developer has to deal with

  • C/C++ Softwares often suffers from Two Memory related Problems :

    • Memory corruption

    • Memory leak

  • Unlike Java, C/C++ does not have the luxury for automatic garbage collection

  • Java does not allow programmer to access the physical memory directly, but C/C++ does, not does java expose pointers directly to the developer/coder. Therefore Java applications do not suffer from Memory corruption either, but C/C++ does

  • In this course, we will design and implement Memory Leak Detector (MLD) tool for C programs, easily extensible to C++ as well


Some Students have requested to provide a formal description of this project. For Students who want to mention this project in their resume, or doing this project as their OS project - you can mention the following title and abstract of this project as below :


Title:  "Design and Implementation of Java-like Garbage Collector for C Programs".
In this project, we try to implement a garbage collector for C programs which work on the principle of reachability of objects to detect memory leaks. Through this project, we understand the limitation of such a garbage collector for C like programming languages (which have direct access to underlying memory addresses, unlike Java/python) and analyze its limitations and cost for being an inbuilt feature of C-like language.


Who this course is for:

  • College Grads, Programmers
  • Working Professional
  • System Programmers
  • Those looking for real world interesting C/C++ projects

Course content

8 sections • 43 lectures • 3h 35m total length

  • Preview03:15
  • Join Telegram Group
    00:13
  • Preview01:46

  • Preview02:27
  • Preview06:00
  • Project Development Phases
    02:38

  • Phase 1 Goals
    01:58
  • Structure Registration
    01:23
  • Modelling Structure Database
    05:09
  • Structure Registration Example
    07:09
  • Test your C Skills
    2 questions
  • Code Walk Part 1
    08:29
  • Code Walk Part 2
    11:21
  • Project Phase 1 Demonstration
    04:25
  • Summary
    01:12
  • Assignment
    1 question

  • Phase 2 Goals
    02:18
  • Object Database Modelling
    06:16
  • Object DB and Xcalloc example
    03:54
  • Code Walk - Demo
    07:45
  • Summary
    02:14
  • Coding Exercise
    2 questions

  • Phase 3 Goals
    03:08
  • Disjoint set of graphs
    03:36
  • Reachable and Leaked Objects
    04:08
  • Directed Cyclic Graphs
    07:10
  • Root Objects Management
    09:07
  • Root Objects Mgmt APIs - Code Walk
    05:10
  • MLD Algorithm - Getting Ready
    03:29
  • MLD Algorithm In Action
    07:40
  • MLD Algorithm Discussion - Level 1
    06:01
  • MLD Algorithm Discussion - Level 2
    08:16
  • Enhancement - Support for Primitive Objects
    08:06
  • Final Demo !
    09:41
  • Assignment
    2 questions

  • Project Analysis
    02:58
  • MLD Library Limitation - Case 1
    04:38
  • MLD Library Limitation - Case 2
    05:01
  • MLD Library Limitation - Case 3
    04:44
  • MLD Library Limitation - Case 4
    01:42
  • Conclusion
    03:43

  • Introducing Makefile
    05:08
  • Makefile Analogy - Dependency Tree
    05:35
  • Makefile Assignmnet - Part1
    05:41
  • Makefile Assignmnet - Part2
    11:15
  • Final Makefile
    08:02

  • Bonus Lecture
    01:16

Instructors

Abhishek CSEPracticals
I build Networks !
Abhishek CSEPracticals
  • 4.4 Instructor Rating
  • 1,706 Reviews
  • 15,279 Students
  • 14 Courses

I have been engaged with coding and software for more than 8 years. I am a Networking developer at MNC. My rich working experience is backed by graduation from IIT Bombay as an MTech specialist. I am restless for more in-depth knowledge, and always working out the ways to integrate what I know in practical ways. I am always happy to train and encourage people on Udemy – the next-gen education platform.

I will help you to strengthen the networking concepts and fundamentals in a very practical way. You’ll complete assignments and work on a project where you’ll use all the theory provided by me. I make sure you build a proper understanding and that you’ll get all the questions explained. Let me take the privilege to guide you and bring useful additions to your resume!

Shiwani Nigam
Digital Marketing Executive
Shiwani Nigam
  • 4.4 Instructor Rating
  • 1,706 Reviews
  • 16,559 Students
  • 14 Courses

Hi, Myself Shivani Nigam, PhD in Marketing. I expertise in researching the consumer behavior in the context of purchasing the products online. I take the responsibility of marketing the online content (Udemy courses) on this platform.

I also ensure the courses are delivered with perfect Audio/Video Quality by technical Instructors, and ensures that students queries and doubts are addressed by technical instructors with priority.

Ekta Ekta
Facilities Manager
Ekta Ekta
  • 4.4 Instructor Rating
  • 1,706 Reviews
  • 15,279 Students
  • 14 Courses

Hi, I am Ekta, a facility Manager for Csepracticals. I am responsible for the maintenance and upkeep of an organization’s infrastructure, ensuring that they meet legal requirements and health and safety standards.

I ensure that the facility is operating as it should on a daily basis by completing daily inspections and conducting proactive and reactive maintenance.

  • Udemy for Business
  • Teach on Udemy
  • Get the app
  • About us
  • Contact us
  • Careers
  • Blog
  • Help and Support
  • Affiliate
  • Impressum Kontakt
  • Terms
  • Privacy policy
  • Cookie settings
  • Sitemap
  • Featured courses
Udemy
© 2021 Udemy, Inc.