درباره این دوره آموزشی درباره نحوه صحبت فرآیندهای لینوکس با یکدیگر است. این یک زیر دامنه از برنامه نویسی سیستم لینوکس است. ما مکانیسم های مختلف محبوب مورد استفاده در صنعت را بررسی خواهیم کرد که از طریق آن لینوکس برای تبادل داده ها با یکدیگر پردازش می کند. ما مفاهیم پشت هر مکانیزم 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 مختلف استفاده کنید
نمایش نظرات