pswin.pooya
پنج شنبه 24 شهریور 1390, 21:37 عصر
داشتم IPC و همگام سازی آراکس رو می نوشتم که یه سوال جالب برام مطرح شد:
اگر یه نخ توی ناحیه بحرانی خودش که توسط یه قفل محافظت میشه بمیره تکلیف توی موارد زیر چیه؟
۱. موتکس ها
۲. سمافورها (راهنماها)
۳. قفلهای خواننده و نویسنده
اگر همه چی رو به حال خودش رها کنیم. توی موتکسها منجر به بمبست و توی سمافورها (به غیر از باینریها) منجر به از دست رفتن یک منبع و توی قفلهای خواننده و نویسنده (توی حالت نویسنده) منجر به بمبست میشه. تکلیف چیه؟
جواب دیگه آزاد کردن قفل با یک سیگنال یا با چیز مشابه هست. اما اینکار خطرناکه، چطور؟ بزارید بگم. فرض کنید. فرایند داره تغییراتی رو داخل یک سیستم بلادرنگ یه کارخونه پتروشیمی اعمال میکنه که اون مثلا شامل یک واحد افزایش فشار و ثبت اون هست حالا فرایند بعد از افزایش فشار خاتمه پیدا میکنه و سیستم عامل متوجه میشه و قفل رو باز میکنه فرایند دیگه وارد ناحیه میشه و متوجه کمبود فشار و در نتیجه افزایش اون (تا اینجا دو واحد افزایش ) و در نتیجه BOOOOOOOOOM. یا اگر به همون شکل قفل بمونه چی؟ (بازم BOOOOOOOOOOM)
نظر و یا راهکار شما چیه؟
اگر یه نخ توی ناحیه بحرانی خودش که توسط یه قفل محافظت میشه بمیره تکلیف توی موارد زیر چیه؟
۱. موتکس ها
۲. سمافورها (راهنماها)
۳. قفلهای خواننده و نویسنده
اگر همه چی رو به حال خودش رها کنیم. توی موتکسها منجر به بمبست و توی سمافورها (به غیر از باینریها) منجر به از دست رفتن یک منبع و توی قفلهای خواننده و نویسنده (توی حالت نویسنده) منجر به بمبست میشه. تکلیف چیه؟
جواب دیگه آزاد کردن قفل با یک سیگنال یا با چیز مشابه هست. اما اینکار خطرناکه، چطور؟ بزارید بگم. فرض کنید. فرایند داره تغییراتی رو داخل یک سیستم بلادرنگ یه کارخونه پتروشیمی اعمال میکنه که اون مثلا شامل یک واحد افزایش فشار و ثبت اون هست حالا فرایند بعد از افزایش فشار خاتمه پیدا میکنه و سیستم عامل متوجه میشه و قفل رو باز میکنه فرایند دیگه وارد ناحیه میشه و متوجه کمبود فشار و در نتیجه افزایش اون (تا اینجا دو واحد افزایش ) و در نتیجه BOOOOOOOOOM. یا اگر به همون شکل قفل بمونه چی؟ (بازم BOOOOOOOOOOM)
نظر و یا راهکار شما چیه؟