عکس پیش‌فرض نوشته

در این محبث از سری مباحث سیستم های عامل، به آخرین بررسی انحصار متقابل، راهنماها، ناظرها، تبادل پیام ها و همگام سازی می پردازیم.

سیستم های عامل - انحصار متقابل و همگام سازی

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

 

راهنماها :
– برای علامت دهی بین فرآیندها میتوان از اعمال یک نظام انحصار متقابل استفاده کرد.
– اصل اساسی این است که دو یا چند فرآیند بتوانند به وسیله علائم ساده ای با یکدیگر همکاری کنند.
– برای علامت دادن از متغیّر ویژه ای به نام راهنما استفاده می کند.
– برای فرستادن علامت توسط راهنمای s، فرآیند اولیّه، (signal(s را اجرا می کند.
– برای دریافت علامت توسط یک راهنمای s، فرآیند اولیّه (wait(s را اجرا می کند.
– اگر علامت مربوط هنوز فرستاده نشده باشد، این فرآیند تا زمان آن، معلّق می ماند.

 

ناظرها :
– ساختاری از زبان برنامه سازی است که کار راهنمای را انجام می دهد و کنترل آن هم ساده تر است.
– ساختار ناظر در تعدادی از زبان های برنامه سازی از modula و … به صورت کتابخانه ای پیاده سازی می شود.
– این افراد اجازه می دهند تا قفل های ناظر در روی هر شیء گذاشته شود.
– در عمل مانند لیست پیوندی است.

 

ناظر با علامت :
مؤلّفه ای نرم افزاری مشتمل بر یک یا چند رویه، دنباله ای از مقدار گذاری اولیّه و داده های محلی است.
و دارای ویژگی های زیر است :
1- متغیّر های داده محلی ناظر، تنها برای رویه های خود ناظر قابل دسترسی بوده و هیچ رویه دیگری به آنها دسترسی ندارند.
2- یک فرآیند با احضار یکی از رویه های ناظر، وارد آن می شود.
3- در هر زمان تنها یک فرآیند می تواند، در ناظر، در حال اجرا باشد.

 

دو تابعی که روی متغیّر شرطی عمل می کند عبارت اند از :
(Cwait(c : اجرای یک فرآیند صدا کننده را روی شرط C معلّق می کند.
(Csignal(c : اجرای یک فرآیندی که بعد از یک عمل cwait، روی همان شرط معلّق بوده است را از سر می گیرد.

 

تبادل پیام :
– پیام ها برای انحصار متقابل مفید هستند.
– ابزار مؤثری را برای ارتباط بین فرآیندها فراهم می کند.
– هنگامی که دو فرآیند با یکدیگر ارتباط برقرار می کنند، دو نیاز بنیادی همگام سازی و ارتباط باید تأمین شود.
– فرآیند ها نیاز به همگام سازی دارند تا انحصار متقابل تأمین شود.

– (Send (destination,message
– (Receive (source,message

 

همگام سازی :
در هنگام تبادل پیام سه ترکیب زیر متداول است :
– مسدود شدن فرستنده، مسدود شدن گیرنده : گاهی به این مورد، قرار ملاقات می گویند؛ که همگام سازی بین فرآیندها را محکم می کند.
– مسدود نشدن فرستنده، مسدود شدن گیرنده : گیرنده تا زمان ورود پیام مسدود است.
– مسدود نشدن فرستنده، مسدود نشدن گیرنده

 

آدرس دهی :
آدرس دهی مستقیم :
1- Send : شامل آدرس فرآیند مقصد
2- receive : صریح بیان می کند یا ضمنی
آدرس دهی غیر مستقیم :
پیام ها مستقیماً از فرستنده به گیرنده فرستاده نمی شوند بلکه به یک ساختمان داده مشترک ارسال می گردند.
این ساختمان داده دارای صف هایی است که به آن ها صندوق پستی می گویند.

 

* انتساب پیام به صندوق پستی می تواند پویا و ایستا باشد.
ایستا : به یک فرآیند نسبت داده می شود.
پویا : هنگامی که فرستنده های زیادی وجود داشته باشند.

 

ارتباط غیر مستقیم فرآیند ها

ارتباط غیر مستقیم فرآیندها

 

قالب پیام :
قالب پیام شامل دو مورد زیر می باشد.
1- سرآمد : حاوی اطّلاعات درباره پیام
2- بدنه : حاوی خود پیام

قالب پیام در سیستم عامل

 

نظام صف بندی :
– FIFO ساده ترین نظام صف بندی است.
– اولویت پیام بر اساس نوع پیام
– اولویت پیام توسط فرستنده
– اولویت پیام توسط گیرنده (بازرسی صف پیام ها و انتخاب پیام بعدی)

 

وضعیّت صف های فرآیند ها

وضعیت صف های فرآیند

 

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