سوال 92

حل تشریحی سوال شماره 92 مجموعه دروس تخصصی مشترک

کنکور ارشد مهندسی فناوری اطلاعات (IT) 1402

92.

کدام یک از موارد زیر از مزایای Thread Pool محسوب نمی شود؟

1)

باعث صرفه جویی در ایجاد نخ ها میشود.

2)

مناسب برای وظایف Asynchronous است.

3)

امکان ایجاد برخی استراتژیها برای اجرای وظایف را فراهم می کند.

4)

برای کارهای بی درنگ هنگامی که تعداد وظایف زیاد باشد، مناسب است.

پاسخ ها

1 پاسخ
دکتر ابوالفضل حقیقت
دکتر ابوالفضل …یکشنبه 13 اردیبهشت 1405

گزینه 4 درست است.

یک فایل سرور چندنخی را در نظر بگیرید که با هر درخواست جدید از یک مشتری، یک نخ مجزا ساخته می‌­شود. اگرچه ساخت نخ­ها بر ساخت فرایندها ارجحیت دارد، اما یک سرور چندنخی مشکلات خاص خودش را دارد:

  • سربار زمانی ایجاد نخ­ با ورود هر درخواست (رد گزینه 1)
  • سربار زمانی حذف نخ در پایان انجام عملیات سرویس به هر درخواست
  • اگر با ورود هر درخواست یک نخ ایجاد شود محدودیتی در تعداد نخ‌­های همروند فعال در سطح هسته وجود ندارد که باعث اتلاف شدید منابع مانند CPU و حافظه خواهد شد.

یک راه حل برای این مشکل، حوضچه­ نخ (Thread Pool) است. ایده پشت حوضچه نخ این است که در آغاز فرایند، تعدادی نخ ساخته شود و این نخ­ها در یک حوضچه قرار داده شوند که در آنجا در انتظار برای کار منتظر می‌­نشینند (رد گزینه 1). در این ایده آسنکرون (رد گزینه 2)، وقتی سرور یک درخواست جدید دریافت می­‌کند، به جای ایجاد یک نخ، آن درخواست را به حوضچه نخ تسلیم می­‌کند و خودش برمی­‌گردد و منتظر درخواست بعدی می‌­شود. اگر در حوضچه، نخ آزاد و منتظر کار وجود باشد، بیدار می­‌شود و سرویس به درخواست را فوراً شروع می‌­کند. اگر حوضچه خالی باشد، task درخواستی در صف قرار داده می­شود تا یکی از نخ­های مشغول کارش تمام شده و آزاد شود و یکی از درخواست­های درون صف را تحویل بگیرد. اگر یک نخ آزاد شود و صف خالی باشد، دوباره به حوضچه رفته و منتظر می‌­نشیند. تعداد نخ­های حوضچه تابع پیچیده­ای از تعداد CPU، اندازه حافظه و میانگین تعداد درخواست همروند مشتریان است. در برخی از سیستم­‌های پیچیده، تعداد نخ‌­های حوضچه می­تواند بر حسب بار سیستم به صورت پویا تغییر کند (مانند Apple's GCD).

مزایای روش حوضچه نخ:

  • سرویس به درخواست با یک نخ موجود سریع­تر از ایجاد یک نخ جدید است.
  • محدودیت در تعداد نخ‌­های هم‌روند فعال در سطح هسته مانع از اتلاف منابع و امکان اجرا با وجود منابع محدود می­‌شود.

برای رد گزینه 3 باید بگوییم که جدا کردن taskهایی که باید انجام شوند (نخ­های سطح کاربر) از ایجاد نخ (در سطح هسته)، امکان بکارگیری راهبردهای مختلف برای اجرای task­ها را فراهم می­‌کند (مثلاً اجرای یک task پس از یک تأخیر مشخص یا به صورت متناوب).

ارسال پاسخ