آموزش قسمت B (ADVANCE) الگوهای طراحی چند رشته ای (پیچ رشته)

Part B (ADVANCE) Multithreading Design Patterns ( pthreads )

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
توضیحات دوره: لینوکس POSIX Threads ( Pthreads )، همگام سازی رشته ها، مفاهیم سیستم عامل، برنامه نویسی C/C++ با پروژه ها MultiThreading Fundamentals Concurrency Thread Synchronization Techniques Writing Thread Safe Codes. ers , WaitQueues, Assembly Line Thread Pools, Wait Queues, Barriers, Monitors, Assembly Line پیش نیاز:Finish Prequel Course C زبان باید غیرت یادگیری و تعالی اشتیاق برای نوشتن کدهای زیاد

این دوره دنباله‌ای برای همگام‌سازی رشته‌های چند رشته‌ای - C/C++ در کلاس کارشناسی ارشد است، و این دوره باید فقط زمانی انجام شود که دوره مقدماتی تکمیل شده باشد، مگر اینکه دانش معقولی در مورد نحوه عملکرد Mutexes و متغیرهای شرطی داشته باشید.


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


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


سطح این دوره از متوسط ​​تا پیشرفته می باشد.


فهرست مطالب

===================

1. مدیریت موضوع

2. مکث و از سرگیری موضوعات

3. Thread Pools/Work Crew Model

4. موانع موضوع

5. مدل صف انتظار

6. Mutexes بازگشتی

  • Mutexeهای بازگشتی چیست؟

  • چه زمانی روی نرمال Mutexes استفاده شود؟

  • Mutex بازگشتی خود را پیاده سازی کنید

7. قفل خواندن-نوشتن

  • قفل های Read-Write چیست؟

  • فایده آن چیست؟

  • قفل Read-Write خود را اجرا کنید

8. مانیتور

  • نمایشگر Reader-Writer را پیاده سازی کنید

  • حل مشکل پل با استفاده از مانیتور

  • دستورالعمل‌هایی برای نوشتن نمایشگرها

  • مطالعه موردی: اجرای درایو واکسیناسیون کووید با استفاده از مانیتور


*** از 2 مارس 2022 تا اینجا تکمیل شد **


9. مدل خط مونتاژ

10. تشخیص و پیشگیری از بن بست

11. سایر دوره های مرتبط در چند رشته

  • طراحی تایمر

  • طراحی سرورهای TCP چند رشته ای

  • برنامه نویسی ناهمزمان


موضوعات برنامه ریزی نشده:

================

11. انتظار محدود

12. سمافورهای فیفو (قوی)

13. همگام سازی جفت رویداد

14. همگام سازی بین فرآیندها با استفاده از Semaphores

15. انشعاب یک برنامه چند رشته ای


اگرچه ما از زبان C برای نشان دادن مفاهیم استفاده می کنیم، مفاهیم برای هر زبان برنامه نویسی مناسب هستند. این دوره برای برنامه نویسان ++C به همان اندازه ارزشمند است. سایر برنامه نویسان زبان نیز ممکن است این دوره را مفید بدانند زیرا ما مفاهیم Multithreading نزدیک به سطوح صفر زمین را با No Abstraction توضیح می دهیم.

در هر مرحله از این مجموعه دوره، شما باید کدهای چند رشته ای زیادی بنویسید. بنابراین برای تسلط بر Multi-threading آماده باشید. در طول سفر، ما چندین موضوع و سؤال مورد علاقه مصاحبه را پوشش خواهیم داد تا شما را در کنار مصاحبه آماده کنیم.


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

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

  • دستور کار و پیش نیازها Agenda and Prerequisites

  • دسترسی به کد برای این دوره Code Access for this Course

مدیریت موضوع Thread Management

  • شروع شدن Getting Started

  • شروع به کار با کتابخانه threadlib Getting Started with threadlib Library

  • سوالات تکلیف Assignment Questions

مکث و از سرگیری موضوع Thread Pausing and Resuming

  • الزامات Requirements

  • API ها APIs

  • بهبود ساختار داده Data Structure Enhancements

  • سوالات تکلیف (اجباری) Assignment Questions ( Mandatory )

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

به پیوست A بروید: Glthreads - LinkedList مبتنی بر چسب Go through Appendix A : Glthreads - Glue Based LinkedList

  • زمان تعطیلات ! Vacation Time !

Thread Pools/Work Crew Thread Model Thread Pools/Work Crew Thread Model

  • مقدمه ای بر Thread Pools Introduction to Thread Pools

  • مزایای استخر موضوع Thread Pool Benefits

  • طراحی استخر نخ Thread Pool Designing

  • ساختارهای داده و APIهای Thread Pool Thread Pool Data Structures and APIs

  • اجرای Thread Pool - شروع به کار Thread Pool Implementation - Getting started

  • اجرای Thread Pool - قسمت 1 Thread Pool Implementation - Part 1

  • اجرای Thread Pool - قسمت 2 Thread Pool Implementation - Part 2

  • اجرای Thread Pool - قسمت 3 Thread Pool Implementation - Part 3

  • نسخه آزمایشی Thread Pool 1 Thread Pool Demo 1

  • مرحله 7 - طراحی مسدود کردن موضوع تماس گیرنده Step 7 - Caller Thread blocking Design

  • مرحله 7 - اجرای مسدود کردن موضوع تماس گیرنده Step 7 - Caller Thread blocking Implementation

  • Thread Pool Assignment - Priority Thread Pool را پیاده سازی کنید Thread Pool Assignment - Implement Priority Thread Pool

موانع نخ Thread Barriers

  • Thread Barrier : مقدمه Thread Barrier : Introduction

  • عملکرد مانع نخ Thread Barrier Functioning

  • ساختارهای داده مانع نخ Thread Barrier Data Structures

  • Thread Barrier APIs Thread Barrier APIs

  • پیاده سازی Thread Barrier Wait ( ). Thread Barrier Wait ( ) Implementation

  • پیاده سازی API های مانع موضوع Thread Barrier APIs Implementation

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

  • سازماندهی مجدد کد واگذاری Assignment Code Reorganization

صف های انتظار Wait Queues

  • معرفی و مثال های مورد استفاده Introduction and Use Case Examples

  • نحوه استفاده از WQ در کد Appln چند رشته ای How to use WQ in Multithreaded Appln Code

  • WQ Condition پیاده سازی Fn WQ Condition Fn Implementation

  • ساختار داده WQ و APIها WQ Data Structure and APIs

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

  • رفع اشکال - NULL را از Wait_queue_test_and_wait( ) API برگردانید Bug Fix - Return NULL from wait_queue_test_and_wait( ) API

  • مقایسه API test_and_wait( ) با مراحل استاندارد Comparing test_and_wait( ) API with Standard Steps

  • اجازه می دهد تا صف های انتظار را کدگذاری کنیم Lets Code up Wait Queues

  • نمونه آزمایشی با استفاده از صف های انتظار Demo Example using Wait Queues

  • ساختارهای داده چراغ راهنمایی Traffic Light Data Structures

  • برنامه های الگو برای شروع Template Programs to start with

  • بحث راه حل Solution Discussion

Mutexeهای بازگشتی Recursive Mutexes

  • Mutex بازگشتی چیست؟ What is Recursive Mutex ?

  • سناریوی عملی استفاده از قفل های انزوا Practical Scenario of Using Reclusive Locks

  • تکلیف - پیاده سازی داخلی Rec Mutex Assignment - Rec Mutex Internal Implementation

  • Mutex بازگشتی - تعریف ساختار داده Recursive Mutex - Data Structure Definition

  • rec_mutex_lock() پیاده سازی API rec_mutex_lock() API Implementation

  • rec_mutex_unlock() پیاده سازی API rec_mutex_unlock() API Implementation

قفل خواندن/نوشتن Read/Write Locks

  • در این بخش چیست؟ What in this Section ?

  • درک قفل خواندن/نوشتن Understanding Read/Write Locks

  • API های POSIX POSIX APIs

  • برنامه نمونه آزمایشی Demo Example Program

  • RW Lock Self Implementation - شروع RW Lock Self Implementation - Begin

  • ساختار داده RW LOCK سفارشی Custom RW LOCK Data Structure

  • اجرای Lock API را بخوانید Read Lock API Implementation

  • Write Lock API Implementation Write Lock API Implementation

  • RW lock Unlock API پیاده سازی RW lock Unlock API Implementation

  • وظیفه Assignment

  • اعتبار سنجی اجرای قفل RW ما Validating our RW lock Implementation

مانیتورها Monitors

  • مانیتورها - مقدمه Monitors - Introduction

  • تبدیل قفل های RW به مانیتور Converting RW Locks into Monitor

  • اضافه کردن سفارشی سازی 1 Adding Customizations 1

  • افزودن سفارشی سازی 2 و 3 Adding Customizations 2 & 3

  • اضافه کردن سفارشی سازی 4 Adding Customization 4

  • افزودن سفارشی سازی 5 (آخرین) Adding Customization 5 ( Last )

  • تست مانیتور سفارشی ما Testing our Custom Monitor

  • باید انجام شود - رفع اشکال Must do - Bug Fix

مشکل پل Bridge Problem

  • مشکل عبور از پل Bridge Crossing Problem

  • نزدیک شدن به راه حل Approaching the Solution

  • حل مشکل پل با استفاده از مانیتور Solving Bridge Problem Using Monitors

  • رهنمودهای طراحی مانیتور Monitor Designing Guidelines

پیوست A: Glthreads - LinkedList مبتنی بر چسب Appendix A : Glthreads - Glue Based LinkedList

  • معرفی Introduction

  • تعریف GLThread GLThread Definition

  • تفاوت تصویری Pictorial Difference

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

  • درج گره Node Insertion

  • تکرار Iteration

  • حذف گره Node Removal

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

  • مشکلات لیست پیوندی سنتی Traditional Linked List Problems

  • مزایای GLThread GLThread Benefits

ضمیمه ب - لغو موضوع - مشکل متغیرها و نشت منابع Appendix B - Thread Cancellation - Problem of Invariants and Resource Leaking

  • مشکل نشت منبع موضوع Thread Resource Leaking Problem

  • فساد ساختار داده - متغیرها Data Structure Corruption - Invariants

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

  • آب نبات برای شما! Candies for you !

نمایش نظرات

نظری ارسال نشده است.

آموزش قسمت B (ADVANCE) الگوهای طراحی چند رشته ای (پیچ رشته)
خرید اشتراک و دانلود خرید تکی و دانلود | 160,000 تومان (5 روز مهلت دانلود) زمان تقریبی آماده سازی لینک دانلود این دوره آموزشی حدود 5 تا 24 ساعت می باشد.
جزییات دوره
8.5 hours
76
Udemy (یودمی) udemy-small
15 مرداد 1401 (آخرین آپدیت رو دریافت می‌کنید، حتی اگر این تاریخ بروز نباشد.)
1,254
4.5 از 5
دارد
دارد
دارد

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Abhishek CSEPracticals Abhishek CSEPracticals

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

Shiwani Nigam Shiwani Nigam

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

Ekta Ekta Ekta Ekta

مدیر تاسیسات

Udemy (یودمی)

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

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