آموزش پروژه سیستم C - یک جمع آوری زباله از ابتدا بنویسید

System C Project - Write a Garbage Collector from Scratch

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: برنامه نویسی سیستم لینوکس/ویندوز - پروژه C، ابزار تشخیص نشت حافظه Heap، سیستم عامل، مدیریت حافظه توسعه کتابخانه C/C++ یکپارچه سازی کتابخانه با برنامه نحوه پیاده سازی ابزار شناسایی نشت حافظه نحوه ردیابی اشیاء malloc توسط برنامه پیش نیازها: دانش خوب برنامه نویسی C و Pointers دانش ابتدایی مدیریت حافظه سیستم عامل

این سوال در مصاحبه‌های آمازون/گوگل از من پرسیده شد:

1. چگونه یک زباله جمع کن برای برنامه های C طراحی می کنید؟

2. اگر طراحی آشغال‌گیر به این راحتی بود، چرا ما آن را از قبل با زبان برنامه‌نویسی C ادغام نکرده‌ایم؟

برای دریافت پاسخ، این دوره را تکمیل کنید. :p


این دوره یک دوره پروژه محور است و شامل کدنویسی به زبان C در هر مرحله از دوره است.

با افتخار این پروژه را در رزومه خود ذکر کنید.


این یک پروژه C است (برای برنامه افزودنی برای C++ باز است) که در آن می‌توانید کتابخانه‌ای را یاد بگیرید و بنویسید که نشت‌های حافظه را، در صورت وجود، توسط برنامه تشخیص دهد. در این پروژه، من گام به گام نحوه طراحی و پیاده سازی یک کتابخانه جمع آوری زباله به نام MLD (Memory Leak Detector) را توضیح داده ام که با ادغام با برنامه شما، امکان گرفتن اشیاء نشت کرده و گزارش آنها را فراهم می کند. کتابخانه MLD یک کتابخانه عمومی خواهد بود و توانایی تجزیه ساختارهای داده هر برنامه و دستکاری آنها را دارد.

پروژه در 3 مرحله توضیح داده شده است.


توجه: این دوره ای است که به کمی قدرت تجزیه و تحلیل نیاز دارد، دانشجویان مبتدی نیز می توانند از این دوره چیزهای زیادی یاد بگیرند که چگونه می توانید برنامه ای ایجاد کنید که بتواند اشیاء و ساختارهای خود را تجزیه کند. این تکنیک برای ایجاد بسیاری از پروژه های دیگر استفاده می شود که یکی از آنها شناسایی نشت حافظه است.

توصیه: کلاسی از دانش‌آموزانی که به "غذا دادن با قاشق" نیاز دارند، لطفاً از ثبت‌نام در دوره‌های پروژه‌محور خودداری کنند.


نکات برجسته کلیدی:

  • از زمان ظهور زبان برنامه نویسی C/C++، مدیریت حافظه یکی از مسئولیت هایی است که توسعه دهنده باید با آن مقابله کند

  • نرم افزارهای C/C++ اغلب از دو مشکل مرتبط با حافظه رنج می برند:

    • اختلال حافظه

    • نشت حافظه

  • برخلاف جاوا، C/C++ لوکس جمع‌آوری خودکار زباله را ندارد

  • جاوا به برنامه نویس اجازه دسترسی مستقیم به حافظه فیزیکی را نمی دهد، اما C/C++ این امکان را دارد، جاوا نشانگرها را مستقیماً در اختیار توسعه دهنده/کدگذار قرار نمی دهد. بنابراین برنامه های جاوا نیز از خرابی حافظه رنج نمی برند، اما C/C++

    آسیب می بیند
  • در این دوره، ابزار Memory Leak Detector (MLD) را برای برنامه‌های C طراحی و پیاده‌سازی می‌کنیم که به راحتی در C++ نیز قابل گسترش است


برخی از دانش آموزان درخواست کرده اند که شرحی رسمی از این پروژه ارائه دهند. برای دانشجویانی که می خواهند این پروژه را در رزومه خود ذکر کنند یا این پروژه را به عنوان پروژه سیستم عامل خود انجام دهند - می توانید عنوان و چکیده این پروژه را به شرح زیر ذکر کنید:


عنوان: "طراحی و پیاده سازی زباله جمع آوری کننده جاوا برای برنامه های C".
در این پروژه سعی می کنیم یک زباله جمع کننده برای برنامه های C پیاده سازی کنیم که بر اساس اصل دسترسی به اشیا برای تشخیص نشت حافظه کار می کنند. . از طریق این پروژه، ما محدودیت‌های چنین جمع‌آوری زباله را برای زبان‌های برنامه‌نویسی مانند C (که بر خلاف جاوا/پایتون به آدرس‌های حافظه اصلی دسترسی دارند) درک می‌کنیم و محدودیت‌ها و هزینه‌های آن را برای بودن یک ویژگی داخلی زبان C-مانند تجزیه و تحلیل می‌کنیم.



سرفصل ها و درس ها

معرفی Introduction

  • این دوره در مورد چیست ؟ What is this Course About ?

  • عضویت در گروه تلگرام Join Telegram Group

  • پیش نیاز دوره Course Pre-requistes

مقدمه ای بر پروژه MLD Introduction to the MLD Project

  • پروژه MLD چیست؟ What is MLD Project ?

  • دیاگرام بلوک پروژه و معماری Project Block Diagram and Architecture

  • مراحل توسعه پروژه Project Development Phases

فاز 1: پایگاه داده ساختار MLD Phase 1 : MLD Structure Database

  • اهداف فاز 1 Phase 1 Goals

  • ثبت ساختار Structure Registration

  • پایگاه داده ساختار مدلسازی Modelling Structure Database

  • مثال ثبت ساختار Structure Registration Example

  • مهارت های C خود را تست کنید Test your C Skills

  • Code Walk قسمت 1 Code Walk Part 1

  • Code Walk قسمت 2 Code Walk Part 2

  • نمایش فاز 1 پروژه Project Phase 1 Demonstration

  • خلاصه Summary

  • وظیفه Assignment

فاز 2: پایگاه داده شی MLD Phase 2 : MLD Object Database

  • اهداف فاز 2 Phase 2 Goals

  • مدل سازی پایگاه داده شی Object Database Modelling

  • مثال شی DB و Xcalloc Object DB and Xcalloc example

  • Code Walk - نسخه ی نمایشی Code Walk - Demo

  • خلاصه Summary

  • تمرین کدنویسی Coding Exercise

فاز 3: الگوریتم تشخیص نشت حافظه Phase 3 : Memory Leak Detection Algorithm

  • اهداف فاز 3 Phase 3 Goals

  • مجموعه جدا از نمودارها Disjoint set of graphs

  • اشیاء قابل دسترسی و نشت Reachable and Leaked Objects

  • نمودارهای چرخه ای هدایت شده Directed Cyclic Graphs

  • مدیریت اشیاء ریشه Root Objects Management

  • Root Objects Mgmt APIs - Code Walk Root Objects Mgmt APIs - Code Walk

  • الگوریتم MLD - آماده شدن MLD Algorithm - Getting Ready

  • الگوریتم MLD در عمل MLD Algorithm In Action

  • بحث الگوریتم MLD - سطح 1 MLD Algorithm Discussion - Level 1

  • بحث الگوریتم MLD - سطح 2 MLD Algorithm Discussion - Level 2

  • بهبود - پشتیبانی از اشیاء اولیه Enhancement - Support for Primitive Objects

  • نسخه ی نمایشی نهایی! Final Demo !

  • وظیفه Assignment

تحلیل کلی پروژه Overall Analysis of the Project

  • تجزیه و تحلیل پروژه Project Analysis

  • محدودیت کتابخانه MLD - مورد 1 MLD Library Limitation - Case 1

  • محدودیت کتابخانه MLD - مورد 2 MLD Library Limitation - Case 2

  • محدودیت کتابخانه MLD - مورد 3 MLD Library Limitation - Case 3

  • محدودیت کتابخانه MLD - مورد 4 MLD Library Limitation - Case 4

  • نتیجه Conclusion

اضافی: ساخت پروژه با استفاده از Makefile Extra : Building Project Using Makefile

  • معرفی Makefile Introducing Makefile

  • Makefile Analogy - Dependency Tree Makefile Analogy - Dependency Tree

  • Makefile Assignmnet - Part1 Makefile Assignmnet - Part1

  • Makefile Assignmnet - Part2 Makefile Assignmnet - Part2

  • فایل نهایی نهایی Final Makefile

جایزه ! Bonus !

  • سخنرانی پاداش Bonus Lecture

نمایش نظرات

Udemy (یودمی)

یودمی یکی از بزرگ‌ترین پلتفرم‌های آموزشی آنلاین است که به میلیون‌ها کاربر در سراسر جهان امکان دسترسی به دوره‌های متنوع و کاربردی را فراهم می‌کند. این پلتفرم امکان آموزش در زمینه‌های مختلف از فناوری اطلاعات و برنامه‌نویسی گرفته تا زبان‌های خارجی، مدیریت، و هنر را به کاربران ارائه می‌دهد. با استفاده از یودمی، کاربران می‌توانند به صورت انعطاف‌پذیر و بهینه، مهارت‌های جدیدی را یاد بگیرند و خود را برای بازار کار آماده کنند.

یکی از ویژگی‌های برجسته یودمی، کیفیت بالای دوره‌ها و حضور استادان مجرب و با تجربه در هر حوزه است. این امر به کاربران اعتماد می‌دهد که در حال دریافت آموزش از منابع قابل اعتماد و معتبر هستند و می‌توانند به بهترین شکل ممکن از آموزش‌ها بهره ببرند. به طور خلاصه، یودمی به عنوان یکی از معتبرترین و موثرترین پلتفرم‌های آموزشی آنلاین، به افراد امکان می‌دهد تا به راحتی و با کیفیت، مهارت‌های مورد نیاز خود را ارتقا دهند و به دنبال رشد و پیشرفت شغلی خود باشند.

آموزش پروژه سیستم C - یک جمع آوری زباله از ابتدا بنویسید
جزییات دوره
3.5 hours
43
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
2,030
4.7 از 5
ندارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Abhishek CSEPracticals Abhishek CSEPracticals

من شبکه می سازم!

Shiwani Nigam Shiwani Nigam

مجری بازاریابی دیجیتال

Ekta Ekta Ekta Ekta

مدیر تاسیسات