مقاطعة (حوسبة)

(بالتحويل من مقاطعة (نظام تشغيل))

المقاطعة (بالإنجليزية: Interrupt)‏ هي إشارة إلى المعالج أو أمر في مجال البرمجيات يشير عادة إلى حدث يحتاج إلى عناية فورية ويعني وقفًا مؤقتًا لتنفيذ برنامج معين من أجل تنفيذ عملية أخرى قد يكون لها أولوية أكبر أو أي سبب آخر وتشمل المقاطعة تخزين مؤقت لبيانات البرنامج الموقوف لاسترجاعها عند انتهاء المقاطعة.[1][2][3] هناك أنواع مختلفة من الأحداث التي قد تسبب المقاطعة - أمثلة: التقسيم على صفر، الدخول الخاطئ إلى الذاكرة وطلبات الحصول على خدمات نظام التشغيل. لكل مقاطعه يوجد service interrupt المسؤول عن معالجة المقاطعة. عندما يتلقى المعالج المقاطعة، يقوم بوقف عمله وفوراً ينتقل إلى العمل في مكان ثابت. هذا المكان في معظم الحالات يحتوي على عناوين بداية روتين الخدمة (service routine)، ثم يبدأ روتين خدمة المقاطعة عمله، وفي النهاية يعود المعالج للعملية التي توقفت.

يوجد نوعين من المقاطعة :

  • hardware interrupt : هو إشارة إلكترونية تنبيهيه ترسل إلى المعالج من جهاز خارجي.

يمكن تقسيم مقاطعات الأجهزة إلى نوعين :

Edge-Triggered Interrupts - مقاطعات اللواتي يرسلن اشاره اياً كانت لتحديد طلب المقاطعة.

Level-Triggered Interrupts -مقاطعات اللواتي يغيرن وضع تدفق الكهرباء بقناة البيانات بصوره دائمه حتى معالجة المقاطعة.الجهاز المهتم في المقاطعة يغير وضع الخط حتى تلقي رساله مواففه من المعالج (CPU) للقيام بمعالجة المقاطعة.

  • Software interrupts : هو عادة ما يكون أمرًا (يسمى System Call) ضمن مجموعة التعليمات ، عند تنفيذه يقوم أيضًا بنقل المعالج لتنفيذ روتين المقاطعة.

فوائد المقاطعة عدل

جعل المعالج يقوم بتنفيذ أكثر من وظيفة في نفس الوقت -حيث يقوم بتنفيذ جزء من وظيفة ثم يتركها ليذهب لتنفيذ وظيفة أخرى في حالة حدوث مقاطعة وهكذا- من أجل الحصول على سرعة أعلى.

مراجع عدل

  1. ^ Jonathan Corbet (17 نوفمبر 2009). "Receive packet steering". LWN.net. مؤرشف من الأصل في 2018-05-24. اطلع عليه بتاريخ 2014-11-16.
  2. ^ Jonathan Corbet؛ Alessandro Rubini؛ Greg Kroah-Hartman (2005). "Linux Device Drivers, Third Edition, Chapter 10. Interrupt Handling" (PDF). أوريلي ميديا. ص. 269. مؤرشف من الأصل (PDF) في 2015-03-14. اطلع عليه بتاريخ 2014-12-25. 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.
  3. ^ "Basics of Interrupts". مؤرشف من الأصل في 2017-08-09. اطلع عليه بتاريخ 2010-11-11.