تالار گفتمان مانشت
تست سیستم عامل سال ۸۵ - آی تی - همزمانی و همگام سازی - نسخه‌ی قابل چاپ

تست سیستم عامل سال ۸۵ - آی تی - همزمانی و همگام سازی - iman_n21 - 10 شهریور ۱۳۹۲ ۰۱:۴۴ ب.ظ

سلام
اگر دو پردازش p2 و p1 آمده در زیر به طور همروند اجرا شوند، کدام یک از موارد زیر صحیح است ؟


مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمی‌باشید. جهت مشاهده پیوندها ثبت نام کنید.


RE: تست سیستم عامل سال ۸۵ - آی تی - همزمانی و همگام سازی - mehdi1902 - 29 شهریور ۱۳۹۲ ۰۱:۱۸ ق.ظ

سلام

فکر میکنم گزینه ۱ میشه. ولی نمیدونم چطوری بگم. حالا امید به خدا Big Grin

اول از همه انحصار رو رعایت میکنه. چرا که توی شرایط حلقه که نگاه کنیم، امکان نداره هر دوتا با هم بیان از حلقه بیرون. چون همیشه یا N1<=N2 یا N2<N1. پس در هر لحظه یکی از شروط غلط میشه و میره داخل ناحیه بحرانی.

به همین دلیل بالا بن بست هم نمیتونه رخ بده. چون امکان نداره که همه‌ی شروط داخل حلقه‌ها همزمان درست باشن.

میمونه گرسنگی که اونم رخ نمیده. اگه فرض کنیم الان N1 رفت داخل ناحیه بحرانی (یعنی N1<=N2) وقتی از ناحیه در اومد و مجددن بخواد بره تو ناحیه بحرانی با مقدار الان N2 جمع میشه که یعنی N2<N1 میشه و N2 میره تو ناحیه بحرانی.
*البته باید توجه داشته باشیم اگه N1 بره توی ناحیه بحرانی و به هر دلیلی فرایندش ادامه داده نشه، دیگه N2 نمیتونه بره توی ناحیه بحرانی خودش. ولی این گرسنگی محسوب نمیشه!

RE: تست سیستم عامل سال ۸۵ - آی تی - همزمانی و همگام سازی - black_knight - 29 شهریور ۱۳۹۲ ۰۲:۴۲ ق.ظ

سلام
این الگوریتم Bakery هستش.
این الگوریتم هم انحصار متقابل تامین میکنه هم عدم ایجاد ددلاکو تضمین میکنه
برای انحصار متقابل می تونیم اینجور بگیم که اگه مثلا پردازش دوم تو ناحیه بحرانی خودش باشه پس یعنی (ان ۱ یا صفر بوده یا اینکه ان ۲ کوچکتر از ان ۱ بوده) پس در پردازش اول ان ۱ کوچیکتر و مساوی با ان ۲ درست نیست و ان ۲ هم صفر نیست پس بیزی میشه
و بالعکس...
برای ددلاکم میتونیم بگیم هیچ وقت دو پردازش با هم تو وایل نمی افتن چون روابط وقتی برای یکی درست واسه دیگری حتما اشتباه است

RE: تست سیستم عامل سال ۸۵ - آی تی - همزمانی و همگام سازی - aaa@hgg.com - 28 مهر ۱۳۹۲ ۰۹:۴۰ ب.ظ

این سناریو را در اجرای همروند دو پردازه در نظر بگیرید:
برش زمانی ۱: پی۱ اجرا شده و ان۱ برابر ۱ می شود
برش زمانی ۲: پی۲ اجرا شده و ان۲ برابر ۱ می شود
برش زمانی ۳: پی۱ اجرا شده و ان۱ برابر ۲=۱+۱ می شود
برش زمانی ۴: پی۲ اجرا شده و ان۲ برابر ۳=۱+۲ می شود
برش زمانی ۵: پی۱ اجرا شده و شرط حلقه ۳=>2 برقرار است و پی۱ وارد ناحیه بحرانی می شود و پس از اتمام کار از ناحیه بحرانی خارج می شود.
برش زمانی ۶: پی۲ اجرا می شود و شرط خروج حلقه برقرار نیست و نمی تواند وارد ناحیه بحرانی شود
تا زمانی که پی۱ مجددا بخواهد وارد ناحیه بحرانی شود و در مسیر مقدار متغییر را افزایش دهد که پس از آن پی۲ خواهد توانست وارد ناحیه بحرانی شود.
گرسنگی و بن بست رخ نمی دهد و شرط انحصار متقابل تامین می شود که پاسخ گزینه یک است.