آموزش پروژه سیستم عامل - توسعه Heap Memory Manager در C

Operating System Project - Develop Heap Memory Manager in C

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
نمونه ویدیوها:
توضیحات دوره: پروژه های سمینار سیستم عامل UG/PG به زبان C در پلتفرم های ویندوز/لینوکس، مدیریت حافظه، برنامه نویسی سیستم، لینوکس. درک مدیریت حافظه Heap نحوه ردیابی اشیاء malloc'd توسط برنامه طراحی داخلی و اجرای مدیریت حافظه Heap توسعه پیاده سازی خود در C Catch Memory Leaks مشاهده استفاده از حافظه و آمار پیش نیازها:مهارت های برنامه نویسی C کار با لیست های دارای پیوند دوگانه مدیریت حافظه Heap تئوری (در این دوره مجدداً پوشش داده شد) درک مفاهیم حافظه مجازی Enthu و Zeal to lean، عشق به کدنویسی بسیار مهم برای دیدگاه مصاحبه

این دوره سعی دارد به سؤالات مصاحبه زیر پاسخ دهد:

1. چگونه مدیریت حافظه پشته خود را طراحی خواهید کرد؟

2. ساختار داده مورد استفاده برای مدیریت حافظه Heap چیست؟

3. پیچیدگی زمانی تخصیص حافظه به یک فرآیند چقدر است؟

4. چگونه free( ) می داند چه مقدار حافظه باید آزاد کند؟

5. چگونه از شر تکه تکه شدن حافظه خلاص شویم؟


این دوره در مورد - "طرح تخصیص حافظه خود را طراحی و اجرا کنید تا مشکل تکه تکه شدن حافظه را برطرف کنید، استفاده از حافظه و آمار و نشت حافظه را ببینید. با استاد خود صحبت کنید و بخواهید این پروژه را به عنوان پروژه سمینار عملیاتی خود انجام دهید. ".


این یک پروژه دیگر سیستم را انجام دهید و مصاحبه کننده را با دانش خود در مورد مدیریت حافظه سیستم تحت تأثیر قرار دهید.


در این دوره، ما طرحی را در قالب یک کتابخانه طراحی و پیاده سازی خواهیم کرد که مسئولیت تخصیص حافظه De-Alocate به فرآیند فضای کاربران شما را بر عهده می گیرد و در عین حال به مشکلات تکه تکه شدن داخلی و خارجی Heap در پشت صحنه رسیدگی می کند. ما قبلاً با مشکل تکه تکه شدن داخلی و خارجی Heap آشنا هستیم که در طول یک دوره زمانی که یک فرآیند در حال اجرا است رشد و بزرگ‌نمایی می‌کند و بخش زیادی از حافظه Heap را غیرقابل استفاده می‌کند.


بسیاری از شرکت‌ها این طرح را در صنعت در خود فضای کاربران پیاده‌سازی می‌کنند تا از مشکلات تقسیم‌بندی خلاص شوند و همچنین مکانیسم تخصیص (عدم) حافظه به یک فرآیند را سرعت بخشند.


این یک دوره آموزشی مبتنی بر کدنویسی خالص است و در هر مرحله از دوره، باید یک کد برای اجرای پروژه بنویسید.


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

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

  • طرح کلی پروژه با نسخه ی نمایشی Project Outline with Demo

  • پیش نیازها Pre-requisites

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

  • دسترسی به کد Code Access

  • تکلیف - مخزن Github خود را ایجاد کنید Assignment - Create your Github Repository

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

  • دستورالعمل برای انجام تکالیف Guidelines for Doing Assignments

فاز 1 - صفحه حافظه مجازی (De)Alocation Phase 1 - Virtual Memory Page (De)Allocation

  • سیستم برای تخصیص صفحه VM فراخوانی می کند System Calls for VM Page Allocation

  • mmap() فراخوانی سیستم mmap() System Call

  • امضاهای API برای تخصیص و عدم تخصیص API Signatures for Allocation and DeAllocation

  • پیاده سازی API API Implementation

  • معماری و طراحی پروژه Project Architecture and Design

فاز 2 - ثبت خانواده صفحه Phase 2 - Page Family Registration

  • Page Family و ثبت آن چیست؟ What is Page Family & its Registration

  • صفحه ساختارهای داده خانواده Page Family Data Structures

  • تعریف ساختارهای داده برای مدیریت صفحه خانواده Defining Data structures for Page Families Management

  • صفحه نمونه سازی خانواده Page Family Instantiation

  • الگوریتم نمونه سازی خانواده صفحه Page Family Instantiation Algorithm

  • ماکرو حلقه‌ای - تکرار روی خانواده‌های صفحه در یک صفحه Looping Macro - Iterate over Page Families within a Page

  • پیاده سازی الگوریتم نمونه سازی صفحه خانواده - گام به گام Page Family Instantiation Algorithm Implementation - step by Step

  • یکپارچه سازی برنامه Application Integration

  • تکلیف اجباری - API ها را بنویسید Mandatory Assignment - Write APIs

فاز 3 - بلوک های متا و داده Phase 3 - Meta and Data Blocks

  • بلوک های متا و داده Meta and Data Blocks

  • MetaBlock DataStructure MetaBlock DataStructure

  • تکلیف - ماکروهای متابلاک Assignment - MetaBlock Macros

  • تکلیف اجباری - کدی را برای دستکاری متابلاک ها بنویسید Mandatory Assignment - Write Code to Manipulate Metablocks

  • به روز رسانی کد پروژه Project Code Update

فاز 4 - بلوک تقسیم و ادغام Phase 4 - Block Splitting and Merging

  • تقسیم بلوک Block Splitting

  • تنظیم اشاره گر در تقسیم بلوک Pointer Adjustment on Block Splitting

  • تکلیف در تقسیم بلوک Assignment on Block Splitting

  • بلوک ادغام Block Merging

  • به روز رسانی متابلاک ها در ادغام بلوک ها Updating Metablocks in Block Merging

  • API برای انجام Block Merge API to perform Block Merge

  • به روز رسانی کد پروژه Project Code Update

فاز 5 - مدیریت صفحه VM Phase 5 - VM Page Management

  • مدیریت صفحه VM VM Page Management

  • ساختارهای داده برای صفحه Mgmt Data Structures for Page Mgmt

  • نوشتن API برای Page Mgmt - Part1 Writing APIs for Page Mgmt - Part1

  • نوشتن API برای Page Mgmt - Part2 Writing APIs for Page Mgmt - Part2

  • درج صفحه VM VM Page Insertion

  • حذف صفحه VM VM Page Deletion

فاز 6 - مدیریت بلوک داده رایگان Phase 6 - Free Data Block Management

  • بیان مسأله Problem Statement

  • صف اولویت بلوک های داده رایگان Priority Queue of Free Data Blocks

  • معرفی Glthreads Introducing Glthreads

  • یکپارچه سازی Glthreads Glthreads Integration

  • بهبود ساختار داده برای مدیریت بلوک های داده رایگان Data Structure Enhancements For Managing Free Data Blocks

  • صف اولویت: درج بلوک داده Priority Queue : Data Block Insertion

  • صف اولویت: سایر عملیات Priority Queue : Other Operations

  • تخصیص - سایر تغییرات جزئی کد در مدیریت بلوک داده رایگان Assignment - Other Minor Code changes on Free Data Block Management

فاز 7 - فشار نهایی - اجرای Xmalloc & Xfree Phase 7 - Final Push - Implement Xmalloc & Xfree

  • فشار نهایی - اهداف این بخش Final Push - Goals of this Section

  • بحث الگوریتم Xmalloc Xmalloc Algorithm Discussion

  • پیاده سازی Xmalloc Xmalloc Implementation

  • پشتیبانی از API - mm_allocate_free_data_block Supporting API - mm_allocate_free_data_block

  • تئوری - پشتیبانی از API - mm_split_free_data_block_for_allocation Theory - Supporting API - mm_split_free_data_block_for_allocation

  • مدیریت تکه تکه شدن داخلی Handling Internal Fragmentation

  • پیاده سازی - mm_split_free_data_block_for_allocation Implementation - mm_split_free_data_block_for_allocation

فاز 8 - آزمایش پروژه ما Phase 8 - Testing Our Project

  • شروع با تست Getting Started with Testing

  • توضیح خروجی API 1 Explanation output API 1

  • توضیح خروجی API 2 Explanation output API 2

  • اختیاری - یکپارچه سازی CLI Optional - CLI Integration

فاز 9 - پیاده سازی Xfree Phase 9 - Implementing Xfree

  • اهداف این بخش Goals of this Section

  • الگوریتم xfree xfree algorithm

  • محاسبه اندازه حافظه سخت IF Calculating Hard IF Memory size

  • مدیریت حافظه IF سخت در بلوک ادغام Handling Hard IF Memory in block Merging

  • پیاده سازی xfree - part1 xfree Implementation - part1

  • پیاده سازی xfree - قسمت 2 xfree Implementation - part2

  • تست نهایی LMM Final Testing of LMM

فاز 10 - پروژه های کوچک در LMM Phase 10 - Mini Projects on LMM

  • پروژه های کوچک در Heap Memory Manager Mini Projects on Heap Memory Manager

ضمیمه A: تئوری - مدیریت حافظه پشته Appendix A : Theory - Heap Memory Management

  • مدیریت حافظه Heap - اهداف و مقدمه Heap Memory Management - Goals and Introduction

  • Malloc() - بازبینی سریع Malloc() - Quick Revision

  • نشانگر شکست Break Pointer

  • تماس های سیستمی brk و sbrk brk and sbrk System Calls

  • Malloc نسخه 1.0 Malloc Version 1.0

  • بیان مسأله Problem Statement

  • Metablock و Datablock Metablock and Datablock

  • تخصیص ها و تخصیص ها Allocations and Deallocations

  • تقسیم بلوک Block Splitting

  • بلوک ادغام Block Merging

  • مشکل تکه تکه شدن Problem of Fragmentation

پیوست B: ماکروهای تکراری در C Appendix B : Iterative Macros in C

  • شروع شدن Getting Started

  • برای معناشناسی حلقه For loop Semantics

  • ماکروهای تکراری برای LinkedList Iterative Macros For LinkedList

پیوست ج: فهرست پیوندی مبتنی بر چسب Appendix C : Glue Based Linked List

  • معرفی Introduction

  • تعریف Glthreads Glthreads Definition

  • تفاوت - DLL سنتی در مقابل چسب مبتنی بر چسب Difference - Traditional Vs Glue Based DLL

  • آفست فیلد ساختار Structure Field Offset

  • درج GLNode GLNode Insertion

  • تکرار GLThread GLThread Iteration

  • حذف GLNode GLNode Removal

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

  • مشکلات فهرست سنتی Traditional List Problems

  • مزایای GLThread GLThread Benefits

پاداش - آب نبات بگیرید! Bonus - Get some Candies !

  • دوره های من را به صورت رایگان دریافت کنید Get My Courses for Free

نمایش نظرات

Udemy (یودمی)

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

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

آموزش پروژه سیستم عامل - توسعه Heap Memory Manager در C
جزییات دوره
7.5 hours
85
Udemy (یودمی) Udemy (یودمی)
(آخرین آپدیت)
1,384
4.3 از 5
ندارد
دارد
دارد
جهت دریافت آخرین اخبار و آپدیت ها در کانال تلگرام عضو شوید.

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Abhishek CSEPracticals Abhishek CSEPracticals

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

Shiwani Nigam Shiwani Nigam

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

Ekta Ekta Ekta Ekta

مدیر تاسیسات