آموزش ارتباطات بین فرآیندی لینوکس (IPC) از ابتدا در C

Linux Inter Process Communication (IPC) from Scratch in C

نکته: آخرین آپدیت رو دریافت میکنید حتی اگر این محتوا بروز نباشد.
توضیحات دوره: دوره لینوکس - شامل برنامه نویسی سوکت، برنامه نویسی سیستم لینوکس، برنامه نویسی C - از مبتدی تا متخصص شما می توانید برنامه هایی را طراحی کنید که به IPC نیاز دارند بهترین مکانیسم IPC را بسته به نیاز برنامه انتخاب کنید درک رابط برنامه نویسی لینوکس IPC درک بهتر و احساس بهتر سیستم عامل لینوکس با اعتماد به نفس آماده شدن برای مصاحبه مبتنی بر IPC سوالات طراحی یک فرآیند لینوکس که بتواند از مزایای مکانیسم های مختلف IPC به طور همزمان استفاده کند.

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

ما همچنین درباره نحوه طراحی برنامه‌ها برای استفاده از امکانات IPC ارائه شده توسط سیستم‌عامل لینوکس بحث می‌کنیم.

هرجا که امکان داشته باشد، تکالیف خواهید داشت، و در طول دوره، باید یک پروژه وجود داشته باشد که در آن باید تکنیک IPC جدیدی را که آموخته اید به صورت تدریجی به کار ببرید. در پایان دوره، شما باید تمام تکنیک های IPC آموخته شده در این دوره را تمرین و به کار می بردید.

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


چه کسی باید این دوره را انجام دهد؟

این دوره برای دانشجویان علوم کامپیوتر UG، جویندگان کار و توسعه دهندگان حرفه ای در نظر گرفته شده است. این یک دوره آموزشی MUST برای کسانی است که می خواهند به عنوان یک توسعه دهنده در برنامه نویسی سیستم به MNC ها بپیوندند. در برنامه نویسی سیستم، تقریباً همیشه باید از IPC برای انجام تبادل داده بین فرآیندها استفاده کنید، بنابراین دانشجویانی که در علوم کامپیوتر فارغ التحصیل می شوند و به دنبال فرصتی در MNC ها به عنوان یک توسعه دهنده هستند، باید مفاهیم IPC را در اختیار داشته باشند. p>


پیش نیاز

اگر کمی در مورد C و OS بدانید مفید خواهد بود. ما این دوره را با فرض اینکه دانشجو یک مبتدی کامل در لینوکس IPC است طراحی کردیم و با حرکت از Basic به پیشرفت مفاهیم در هر کجا که لازم باشد، سطح دوره را به تدریج بالا می بریم.

همچنین لطفا فقط به تماشای کدهای من ننشینید. کدهای خودت را بنویس، حتی اگر همان کد من باشد!


دوره های مرتبط

RPC (تماس‌های رویه از راه دور) روش دیگری برای انجام ارتباطات بین فرآیندی بین دو فرآیند در حال اجرا بر روی ماشین‌های جداگانه در شبکه است. همچنین ممکن است بخواهید دوره دیگر من در مورد RPCهای لینوکس را بررسی کنید که در آن نحوه پیاده سازی RPCها را از ابتدا یاد خواهید گرفت.


زبان برنامه نویسی مورد استفاده در این دوره:

ما دلایل محکمی برای انتخاب زبان C برای این دوره داریم:

IPC تسهیلاتی است که توسط سیستم عامل به توسعه دهندگان برای انجام تبادل داده بین فرآیندها ارائه می شود. یادگیری IPC با استفاده از C به شما کمک می کند تا بفهمید پشت صحنه چه اتفاقی می افتد. زبان C واقعاً جزئیات سطح پایین را در مورد نحوه عملکرد سیستم در واقع نشان می دهد. در برنامه نویسی سیستم، C تنها زبانی است که می توان از آن استفاده کرد و حتی زمانی که صحبت از برنامه نویسی سیستم می شود، جایگزینی برای این زبان وجود ندارد.


هیچ کتابخانه شخص ثالثی وجود ندارد

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


نکته1: اگرچه ما از لینوکس برای آموزش تکنیک های IPC استفاده می کنیم، اما از نظر مفهومی، IPC لینوکس تفاوت چندانی با سایر پلتفرم های سیستم عامل مانند ویندوز، iOS و غیره ندارد. بنابراین، اگر برنامه نویس پلتفرم های دیگر هستید، این دوره همچنان ادامه دارد. برای شما ارزش زیادی دارد.

نکته 2 : این دوره در مورد تکنیک های مختلف در رابطه با تبادل داده ها بین فرآیندها صحبت می کند، سایر موضوعات مرتبط مانند همگام سازی فرآیند و قفل کردن از محدوده این دوره خارج است و به طور جداگانه مورد بررسی قرار خواهد گرفت.

اخطار: این دوره دارای زیرنویس‌های خودکار تولید شده توسط سیستم است که ممکن است کامل نباشند. لطفاً زیرنویس‌ها را طبق راحتی خود غیرفعال کنید.


برنامه درسی

  • مقدمه

    • فهرست مطالب

    • معماری کامپیوتر - نمای کلی

    • تکنیک های مختلف IPC

    • انواع ارتباط


  • تکنیک IPC 1 - سوکت های دامنه یونیکس

    • معرفی Socket API

    • انواع پیام سوکت

    • پارادایم طراحی سوکت

    • قبول تماس سیستم

    • معرفی سوکت دامنه یونیکس

    • اجرای سرور سوکت دامنه یونیکس

    • پیاده سازی سرویس گیرنده سوکت دامنه یونیکس

    • چند پلکس کردن

    • تماس سیستم

      را انتخاب کنید
    • ماشین حالت سرور چندگانه

    • اجرای سرور چندگانه

    • همگام سازی داده ها - پروژه IPC قسمت 1


  • تکنیک IPC 2 - صف پیام

    • مقدمه

    • MsgQ به عنوان منبع هسته

    • Create a MsgQ

      را باز کنید
    • بستن یک MsgQ

    • Enque Data در MsgQ

    • داده‌ها را از MsgQ خارج کنید

    • لغو پیوند MsgQ

    • استفاده از پیام Q - دیدگاه طراحی

    • ارتباطات دو جهته

    • Code Walk - پیاده سازی

    • تظاهرات


  • تکنیک IPC 3 - حافظه مشترک

    • اهداف طراحی کلی

    • مفهوم حافظه مجازی

    • بلوک کنترل برنامه

    • مبانی حافظه مشترک

    • حافظه هسته

    • mmap() - نقشه برداری حافظه

    • محدودیت طراحی

    • APIهای مرتبط با حافظه مشترک

    • همگام سازی داده ها - پروژه IPC قسمت 2


  • تکنیک IPC 4 - سیگنال ها

    • مقدمه

    • لینوکس به خوبی سیگنال ها را می شناسد

    • تولید و به دام انداختن سیگنال ها

    • ارسال سیگنال با استفاده از Kill()

    • همگام سازی داده ها - پروژه IPC قسمت 3



  • تکنیک IPC 5 - سوکت های شبکه

    • طراحی برنامه نویسی سوکت

    • تماس سیستم

      را انتخاب کنید
    • قبول تماس سیستم

    • مفهوم Multiplexing

    • دستگاه حالت سرور

    • پروژه در برنامه نویسی سوکت - پروژه IPC 4


  • Multiplexing در IPC های مختلف

    • از select() برای مالتیپلکس کردن در رابط های IPC مختلف استفاده کنید


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

فهرست مطالب Table of Contents

  • فهرست مطالب Table of Contents

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

  • معرفی Introduction

فهرست مطالب Table of Contents

پیش نیازها - راه اندازی محیط توسعه لینوکس Pre-requisites - Setting up Linux Development Environment

  • راه اندازی محیط توسعه لینوکس Setting up Linux Development Environment

پیش نیازها - راه اندازی محیط توسعه لینوکس Pre-requisites - Setting up Linux Development Environment

تکنیک IPC 1 - سوکت های دامنه یونیکس IPC Technique 1 - Unix Domain Sockets

  • معرفی سوکت ها Sockets Introduction

  • انواع پیام سوکت Socket Message Types

  • طراحی سوکت Socket Design

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

  • معرفی سوکت دامنه یونیکس Unix Domain Socket Introduction

  • پیاده سازی سرور دامنه یونیکس قسمت 1 Unix Domain Server Implementation part 1

  • پیاده سازی سرور دامنه یونیکس قسمت 2 Unix Domain Server Implementation part 2

  • پیاده سازی مشتری دامنه یونیکس Unix Domain Client Implementation

  • نمایش سرور مشتری دامنه یونیکس Unix Domain Client Server Demonstration

  • IPC دامنه یونیکس - خلاصه و مشاهده Unix Domain IPC - Summary and observation

  • مفهوم مالتیپلکسینگ Concept of Multiplexing

  • درک سیستم () select Understanding select() System Call

  • ماشین حالت مالتی پلکسینگ Multiplexing State Machine

  • پیاده سازی سرور دامنه یونیکس چندگانه Multiplexed Unix Domain Server Implementation

  • نمایش سرور دامنه یونیکس چندگانه Multiplexed Unix Domain Server Demonstration

  • پروژه - همگام سازی داده ها با استفاده از سوکت های دامنه یونیکس به عنوان IPC Project - Data Synchronization using Unix Domain Sockets as an IPC

تکنیک IPC 1 - سوکت های دامنه یونیکس IPC Technique 1 - Unix Domain Sockets

تکنیک IPC 2 - صف های پیام IPC Technique 2 - Message Queues

  • معرفی Introduction

  • MsgQ به عنوان یک منبع هسته MsgQ as a kernel Resource

  • باز کردن و ایجاد یک MsgQ Opening and Creating a MsgQ

  • بستن یک MsgQ Closing a MsgQ

  • یک پیام را در MsgQ وارد کنید Enque A Msg into MsgQ

  • یک پیام را از یک MsgQ جدا کنید Deque a Msg from a MsgQ

  • لغو پیوند یک MsgQ Unlink a MsgQ

  • نحوه استفاده از MsgQ به عنوان IPC How to Use a MsgQ as an IPC

  • پیاده‌سازی و پیاده‌سازی کد Code Walk and Implementation

  • نمایش msgQ به عنوان IPC Demonstration of msgQ as an IPC

تکنیک IPC 2 - صف های پیام IPC Technique 2 - Message Queues

تکنیک IPC 3 - حافظه مشترک IPC Technique 3 - Shared Memory

  • دستور جلسه Agenda

  • خلاصه صفحه و نقشه برداری حافظه Paging Recap And Memory Mapping

  • نقشه برداری حافظه چگونه کار می کند How Memory Mapping Works

  • حافظه مشترک Shared Memory

  • استفاده از رم به عنوان حافظه مشترک Using RAM as Shared Memory

  • کدهای نمونه Example Codes

  • با mmap() آشنا شوید Get familiar with mmap()

  • برنامه آزمایشی - فایل متنی نقشه در حافظه مجازی پردازش Demo Program - Map Text File in Process Virtual Memory

  • محدودیت های طراحی برای استفاده از SHM به عنوان IPC Design Constraints for using SHM as IPC

  • پروژه - همگام سازی داده ها با استفاده از حافظه مشترک به عنوان IPC Project - Data Synchronization using Shared Memory as an IPC

تکنیک IPC 3 - حافظه مشترک IPC Technique 3 - Shared Memory

تکنیک IPC 4 - سیگنال ها IPC Technique 4 - Signals

  • معرفی سیگنال ها Signals Introduction

  • سیگنال های شناخته شده لینوکس Linux Well Known Signals

  • تولید سیگنال لینوکس و به دام انداختن سیگنال Linux Signal Generation and Signal Trapping

  • ارسال سیگنال با استفاده از kill Sending Signal using kill

  • پروژه - همگام سازی داده ها با استفاده از سیگنال ها به عنوان IPC Project - Data Synchronization using Signals as an IPC

تکنیک IPC 4 - سیگنال ها IPC Technique 4 - Signals

برنامه نویسی سوکت شبکه Network Socket Programming

  • سلب مسئولیت Disclaimer

  • مقدمه ای بر برنامه نویسی سوکت Introduction to Socket Programming

  • طراحی سرور Server Designing

  • پذیرش تماس سیستمی Accept system call

  • تماس سیستم را انتخاب کنید Select System Call

  • پیاده سازی Multiplexing با پذیرش و انتخاب تماس های سیستمی Implementing Multiplexing with Accept & Select System Calls

  • مثال سرور TCP - قسمت 1 TCP Server Example - part 1

  • مثال سرور TCP - قسمت 2 TCP Server Example - part 2

  • مثال سرور TCP - قسمت 3 TCP Server Example - part 3

  • مشاهده طراحی سرور TCP TCP Server Design Observation

  • طراحی و پیاده سازی مشتری TCP TCP Client Design and Implementation

  • نمایش کلاینت سرور TCP TCP Server Client Demonstration

  • سرور TCP با Multiplexing - طراحی سطح بالا - قسمت 1 TCP Server With Multiplexing - High Level Design - Part1

  • سرور TCP با Multiplexing - پیاده سازی - قسمت 2 TCP Server With Multiplexing - Implementation - part 2

  • TCP Server With Multiplexing - Demonstration - Part 3 TCP Server With Multiplexing - Demonstration - part 3

  • نتیجه گیری برنامه نویسی سوکت Socket Programming Conclusion

  • پروژه برنامه نویسی طراحی سرور TCP Project on TCP Server Designing Programming

برنامه نویسی سوکت شبکه Network Socket Programming

Multiplexing در IPC های متعدد Multiplexing on Multiple IPCs

  • Multiplexing در IPC های متعدد Multiplexing on Multiple IPCs

Multiplexing در IPC های متعدد Multiplexing on Multiple IPCs

پروژه برنامه نویسی سوکت Project on Socket Programming

  • اهداف پروژه Project Goals

  • استقرار پروژه Project Deployment

  • الگوریتم درخواست PUT PUT Request Algorithm

  • الگوریتم درخواست دریافت GET Request Algorithm

  • انواع پیام Message Types

  • پردازش پیام ها Messages Processing

  • کد شبه پروژه ها Projects Pseudocode

  • کلمات پایانی قبل از کدنویسی Final Words before Coding

  • جایزه Bonus

پروژه برنامه نویسی سوکت Project on Socket Programming

نمایش نظرات

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

آموزش ارتباطات بین فرآیندی لینوکس (IPC) از ابتدا در C
خرید اشتراک و دانلود خرید تکی و دانلود | 160,000 تومان (5 روز مهلت دانلود) زمان تقریبی آماده سازی لینک دانلود این دوره آموزشی حدود 5 تا 24 ساعت می باشد.
جزییات دوره
9 hours
72
Udemy (یودمی) udemy-small
17 تیر 1401 (آخرین آپدیت رو دریافت می‌کنید، حتی اگر این تاریخ بروز نباشد.)
5,607
4.6 از 5
دارد
دارد
دارد

Google Chrome Browser

Internet Download Manager

Pot Player

Winrar

Abhishek CSEPracticals Abhishek CSEPracticals

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

Abhishek CSEPracticals Abhishek CSEPracticals

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

Shiwani Nigam Shiwani Nigam

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

Shiwani Nigam Shiwani Nigam

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

Ekta Ekta Ekta Ekta

مدیر تاسیسات

Ekta Ekta Ekta Ekta

مدیر تاسیسات

Udemy (یودمی)

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

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