پروژه سیستمعامل - توسعه مدیر حافظه Heap در C
✅ سرفصل و جزئیات آموزش
آنچه یاد خواهید گرفت:
- درک مدیریت حافظه Heap
- چگونگی ردیابی آبجکت های malloc شده توسط اپلیکیشن
- طراحی داخلی و پیادهسازی مدیریت حافظه Heap
- توسعه پیادهسازی اختصاصی در زبان C
- یافتن نشتیهای حافظه
- مشاهده آمار و میزان استفاده از حافظه
پیشنیازهای دوره
- مهارتهای برنامهنویسی C
- کار با لیستهای پیوندی دوطرفه
- تئوری مدیریت حافظه Heap (در این دوره مجدداً پوشش داده میشود)
- درک مفاهیم حافظه مجازی
- اشتیاق و علاقه به یادگیری و کدنویسی
- بسیار مهم از دیدگاه مصاحبههای شغلی
توضیحات دوره
این دوره تلاش میکند به سوالات مصاحبه زیر پاسخ دهد:
1. مدرس توضیح میدهد که چگونه مدیر حافظه Heap اختصاصی خود را طراحی کنید؟
2. ساختمان داده مورد استفاده برای مدیریت حافظه Heap چیست؟
3. پیچیدگی زمانی تخصیص حافظه به یک پردازش چقدر است؟
4. تابع ()free چگونه میداند چه مقدار حافظه را باید آزاد کند؟
5. چگونه میتوان از شر قطعهقطعه شدن حافظه خلاص شد؟
این دوره درباره این موضوع است: "طراحی و پیادهسازی طرح تخصیص حافظه اختصاصی برای حل مشکل Fragmentation حافظه، مشاهده آمار و میزان استفاده از حافظه و یافتن نشتیهای حافظه. دانشجو میتواند با استاد خود صحبت کند و این پروژه را به عنوان پروژه سمینار سیستمعامل خود انجام دهد".
مدرس پیشنهاد میدهد این پروژه سیستمی را انجام دهید و مصاحبهکننده را با دانش خود در زمینه مدیریت حافظه سیستم تحت تأثیر قرار دهید.
در این دوره، مدرس طرحی را در قالب یک کتابخانه طراحی و پیادهسازی میکند که مسئولیت تخصیص و آزادسازی حافظه به پردازش userspace شما را بر عهده میگیرد، در حالی که در پشت صحنه به مشکلات قطعهقطعه شدن داخلی و خارجی Heap رسیدگی میکند. ما قبلاً با مشکل قطعهقطعه شدن داخلی و خارجی Heap آشنا هستیم که با گذشت زمان و در حین اجرای پردازش رشد کرده و بزرگ میشود و بخش زیادی از حافظه Heap را غیرقابل استفاده میکند.
بسیاری از شرکتها در صنعت این طرح را در خود userspace پیادهسازی میکنند تا از شر مشکلات Fragmentation خلاص شوند و همچنین مکانیزم تخصیص (و آزادسازی) حافظه به پردازش را سرعت ببخشند.
این یک دوره کاملاً مبتنی بر کدنویسی است و در هر مرحله از دوره، شما باید برای پیادهسازی پروژه کد بنویسید.
این دوره برای چه کسانی مناسب است؟
- دانشجویان کارشناسی/کارشناسی ارشد علوم کامپیوتر
- متخصصان شاغل
- کسانی که به دنبال تغییر شغل یا آمادگی برای مصاحبه هستند.
- علاقهمندان به علوم کامپیوتر و برنامهنویسی
پروژه سیستمعامل - توسعه مدیر حافظه Heap در C
-
طرح کلی پروژه همراه با دمو 06:53
-
پیشنیازها 01:58
-
عضویت در گروه تلگرام 00:13
-
دسترسی به کد 01:42
-
فازهای توسعه پروژه 01:22
-
دستورالعملهای انجام تکالیف 01:41
-
فراخوانهای سیستمی برای تخصیص صفحه VM 05:23
-
فراخوان سیستمی ()mmap 05:39
-
امضای API برای تخصیص و آزادسازی 02:43
-
پیادهسازی API 09:59
-
معماری و طراحی پروژه 06:36
-
خانواده صفحه چیست و ثبت آن 03:56
-
ساختمان داده خانواده صفحه 07:09
-
تعریف ساختمان داده برای مدیریت خانوادههای صفحه 03:56
-
نمونهسازی خانواده صفحه 02:10
-
الگوریتم نمونهسازی خانواده صفحه 04:35
-
ماکروی حلقهزنی - تکرار روی خانوادههای صفحه درون یک صفحه 05:08
-
پیادهسازی گامبهگام الگوریتم نمونهسازی خانواده صفحه 10:47
-
یکپارچهسازی اپلیکیشن 07:13
-
تکلیف اجباری - نوشتن APIها None
-
بلوکهای متا و داده 07:58
-
ساختمان داده MetaBlock 07:49
-
تکلیف - ماکروهای MetaBlock 03:10
-
تکلیف اجباری - نوشتن کد برای دستکاری MetaBlockها None
-
بروزرسانی کد پروژه 01:51
-
تقسیم بلوک 07:22
-
تنظیم اشارهگر هنگام تقسیم بلوک 06:01
-
تکلیف در مورد تقسیم بلوک None
-
ادغام بلوک 05:09
-
بروزرسانی MetaBlockها در ادغام بلوک 04:55
-
API برای انجام ادغام بلوک 06:20
-
بروزرسانی کد پروژه 01:08
-
مدیریت صفحه حافظه مجازی (VM) 03:29
-
ساختمان دادهها برای مدیریت صفحه 10:38
-
نوشتن APIهای مدیریت صفحه - بخش 1 09:00
-
نوشتن APIهای مدیریت صفحه - بخش 2 04:08
-
درج صفحه VM 04:26
-
حذف صفحه VM 02:38
-
صورت مسئله 08:19
-
صف اولویت بلوکهای داده آزاد 05:59
-
معرفی Glthreadها 04:18
-
یکپارچهسازی Glthreadها 02:39
-
بهبود ساختمان داده برای مدیریت بلوکهای داده آزاد 05:57
-
صف اولویت: درج بلوک داده 06:05
-
صف اولویت: سایر عملیات 03:12
-
تکلیف - سایر تغییرات جزئی کد در مدیریت بلوک داده آزاد None
-
گام نهایی - اهداف این بخش 01:25
-
بحث درباره الگوریتم Xmalloc 07:25
-
پیادهسازی Xmalloc 05:00
-
API پشتیبان - mm_allocate_free_data_block 08:28
-
تئوری - API پشتیبان - mm_split_free_data_block_for_allocation 07:13
-
مدیریت Fragmentation داخلی 06:23
-
پیادهسازی - mm_split_free_data_block_for_allocation 13:46
-
شروع کار با تست 01:22
-
توضیحات خروجی API شماره 1 08:39
-
توضیحات خروجی API شماره 2 04:50
-
اختیاری - یکپارچهسازی CLI 03:50
-
اهداف این بخش 03:23
-
الگوریتم xfree 04:16
-
محاسبه اندازه حافظه Hard IF 03:41
-
مدیریت حافظه Hard IF در ادغام بلوک 08:36
-
پیادهسازی xfree - بخش 1 08:48
-
پیادهسازی xfree - بخش 2 06:13
-
آزمایش نهایی LMM 06:04
-
پروژههای کوچک روی Heap Memory Manager None
-
مدیریت حافظه Heap - اهداف و مقدمه 03:59
-
مرور سریع ()Malloc 08:49
-
اشارهگر Break 02:31
-
فراخوانهای سیستمی brk و sbrk 05:47
-
نسخه 1.0 Malloc 07:11
-
صورت مسئله 03:39
-
Metablock و Datablock 06:18
-
تخصیصها و آزادسازیها 05:33
-
تقسیم بلوک 06:07
-
ادغام بلوک 03:45
-
مشکل Fragmentation 04:17
-
شروع کار 04:20
-
معناشناسی حلقه For 02:59
-
ماکروهای تکرار برای LinkedList 09:50
-
مقدمه 03:35
-
تعریف Glthreadها 04:19
-
تفاوت - DLL سنتی در برابر مبتنی بر چسب 04:53
-
آفست فیلد ساختار 07:37
-
درج GLNode 03:41
-
تکرار GLThread 03:15
-
حذف GLNode 01:18
-
بررسی کد - دمو 06:24
-
مشکلات لیست سنتی 05:39
-
مزایای GLThread 04:54
-
دریافت رایگان دورههای مدرس 01:16
مشخصات آموزش
پروژه سیستمعامل - توسعه مدیر حافظه Heap در C
- تاریخ به روز رسانی: 1404/12/10
- سطح دوره:متوسط
- تعداد درس:90
- مدت زمان :07:22:52
- حجم :4.11GB
- زبان:دوبله زبان فارسی
- دوره آموزشی:AI Academy