المقاطعة في أنظمة الحاسوب أنواعها وتطبيقاتها Interrupt

اقرأ في هذا المقال


تستخدم أجهزة الكمبيوتر طلبات المقاطعة للتعامل مع وظائف الأجهزة المختلفة، تمّ تقديم مقاطعات الأجهزة لأول مرة بواسطة (UNIVAC 1103) في عام (1953)، تمّ دمج أول حالة لإخفاء المقاطعة بواسطة (IBM 650) في عام (1954).

ما هي المقاطعة an Interrupt؟

من الضروري تعيين (IRQs) مختلفة لأجهزة مختلفة لأداء وظائف مختلفة، أثناء تنفيذ البرنامج، تتطلب أجهزة مثل لوحات المفاتيح، الماوس، خدمات وحدة المعالجة المركزية ويقوم بإنشاء مقاطعة لجذب انتباه وحدة المعالجة المركزية ومعالجة الخدمة المطلوبة، تُعرف هذه “بالمقاطعات”.

تُعرف إحدى ناقلات جهاز الإدخال / الإخراج المخصص لخدمة هذا الغرض باسم روتين خدمة المقاطعة (ISR)، يتم استخدامها في تطبيقات مختلفة مثل الأحداث الحساسة للوقت، ونقل البيانات، والتأكيد على الأحداث غير الطبيعية، وأجهزة ضبط الوقت، (traps)، وما إلى ذلك.

تعريف المقاطعة:

التعريف: يشار للمقاطعة على أنّها إشارة إدخال لها الأولوية القصوى لأحداث الأجهزة أو البرامج التي تتطلب معالجة فورية لحدث ما، في وقتٍ سابق للحوسبة، كان على المعالج انتظار الإشارة لمعالجة أي أحداث، يجب أن يتحقق المعالج من كل جهاز وبرنامج لفهم ما إذا كانت هناك أي إشارة يجب معالجتها، تستهلك هذه الطريقة عددًا من دورات الساعة وتجعل المعالج مشغولاً، فقط في حالة إنشاء أي إشارة، سيستغرق المعالج مرة أخرى بعض الوقت لمعالجة الحدث، ممّا يؤدي إلى ضعف أداء النظام.

تمّ إدخال آلية جديدة للتغلب على هذه العملية المعقدة، في هذه الآلية، سترسل الأجهزة أو البرامج الإشارة إلى المعالج، بدلاً من فحص المعالج بحثًا عن أي إشارة من الأجهزة أو البرامج، تنبه الإشارة المعالج بأولوية قصوى وتوقف الأنشطة الحالية عن طريق حفظ حالتها ووظيفتها الحالية، وتعالج المقاطعة على الفور، وهذا ما يعرف بـ (ISR)، نظرًا لأنّه لا يدوم طويلاً، يقوم المعالج بإعادة تشغيل الأنشطة العادية بمجرد معالجتها.

أنواع المقاطعة Types of Interrupt:

يتم تصنيف المقاطعة إلى نوعين رئيسيين، وهما:

مقاطعات الأجهزة Hardware Interrupts:

إشارة إلكترونية مرسلة من جهاز أو جهاز خارجي للتواصل مع المعالج تشير إلى أنّه يتطلب عناية فورية، على سبيل المثال، تستدعي ضربات لوحة المفاتيح أو إجراء من الماوس مقاطعات الأجهزة ممّا يتسبب في قيام وحدة المعالجة المركزية بقراءتها ومعالجتها، لذلك فهي تصل بشكل غير متزامن وخلال أي وقت أثناء تنفيذ التعليمات، يتم تصنيف مقاطعات الأجهزة إلى نوعين:

  • المقاطعات المقنعة (Maskable Interrupts): يتعين على المعالجات مقاطعة سجل القناع (mask register)، الذي يسمح بتمكين وتعطيل مقاطعات الأجهزة، تمّ وضع بت كل إشارة في سجل القناع إذا تمّ تعيين هذا البت، فسيتم تمكين المقاطعة وتعطيلها عندما لا يتم تعيين بت، أو العكس، يشار إلى الإشارات التي تقطع المعالجات من خلال هذه الأقنعة بالمقاطعات المقنعة.
  • المقاطعات غير المقنعة (NMI) (Non-maskable Interrupts): تعد (NMIs) الأنشطة ذات الأولوية القصوى التي تحتاج إلى معالجتها على الفور وفي أي موقف، مثل إشارة (timeout) التي تمّ إنشاؤها من مؤقت مراقب.

المقاطعات البرمجية Software Interrupts:

يطلب المعالج نفسه مقاطعة البرنامج بعد تنفيذ تعليمات معينة أو في حالة استيفاء شروط معينة، يمكن أن تكون هذه تعليمات محددة تؤدي إلى مقاطعة مثل استدعاءات الروتين الفرعي ويمكن تشغيلها بشكل غير متوقع بسبب أخطاء تنفيذ البرنامج، والمعروفة باسم الاستثناءات أو الاعتراضات (exceptions or traps).

طرق التشغيل Triggering Methods:

بشكل عام، تمّ تصميم هذه الإشارات بحيث يتم تشغيلها باستخدام مستوى إشارة منطقية أو حافة إشارة، هذه الطرق هي من نوعين:

المقاطعة المشغلة على المستوى Level-triggered Interrupt:

في هذا النوع، تستدعي وحدة الإدخال مقاطعة إذا تمّ تأكيد مستوى الخدمة الخاص بذلك، إذا استمر تأكيد مصدر المقاطعة عندما يتعامل معالج مقاطعة البرامج الثابتة معه، فإنّ هذه الوحدة النمطية تتجدد وتحث المعالج على الاستدعاء مرة أخرى، المدخلات التي يتم تشغيلها على المستوى ليست جيدة إذا تمّ التأكيد عليها لمدة أطول.

المقاطعة المشغلة من الحافة Edge-triggered Interrupt:

تستدعي وحدة إدخال المقاطعة المشغلة من الحافة مقاطعة بمجرد أن تحدد حافة مؤكدة، حافة هبوط أو حافة صاعدة (falling or a rising edge)، تصبح الحافة ملحوظة عندما يتغير مستوى المصدر، يحتاج هذا النوع من المحفزات إلى إجراء فوري، بغض النظر عن نشاط المصدر.

تنفيذ النظام System Implementation:

يجب تطبيق المقاطعات على الأجهزة كمكون مختلف مع خطوط التحكم، أو يتم دمجها في أنظمة الذاكرة الفرعية، عند تنفيذ التنفيذ في الأجهزة، فإنّه يحتاج إلى وحدة تحكم في المقاطعة القابلة للبرمجة (PCI) للاتصال بين دبوس إدخال وحدة المعالجة المركزية وجهاز المقاطعة، يقوم (PCI) بتعدد إرسال مصادر مختلفة للمقاطعة لخط وحدة المعالجة المركزية الفردي أو المزدوج، عند التنفيذ فيما يتعلق بوحدة التحكم في الذاكرة، يتم تعيين فتحة عنوان ذاكرة النظام مباشرةً مع المقاطعات.

طلبات المقاطعة المشتركة Shared Interrupt Requests (IRQs):

مع المقاطعة التي يتم تشغيلها من الحافة، يتم استخدام مقاومة سحب لأعلى (pull-up) أو سحب لأسفل (pull-down)، لقيادة خط المقاطعة، ينقل هذا الخط كل نبضة ينتجها كل جهاز، إذا حدثت نبضات المقاطعة المتولدة من أجهزة مختلفة في وقت قريب، فيجب على وحدة المعالجة المركزية استدعاء الحافة الخلفية للنبض حتى لا تفوت المقاطعات، وبعد ذلك تضمن وحدة المعالجة المركزية فحص كل جهاز لطلبات الخدمة.

يجب أن تعمل اللوحات الأم ذات البنية الصناعية القياسية (ISA) التي تعمل بشكل جيد والمزودة بمقاومات سحب لها خطوط (IRQ) المشتركة بشكل جيد، ومع ذلك، فإنّ العديد من الأجهزة التي تشترك في خط (IRQ) في الأنظمة القديمة ذات واجهة برمجة سيئة التصميم تجعل من الصعب معالجة المقاطعات، من ناحية أخرى، تساعد بنية النظام الجديدة، مثل (PCI) في توفير راحة كبيرة لهذه المشكلة.

النوع الهجين Hybrid:

يحتوي النوع الهجين من تنفيذ النظام على مزيج من الإشارات التي يتم تشغيلها من الحافة والمستوى، يجب أن يبحث الجهاز عن حافة ويتحقق أيضًا من وجود إشارة نشطة لفترة معينة، يشيع استخدام النوع المختلط لإدخال المقاطعة غير مقنعة (NMI)، ممّا يضمن عدم تأثير المقاطعات الخاطئة على النظام.

النوع Message Signaled:

طلب مقاطعة بإشارة رسالة للخدمة باستخدام إشارات الجهاز عن طريق إرسال رسالة عبر قناة اتصال، مثل ناقل الكمبيوتر، هذه لا تستخدم خط المقاطعة المادية، يعمل (PCI Express) كناقل تسلسلي ويستخدم حصريًا كمقاطعات إشارات الرسائل.

نوع الجرس Doorbell:

تُستخدم مقاطعة جرس الباب بشكل شائع كآلية بواسطة نظام برمجي للإشارة إلى أجهزة الكمبيوتر لإكمال العمل، عند الاتفاق المتبادل بين الأجهزة والبرمجيات، يضع البرنامج البيانات في موقع الذاكرة المعروف جيدًا ويرن “جرس الباب” لإخطار الأجهزة بأنّ البيانات جاهزة وتنتظر المعالجة، الآن، يتفهم جهاز الكمبيوتر أنّ البيانات صحيحة ويعالجها وفقًا لذلك.

النوع متعدد المعالجات Multiprocessor IPI:

الأنظمة متعددة المعالجات، يتم إرسال طلب مقاطعة من معالج إلى معالج مختلف من خلال المقاطعات بين المعالجات (IPI).

الاستخدامات والتطبيقات النموذجية:

هذه مدخلات قوية تستخدم عادةً في الحالات التالية:

  • خدمة مؤقتات الأجهزة، والتعامل مع ضغطات لوحة المفاتيح وإجراءات الماوس.
  • استجابة سريعة للأحداث الحساسة للوقت أو الأحداث في الوقت الفعلي.
  • نقل البيانات من وإلى الأجهزة الطرفية.
  • يستجيب للمهام ذات الأولوية العالية مثل إشارات خفض الطاقة والفخاخ وأجهزة ضبط الوقت.
  • تتنبأ مقاطعة انقطاع التيار الكهربائي بفقدان الطاقة، ممّا يتيح إيقاف تشغيل النظام بشكل منظم.
  • المقاطعات الدورية (Periodic interrupts) لتتبع الوقت المطلق (absolute time).

شارك المقالة: