تالار گفتمان مانشت
تشخیص وقوع بن بست Deadlock - نسخه‌ی قابل چاپ

تشخیص وقوع بن بست Deadlock - joyebright - 07 آذر ۱۳۹۳ ۰۷:۳۵ ب.ظ

سام دوستان یه سوال ضمیمه کردم کسی می تونه بهم بگه چرا بن بست تو این شکل رخ نمی ده ;
من خودم به این صورت تجزیه تحلیل کردم ;
۱/P1 منبع R1 را درخواست می کند.
۲/P2 منیع R1 را دارد.
۳/P3 منبع R1 را دارد.

با این سه تا نتیجه بن بست رخ می ده ! در قسمت حلقه مشکلی ندارم
مرسی

RE: تشخیص وقوع بن بست Deadlock - Aliteh - 07 آذر ۱۳۹۳ ۰۸:۱۴ ب.ظ

بن بست رخ نمیده ، چون به عنوان مثال P2 در حال حاظر منبع R1 رو در اختیار داره ولی برای ادامه کارش نیاز به منبع دیگه ایی نداره در نتیجه در نهایت کارش تموم میشه و منبع R1 رو رها میکنه پس حالا P1 می تونه منبع R1 رو در اختیار بگیره و چون هر دو منبع مورد نیازش و داره می تونه کارش رو انجام بده ، و سپس R1 و R2 رو رها میکنه و به همین ترتیب میشه برای P4 و P3 اظهار نظر کرد

نکته کلیدی اینه که به طور کلی بن بست وقتی رخ میده که فرآیند ۱ در حال حاظر منبع A را در اختیار داره و برای ادامه فعالیتش منبع B رو می خواد که متاسفانه منبع B در اختیار فرایند ۲ هست و فرایند دوم هم برای ادامه کارش منبع A رو میخواد که در اختیار فرایند ۱ هست در نتیجه هر دو فرایند منبعی رو میخوان که در اختیار فرایند دیگری هست

ولی در شکل شما میبینیم که فرایند P2 و P4 برای ادامه فعالیتشان نیاز به منبع دیگری ندارند پس در نهایت این دو فرایند می توانند کارشان را تمام کنن و منابع در اختیارشان را آزاد کنند

RE: تشخیص وقوع بن بست Deadlock - joyebright - 07 آذر ۱۳۹۳ ۰۹:۳۱ ب.ظ

(۰۷ آذر ۱۳۹۳ ۰۸:۱۴ ب.ظ)Aliteh نوشته شده توسط:  بن بست رخ نمیده ، چون به عنوان مثال P2 در حال حاظر منبع R1 رو در اختیار داره ولی برای ادامه کارش نیاز به منبع دیگه ایی نداره در نتیجه در نهایت کارش تموم میشه و منبع R1 رو رها میکنه پس حالا P1 می تونه منبع R1 رو در اختیار بگیره و چون هر دو منبع مورد نیازش و داره می تونه کارش رو انجام بده ، و سپس R1 و R2 رو رها میکنه و به همین ترتیب میشه برای P4 و P3 اظهار نظر کرد

نکته کلیدی اینه که به طور کلی بن بست وقتی رخ میده که فرآیند ۱ در حال حاظر منبع A را در اختیار داره و برای ادامه فعالیتش منبع B رو می خواد که متاسفانه منبع B در اختیار فرایند ۲ هست و فرایند دوم هم برای ادامه کارش منبع A رو میخواد که در اختیار فرایند ۱ هست در نتیجه هر دو فرایند منبعی رو میخوان که در اختیار فرایند دیگری هست

ولی در شکل شما میبینیم که فرایند P2 و P4 برای ادامه فعالیتشان نیاز به منبع دیگری ندارند پس در نهایت این دو فرایند می توانند کارشان را تمام کنن و منابع در اختیارشان را آزاد کنند
مرسی ممنونم ، آیا استدلال هایی که من کردم درسته ؟ و شما از کجا می دوند کار فرایند ها تمام می شوند تضمینی بابت concurrent بودن آنها وجود ندارد که!

RE: تشخیص وقوع بن بست Deadlock - Aliteh - 08 آذر ۱۳۹۳ ۰۱:۱۳ ق.ظ

(۰۷ آذر ۱۳۹۳ ۰۹:۳۱ ب.ظ)joyebright نوشته شده توسط:  مرسی ممنونم ، آیا استدلال هایی که من کردم درسته ؟ و آیا شما از کجا می دوند کار فرایند ها تمتم می شوند تضمینی بابت concurrent بودن آنها وجود ندارد که!
اصولا بن بست یکی از مهمترین مشکلات هم روندی فرایند ها و نخ هاست ، اگر فرایند ها هم روند نباشند و یک برنامه اجرا بشود تا خاتمه نیابد برنامه های دیگه نتونن اجرا بشن که دیگر بن بستی وجود ندارد ، توی سیستم های تک برنامه گی اصلا بن بست نیست ،

استدلالتون در مورد تخصیص منابع به فرایند ها درست هست ولی استدلالتون در مورد وقوع بن بست اشتباه است ، آیا فرایند P2 که تمام منابع مورد نیازش رو در اختیار داره نمی تونه خاتمه بیابد؟

RE: تشخیص وقوع بن بست Deadlock - joyebright - 08 آذر ۱۳۹۳ ۰۹:۱۰ ق.ظ

(۰۸ آذر ۱۳۹۳ ۰۱:۱۳ ق.ظ)Aliteh نوشته شده توسط:  
(07 آذر ۱۳۹۳ ۰۹:۳۱ ب.ظ)joyebright نوشته شده توسط:  مرسی ممنونم ، آیا استدلال هایی که من کردم درسته ؟ و آیا شما از کجا می دوند کار فرایند ها تمتم می شوند تضمینی بابت concurrent بودن آنها وجود ندارد که!
اصولا بن بست یکی از مهمترین مشکلات هم روندی فرایند ها و نخ هاست ، اگر فرایند ها هم روند نباشند و یک برنامه اجرا بشود تا خاتمه نیابد برنامه های دیگه نتونن اجرا بشن که دیگر بن بستی وجود ندارد ، توی سیستم های تک برنامه گی اصلا بن بست نیست ،

استدلالتون در مورد تخصیص منابع به فرایند ها درست هست ولی استدلالتون در مورد وقوع بن بست اشتباه است ، آیا فرایند P2 که تمام منابع مورد نیازش رو در اختیار داره نمی تونه خاتمه بیابد؟
می تونه خاتمه پیدا کنه ; یعنی شما میگید همه ی فرایندها با هم شروع می شوند و باهم هم به اتمام می رند درسته؟

RE: تشخیص وقوع بن بست Deadlock - Aliteh - 08 آذر ۱۳۹۳ ۱۰:۲۶ ق.ظ

(۰۸ آذر ۱۳۹۳ ۰۹:۱۰ ق.ظ)joyebright نوشته شده توسط:  می تونه خاتمه پیدا کنه ; یعنی شما میگید همه ی فرایندها با هم شروع می شوند و باهم هم به اتمام می رند درسته؟

نه ، منظورم اینه که بین فرایندها تعویض متن اتفاق میوفته

RE: تشخیص وقوع بن بست Deadlock - joyebright - 08 آذر ۱۳۹۳ ۰۱:۱۳ ب.ظ

(۰۸ آذر ۱۳۹۳ ۱۰:۲۶ ق.ظ)Aliteh نوشته شده توسط:  
(08 آذر ۱۳۹۳ ۰۹:۱۰ ق.ظ)joyebright نوشته شده توسط:  می تونه خاتمه پیدا کنه ; یعنی شما میگید همه ی فرایندها با هم شروع می شوند و باهم هم به اتمام می رند درسته؟

نه ، منظورم اینه که بین فرایندها تعویض متن اتفاق میوفته

گرفتم چی شد ، ممنونم ، امیدوارم همیشه موفق باشید.