IPC (ارتباط میان پردازه ای) در لینوکس - قسمت اول

مقدمه


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

این سری مقالات از چهار بخش تشکیل شده است. در بخش اول مفاهیم IPC و مطالب تـئوریک مربوط به ارتباط میان پردازه ها بیان می شود. سپس در بخش دوم به بررسی امکانات فراهم شده در سیستم عامل لینوکس برای ارتباط میان پردازه ها و شرح توابع موجود می پردازیم. در بخش سوم به عنوان یک جمع بندی روش های IPC را با هم مقایسه کرده و تفاوت های آن ها را بیان می کنیم. در پایان هم چهار برنامه همکار با استفاده از یکی از روش های IPC می نویسیم.

شایان ذکر است که مطالب بخش اول عینا مانند مطالب موجود در فصل سوم کتاب Operating System Concepts نوشته Abraham Silberschatz است. همچنین برای تهیه مطالب بخش دوم، از فصل های سیزده و چهارده کتاب beginning Linux Programming نوشته Neil Matthew و Richard Stones استفاده شده است.

1.مفاهیم IPC


1.1. ارتباط میان پردازه ای


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

چندین دلیل برای فراهم کردن محیطی که اجازه همکاری پردازه ها را می دهد، وجود دارد:

  • اشتراک اطلاعات: چندین کاربر ممکن است به یک قطعه اطلاعاتی خاص علاقه داشته باشند (به عنوان نمونه، یک فایل به اشتراک گذاری شده)، به همین دلیل باید محیطی را فراهم آوریم که اجازه دسترسی همروند به چنین اطلاعاتی را بدهد.
  • تسریع محاسبات: اگر می خواهیم که یک وظیفه سریع تر اجرا شود، باید آن را به زیر وظیفه هایی بشکنیم؛ هر کدام از این زیر وظیفه ها به طور موزای با دیگران اجرا می شوند. توجه داشته باشید که چنین تسریعی تنها زمانی قابل دسترسی است که کامپیوتر چندین هسته پردازشی داشته باشد.
  • پیمانه ای بودن: ممکن است بخواهیم که سیستم را به سبک پیمانه ای بسازیم، یعنی عملکردهای سیستم را به چندین پردازه و نخ تقسیم کنیم.
  • راحتی: یک کاربر ممکن است در یک زمان بر روی چندین وظیفه کار کند. به عنوان نمونه کاربر ممکن است در حال ویرایش یک متن، گوش دادن به موزیک و کامپایل یک برنامه به طور موازی باشد.

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

IPC (ارتباط میان پردازه ای) در لینوکس - قسمت اول

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

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


1.2. سیستم های حافظه اشتراکی


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


در قسمت های بعد از این سری مقالات به بررسی یکی دیگر از روش های IPC یعنی سیستم های تبادل پیام می پردازیم. ItPro باشید!

نویسنده: رامین غلامی تقی زاده

منبع: انجمن تخصصی فناوری اطلاعات ایران

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد

#ارتباط_میان_پردازه_ای #ipc_در_لینوکس #حافظه_اشتراکی
عنوان
1 IPC (ارتباط میان پردازه ای) در لینوکس - قسمت اول رایگان
2 IPC (ارتباط میان پردازه ای) در لینوکس - قسمت دوم رایگان
3 IPC (ارتباط میان پردازه ای) در لینوکس - قسمت سوم رایگان
4 IPC (ارتباط میان پردازه ای) در لینوکس - قسمت چهارم رایگان
5 IPC (ارتباط میان پردازه ای) در لینوکس - قسمت پنجم رایگان
6 IPC (ارتباط میان پردازه ای) در لینوکس - قسمت ششم رایگان
7 IPC (ارتباط میان پردازه ای) در لینوکس - قسمت هفتم رایگان
زمان و قیمت کل 0″ 0
0 نظر

هیچ نظری ارسال نشده است! اولین نظر برای این مطلب را شما ارسال کنید...

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

تو می تونی بهترین نتیجه رو تضمینی با بهترین های ایران بدست بیاری ، پس مقایسه کن و بعد خرید کن : فقط توی جشنواره تابستانه می تونی امروز ارزونتر از فردا خرید کنی ....