🔔 با توجه به بهبود نسبی اینترنت، آمادهسازی دورهها آغاز شده است. به دلیل تداوم برخی اختلالات، بارگذاری دورهها ممکن است با کمی تأخیر انجام شود. مدت اشتراکهای تهیهشده محفوظ است.
لطفا جهت اطلاع از آخرین دوره ها و اخبار سایت در
کانال تلگرام
عضو شوید.
آموزش پروژه سیستم سی - نوشتن جمعآوریکننده زباله از ابتدا
- آخرین آپدیت
دانلود System C Project - Write a Garbage Collector from Scratch
نکته:
ممکن هست محتوای این صفحه بروز نباشد ولی دانلود دوره آخرین آپدیت می باشد.
نمونه ویدیوها:
توضیحات دوره:
آموزش پروژه محور: ساخت ابزار تشخیص نشتی حافظه (Memory Leak Detector) در C/C++
این دوره آموزشی به شما امکان میدهد تا با برنامهنویسی سیستم عامل و مدیریت حافظه در زبانهای C و C++ به صورت عملی آشنا شوید. هدف اصلی این پروژه، توسعه یک ابزار قدرتمند برای تشخیص نشتی حافظه (Heap Memory Leak detection tool) است.
چرا این دوره برای شما مفید است؟
اگر به دنبال ارتقای مهارتهای خود در زمینه برنامهنویسی سیستمی لینوکس و ویندوز هستید و میخواهید درک عمیقتری از نحوه عملکرد مدیریت حافظه در سیستمعاملها به دست آورید، این دوره دقیقا برای شما طراحی شده است.
سوالات چالشبرانگیز مصاحبههای آمازون و گوگل:
چگونه یک جمعآوریکننده زباله (Garbage Collector) برای برنامههای C طراحی میکنید؟
اگر طراحی جمعآوریکننده زباله به این سادگی است، چرا قبلاً با زبان C ادغام نشده است؟
پاسخ این سوالات و بسیاری دیگر را در این دوره خواهید یافت!
ساخت کتابخانه تشخیص نشتی حافظه
در این پروژه، شما گام به گام نحوه طراحی و پیادهسازی یک کتابخانه جمعآوری زباله (Garbage Collector Library) به نام MLD (Memory Leak Detector) را خواهید آموخت. با ادغام این کتابخانه در برنامههای خود، قادر خواهید بود اشیاء دارای نشتی حافظه را شناسایی و گزارش دهید.
MLD یک کتابخانه عمومی خواهد بود که توانایی تجزیه و تحلیل و دستکاری ساختارهای دادهای هر برنامهای را داراست.
فازهای اصلی پروژه:
این پروژه در 3 فاز کلیدی به صورت کامل توضیح داده شده است.
نکات مهم:
این دوره نیازمند قدرت تحلیل کمی است. دانشجویان مبتدی نیز میتوانند با یادگیری چگونگی ایجاد برنامهای که قادر به تجزیه و تحلیل اشیاء و ساختارهای خود باشد، چیزهای زیادی بیاموزند. این تکنیک در پروژههای متعدد دیگری از جمله تشخیص نشتی حافظه کاربرد دارد.
پیشنهاد: دانشجویانی که به دنبال آموزش گام به گام و "تغذیه با قاشق" هستند، لطفا از ثبت نام در دورههای پروژه محور خودداری کنند.
ویژگیهای کلیدی دوره:
از زمان ظهور زبانهای برنامهنویسی C/C++، مدیریت حافظه یکی از مسئولیتهای اساسی توسعهدهندگان بوده است.
نرمافزارهای C/C++ اغلب با دو مشکل اساسی مرتبط با حافظه مواجه میشوند:
خرابی حافظه (Memory Corruption)
نشتی حافظه (Memory Leak)
برخلاف زبانهایی مانند جاوا، C/C++ از مزیت جمعآوری خودکار زباله بهرهمند نیستند.
جاوا به برنامهنویسان اجازه دسترسی مستقیم به حافظه فیزیکی را نمیدهد و همچنین اشارهگرها را مستقیماً در معرض دید توسعهدهنده قرار نمیدهد. به همین دلیل، برنامههای جاوا با مشکل خرابی حافظه مواجه نمیشوند، اما C/C++ اینگونه نیستند.
در این دوره، ما یک ابزار تشخیص نشتی حافظه (Memory Leak Detector) برای برنامههای C طراحی و پیادهسازی خواهیم کرد که به راحتی برای C++ نیز قابل توسعه است.
رزومه سازی حرفهای:
شما میتوانید این پروژه را با افتخار در رزومه خود ذکر کنید. برای دانشجویانی که قصد دارند این پروژه را به عنوان پروژه سیستمعامل خود انجام دهند یا در رزومه خود برجسته کنند، عنوان و چکیده پیشنهادی به شرح زیر است:
عنوان: "طراحی و پیادهسازی جمعآوریکننده زباله شبیه جاوا برای برنامههای C"
چکیده: در این پروژه، ما تلاش میکنیم یک جمعآوریکننده زباله برای برنامههای C پیادهسازی کنیم که بر اساس اصل قابلیت دسترسی اشیاء (Reachability) برای تشخیص نشتی حافظه عمل میکند. از طریق این پروژه، محدودیتهای چنین جمعآوریکننده زبالهای را برای زبانهای شبیه C (که دسترسی مستقیم به آدرسهای حافظه زیرین دارند، برخلاف جاوا/پایتون) درک میکنیم و محدودیتها و هزینههای آن را به عنوان یک ویژگی داخلی در زبانهای شبیه C تحلیل میکنیم.
پیشنیازها:
دانش قوی در برنامهنویسی C و مفاهیم اشارهگرها.
دانش مقدماتی در زمینه مدیریت حافظه سیستمعامل.
کلمات کلیدی سئو: برنامهنویسی سیستم لینوکس، برنامهنویسی سیستم ویندوز، پروژه C، ابزار تشخیص نشتی حافظه، سیستم عامل، مدیریت حافظه، توسعه کتابخانه C/C++، ادغام کتابخانه با برنامه، ردیابی اشیاء malloc شده، طراحی Garbage Collector، C++, Memory Leak, Heap Memory, Operating System, Memory Management, System Programming.
سرفصل ها و درس ها
مقدمه
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
فاز ۱: پایگاه داده ساختار MLD
Phase 1 : MLD Structure Database
اهداف فاز ۱
Phase 1 Goals
ثبت ساختار
Structure Registration
مدلسازی پایگاه داده ساختار
Modelling Structure Database
مثال ثبت ساختار
Structure Registration Example
مهارتهای C خود را بیازمایید
Test your C Skills
بررسی کد بخش ۱
Code Walk Part 1
بررسی کد بخش ۲
Code Walk Part 2
نمایش فاز ۱ پروژه
Project Phase 1 Demonstration
خلاصه
Summary
تکلیف
Assignment
فاز ۲: پایگاه داده اشیاء MLD
Phase 2 : MLD Object Database
اهداف فاز ۲
Phase 2 Goals
مدلسازی پایگاه داده اشیاء
Object Database Modelling
مثال پایگاه داده اشیاء و Xcalloc
Object DB and Xcalloc example
نمایش نظرات