مقاطعة (interrupt) مصطلح في نظم التشغيل هو إشارة إلى المعالج أو أمر في مجال البرمجيات يشير عادة إلى حدث (event) يحتاج إلى عناية فورية ويعني وقفًا مؤقتًا لتنفيذ برنامج معين من أجل تنفيذ عملية أخرى قد يكون لها أولوية أكبر أو أي سبب آخر وتشمل المقاطعة تخزين مؤقت لبيانات البرنامج الموقوف لاسترجاعها عند انتهاء المقاطعة.[1][2][3] هناك أنواع مختلفة من الأحداث التي قد تسبب المقاطعة - أمثلة: التقسيم على صفر، الدخول الخاطئ إلى الذاكرة وطلبات الحصول على خدمات نظام التشغيل. لكل مقاطعه يوجد service interrupt المسؤول عن معالجة المقاطعة.عندما يتلقى المعالج (CPU) المقاطعة، يقوم بوقف عمله وفوراً ينتقل إلى العمل في مكان ثابت. هذا المكان في معظم الحالات يحتوي على عناوين البداية من روتين الخدمة (service routine),روتين خدمة المقاطعة يبدأ في العمل، وفي النهاية المعالج(CPU) يعود للعملية التي توقفت.
يوجد نوعين من المقاطعة :
- hardware interrupt : هو إشارة إلكترونية تنبيهيه ترسل إلى المعالج من جهاز خارجي.
يمكن تقسيم مقاطعات الأجهزة إلى نوعين :
Edge-Triggered Interrupts - مقاطعات اللواتي يرسلن اشاره اياً كانت لتحديد طلب المقاطعة.
Level-Triggered Interrupts -مقاطعات اللواتي يغيرن وضع تدفق الكهرباء بقناة البيانات بصوره دائمه حتى معالجة المقاطعة.الجهاز المهتم في المقاطعة يغير وضع الخط حتى تلقي رساله مواففه من المعالج (CPU) للقيام بمعالجة المقاطعة.
- Software interrupts : هو عادة ما يكون أمرًا (يسمى System Call) ضمن مجموعة التعليمات ، عند تنفيذه يقوم أيضًا بنقل المعالج لتنفيذ روتين المقاطعة.
فوائد المقاطعة
جعل المعالج يقوم بتنفيذ أكثر من وظيفة في نفس الوقت -حيث يقوم بتنفيذ جزء من وظيفة ثم يتركها ليذهب لتنفيذ وظيفة أخرى في حالة حدوث مقاطعة وهكذا- من أجل الحصول على سرعة أعلى.
مراجع
- Jonathan Corbet (November 17, 2009). "Receive packet steering". LWN.net. مؤرشف من الأصل في 24 مايو 201816 نوفمبر 2014.
- Jonathan Corbet; Alessandro Rubini; Greg Kroah-Hartman (2005). "Linux Device Drivers, Third Edition, Chapter 10. Interrupt Handling" ( كتاب إلكتروني PDF ). أوريلي ميديا. صفحة 269. مؤرشف من الأصل ( كتاب إلكتروني PDF ) في 14 مارس 201525 ديسمبر 2014.
Then it's just a matter of cleaning up, running software interrupts, and getting back to regular work. The "regular work" may well have changed as a result of an interrupt (the handler could
wake_up
a process, for example), so the last thing that happens on return from an interrupt is a possible rescheduling of the processor. - "Basics of Interrupts". مؤرشف من الأصل في 09 أغسطس 201711 نوفمبر 2010.