قفل بزرگ

در سیستم عامل قفل بزرگ که به عنوان قفل کرنل نیز شناخته می‌شود یک قفل است که ممکن است در هسته برای ارائه کنترل‌های همروندی مورد نیاز برای چند پردازشی متقارن استفاده شود. قفل بزرگ یک قفل عمومی منفرد است که هر گاه یک چندنخی وارد فضای هسته شود برپا می‌شود و هر گاه چندنخی به فضای کاربری باز گردد رها می‌شود (به عنوان مثال سیستم کال). در این مدل نخ‌ها در فضای کاربر می‌توانند به صورت همزمان بروی هر پردازنده یا هسته پردازنده‌ای اجرا شوند اما فقط یک نخ می‌تواند در فضای هسته اجرا شود. هر نخی که بخواهد در فضای هسته اجرا شود باید صبر کند. به عبارت دیگر قفل بزرگ همه همزمانی‌ها را در فضای هسته از بین می‌برد.
با ایزوله کردن هسته از همزمانی، نیازی به اصلاح بخش‌های زیادی از کرنل برای پشتیبانی از چند پردازشی متقارن نیست. به همین دلیل عملکرد در چند پردازشی متقارن به صورت قابل پیش‌بینی ناکارآمد و کم می‌شود. براین اساس روش قفل بزرگ عموما به عنوان یک روش اولیه و مقدماتی برای پشتیبانی از چند پردازشی متقارن در سیستم عامل استفاده می‌شود. اغلب سیستم‌عاملهای مدرن از روش fine-grained locking استفاده می‌کنند.

کرنل لینوکس در ابتدا از روش قفل بزرگ استفاده می‌کرد تا اینکه در سال ۲۰۱۱ به وسیلهٔ Arnd Bergmann مکانیسم fine-grained locking جایگزین قفل بزرگ شد.

منابع

[ویرایش]

ویکی‌پدیای انگلیسی