الفرق بين مقاطعة الأجهزة ومقاطعة البرامج Hardware Interrupt vs. Software Interrupt

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


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

تعريف مقاطعة الأجهزة Hardware Interrupt

تحدث مقاطعة الأجهزة بسبب بعض الأجهزة مثل طلب بدء إدخال / إخراج أو فشل في الأجهزة أو شيء مشابه، تمّ تقديم مقاطعات الأجهزة كطريقة لتجنب إضاعة الوقت الثمين للمعالج في (polling loops)، والذي يكون في انتظار الأحداث الخارجية، على سبيل المثال، عند اكتمال عملية الإدخال / الإخراج (I/O operation) مثل قراءة بعض البيانات في الكمبيوتر من محرك الأقراص.

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

ما تحتاج لمعرفته حول مقاطعة الأجهزة

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

تعريف مقاطعة البرامج Software Interrupt

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

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

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

ما تحتاج لمعرفته حول مقاطعة البرامج

  • مقاطعة البرامج هي المقاطعة التي يتم إنشاؤها بواسطة أي نظام داخلي للكمبيوتر “تعليمات في البرنامج”.
  • مقاطعات البرامج هي أحداث متزامنة.
  • تزيد مقاطعة البرنامج من عداد البرنامج.
  • مقاطعة البرامج هي نوع من المقاطعة التي تحدث إمّا بسبب تعليمات خاصة في مجموعة التعليمات أو بسبب حالة استثنائية في المعالج نفسه.
  • يمكن تصنيف مقاطعة البرامج إلى نوعين وهما: المقاطعة العادية والاستثناء.
  • يتم تشغيل مقاطعة البرامج بواسطة البرنامج “تعليمات البرنامج” وتعتبر إحدى طرق الاتصال بـ (kernel) أو لتشغيل استدعاءات النظام، خاصة أثناء معالجة الخطأ أو الاستثناء.
  • مقاطعة البرامج لها الأولوية القصوى من مقاطعة الأجهزة.

الفرق بين مقاطعة الأجهزة ومقاطعة البرامج

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

جدول المقارنة بين مقاطعة الأجهزة ومقاطعة البرامج

مقاطعة الأجهزة (Hardware Interrupt)مقاطعة البرامج (Software Interrupt)
مقاطعة الأجهزة هي مقاطعة تنشأ من جهاز أو جهاز خارجي.مقاطعة البرامج هي المقاطعة التي يتم إنشاؤها بواسطة أي نظام داخلي للكمبيوتر.
لا تزيد من عداد البرنامج.تقوم بزيادة عداد البرنامج.
يمكن استدعاء مقاطعة الأجهزة مع بعض الأجهزة الخارجية مثل طلب بدء إدخال / إخراج أو حدوث فشل في الجهاز.يمكن استدعاء مقاطعة البرامج بمساعدة تعليمات (INT).
لها أولوية أدنى من مقاطعات البرامج.لها الأولوية القصوى بين جميع المقاطعات.
يتم تشغيل مقاطعة الأجهزة بواسطة أجهزة خارجية وتعتبر إحدى طرق الاتصال بالأجهزة الطرفية الخارجية.يتم تشغيل مقاطعة البرامج بواسطة البرنامج وتعتبر إحدى طرق الاتصال بـ (kernel) أو لتشغيل استدعاءات النظام، خاصة أثناء معالجة الخطأ أو الاستثناء.
إنّه حدث غير متزامن.إنّه حدث متزامن.
يمكن تصنيف مقاطعات الأجهزة إلى نوعين هما: 1. المقاطعة المخفية (Maskable Interrupt)، 2. المقاطعة غير قابلة للإخفاء (Non Maskable Interrupt).يمكن تصنيف مقاطعات البرامج إلى نوعين هما: 1. المقاطعات العادية (Normal Interrupts)، 2. الاستثناء (Exception).
تعتبر حالات الضغط المنخفض لضغط المفاتيح وحركات الماوس أمثلة على مقاطعة الأجهزة.جميع استدعاءات النظام هي أمثلة لمقاطعات البرامج.

المصدر: Difference between Hardware Interrupt and Software InterruptWhat is the Difference Between Hardware and Software Interrupt7 Difference Between Hardware Interrupt And Software InterruptDifference Between Software Interrupt Vs Hardware Interrupt Tabular Form


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