بنبست (علوم رایانه)
From Wikipedia, the free encyclopedia
بنبست یا مخمصه (به انگلیسی: Deadlock) در محاسبات همروند وضعیتی است که در آن هر عضوی از یک گروه منتظر عضو دیگری یا حتی منتظر خودش است تا شروع به کاری کند مثلاً یک پیام بفرستد یا اینکه بهطور شایع تر یک قفل را آزاد کند.[1] بنبستها مشکل شایعی در سیستمهای چند پروسه ای، محاسبات موازی، و سیستمهای توزیع شده هستند. در این موارد قفلهای نرمافزاری و سختافزاری برای اختصاص منابع مشترک و پیادهسازی همگام سازی پروسه استفاده میشوند.[2]
در سیستم عامل، بنبست زمانی رخ میدهد که یک فرایند یا یک ریسمان در یک وضعیت انتظار قرار میگیرد چون منبع مورد نیاز آن، توسط یک پروسهٔ منتظر دیگر در انحصار قرار گرفتهاست که آن پروسه نیز منتظر منبع دیگری است که توسط یک پروسهٔ منتظر دیگری در انحصار قرار گرفتهاست. اگر یک پروسه به دلیل اینکه منابع مورد نیاز آن توسط پروسه منتظر دیگری در اختیار قرار گرفته باشد، تا ابد قادر نباشد وضعیت خود را تغییر دهد، در این وضعیت اصطلاحاً میگوییم که بنبست رخ دادهاست.[3]
در سیستم ارتباطاتی بنبست اساساً ناشی از سیگنالهای از دست رفته یا خراب شدهاست و مربوط به رقابت بر سر منابع نمیشود.[4]