تاخیر زمانی وقفه
در علم محاسبات تاخیر زمانی وقفه (به انگلیسی: Interrupt latency)، مدت زمانی از وقتی که یک وقفه ایجاد میشود تا زمانی که منبع وقفه سرویس میشود است. در بسیاری از سیستم عاملها، دستگاهها به محض اجرای کنترل کنندهٔ وقفه، سرویس میشوند. تاخیر زمانی وقفه ممکن است تحت تأثیر طراحی ریزپردازنده، کنترل کنندهٔ وقفه، مسکینگ وقفه (interrupt masking)، و روشهای مدیریت وقفه سیستم عامل قرار بگیرد.[۱]
ریشه[ویرایش]
معمولاً بین تأخیر زمانی وقفه، توان عملیاتی و بکارگیری (utilization) پردازنده تعادل (trade-off) وجود دارد. بسیاری از تکنیکهای طراحی پردازنده و سیستمعامل که تأخیر زمانی وقفه را بهبود میبخشند، باعث کاهش توان عملیاتی و بکارگیری بیشتر پردازنده میشوند. روشهایی که توان عملیاتی را افزایش میدهند ممکن است تأخیر زمانی وقفه و استفاده از پردازنده را افزایش دهند. در نهایت، کاهش استفاده از پردازنده ممکن است تاخیر وقفه را افزایش بدهد و باعث کاهش توان عملیاتی شود.
حداقل تأخیر زمانی وقفه تا حد زیادی توسط مدار کنترلکننده وقفه و پیکربندی آن تعیین میشود. همچنین میتوانند بر لغزش در تأخیر زمانی وقفه تأثیر بگذارند، که این امر گاهی تأثیر زیادی بر زمانبندی رایانش بیدرنگ سیستم میگذارد. معماری APIC اینتل به دلیل ایجاد مقدار زیادی لغزش در تأخیر زمانی وقفه، معروف است.
حداکثر تأخیر زمانی وقفه به مقدار زیادی توسط روشهایی که سیستم عامل برای مدیریت وقفه استفاده میکند تعیین میشود. به عنوان مثال، اکثر پردازندهها به برنامهها اجازه میدهند تا وقفهها را غیرفعال کنند و اجرای کنترلکنندههای وقفه را به تعویق بیاندازند تا از بخشهای بحرانی کد محافظت کنند. در طول اجرای این بخش پراهمیت، همه کنترلکنندههای وقفه که نمیتوانند بهطور ایمن در یک بخش بحرانی اجرا شوند مسدود میشوند (حداقل مقدار اطلاعات مورد نیاز برای راه اندازی مجدد کنترلکننده وقفه پس از خارج شدن همه بخشهای بحرانی ذخیره میشود). پس تاخیر زمانی وقفه برای یک وقفهی مسدود شده، تا انتهای بخش بحرانی حساب میشود. همچنین اگر در این بین یک وقفه با الویت بالاتر مانند E وجود داشته باشد که وقفهی فعلی را متوقف کند، زمان اجرای E هم جزء تاخیر زمانی وقفهی ما حساب میشود.
در بسیاری از سیستمهای کامپیوتری، تاخیر زمانی وقفه باید کم باشد. مخصوصاً سامانههای تعبیه شده که نیاز به کنترل دستگاه در زمان واقعی (real-time) دارند. گاهی اوقات این سیستمها از یک سیستم عامل بلادرنگ (RTOS) استفاده میکنند. یک سیستم عامل بلادرنگ تضمین میکند که بین اجرای زیربرنامهها بیش از یک مقدار مشخص و بیشینه برای زمان نمیگذرد. برای انجام این کار، سیستم عامل بلادرنگ همچنین باید تضمین کند که تأخیر زمانی وقفه هرگز از بیشینه ای که از پیش تعریف شدهاست، تجاوز نخواهد کرد.
ملاحظات[ویرایش]
کنترلکنندههای وقفه پیشرفته، بسیاری از ویژگیهای سختافزاری را به منظور به حداقل رساندن سربار در هنگام تعویض زمینه و تأخیر زمانی وقفه مؤثر پیادهسازی میکنند که شامل ویژگیهایی مانند موارد زیر هستند:
- حداقل لغزش از طریق دستورالعملهای غیرقابل وقفه
- حالتهای انتظار صفر برای سیستم حافظه
- بانکهای ثبات قابل تعویض
- زنجیر دم (Tail chaining)
- انباشتن تنبل (Lazy stacking)
- شروع دیر از موعد (Latte arrival)
- پیشدستی پاپ (Pop preemption)
- ویژگی Sleep-on-Exit
علاوهبر این، روشهای بسیار زیادی وجود دارد که ممکن است سختافزار برای کمک به کاهش نیازمندیها برای تأخیر زمانی وقفه کمتر، به منظور قابل تحمل کردن تأخیر زمانی وقفه معین در یک موقعیت استفاده کند. این متدها شامل بافرها و کنترل جریان هستند. برای مثال، بیشتر کارتهای شبکه، انتقال و دریافت بافرهای چرخشی، محدود کردن نرخ وقفه و کنترل جریان سختافزار را پیادهسازی میکنند. بافرها اجازه میدهند تا دادهها تا زمانی که قابلیت انتقال را دارند، ذخیره شوند و کنترل جریان به کارت شبکه اجازه میدهد تا در صورت پر بودن بافر، ارتباطات را بدون نیاز به حذف دادهها متوقف کنند.
علاوه بر موارد بند قبل، سختافزار مدرن محدودیت نرخ وقفه را پیادهسازی میکند. اینکار به جلوگیری از طوفانهای وقفه (interrupt storms) یا بنبستهای زنده (live-locks) کمک میکند تا سختافزار حداقل زمان قابل برنامهریزی را بین هر وقفه ای که ایجاد میکند منتظر بماند. محدود کردن نرخ وقفه، مدت زمان صرف شده برای سرویسدهی وقفهها را کاهش میدهد و به پردازنده این اجازه را میدهد تا زمان بیشتری را برای انجام کارهای مفید صرف کند. تجاوز از این زمان منجر به خطای نرم (قابل بازیابی) یا سخت (غیرقابل بازیابی) میشود.
دراین باره بیشتر بخوانید[ویرایش]
- وقفه بینپردازندهای (IPI)
- وقفه
- وقفه غیرقابل پوشش (NMI)
- کنترلگر وقفه برنامهپذیر (PIC)
- زمان پاسخ نمایشگرهای السیدی
- تأخیر (مهندسی)