مقاطعة
تحتاج هذه المقالة إلى مصادر إضافية للتحقق . ( February 2014 ) |
| أنظمة التشغيل |
|---|
| الميزات المشتركة |
في أجهزة الكمبيوتر الرقمية ، المقاطعة (يشار إليها أحيانًا باسم الفخ ) [1] هي طلب للمعالج لمقاطعة التعليمات البرمجية التي يتم تنفيذها حاليًا (عندما يُسمح بذلك)، بحيث يمكن معالجة الحدث في الوقت المناسب. إذا تم قبول الطلب، فسيقوم المعالج بتعليق أنشطته الحالية وحفظ حالته وتنفيذ وظيفة تسمى معالج المقاطعة (أو روتين خدمة المقاطعة ، ISR) للتعامل مع الحدث. غالبًا ما تكون هذه المقاطعة مؤقتة، مما يسمح للبرنامج باستئناف [أ] الأنشطة العادية بعد انتهاء معالج المقاطعة، على الرغم من أن المقاطعة قد تشير بدلاً من ذلك إلى خطأ فادح. [2]
تُستخدم المقاطعات عادةً بواسطة الأجهزة للإشارة إلى تغييرات الحالة الإلكترونية أو المادية التي تتطلب انتباهًا حساسًا للوقت. تُستخدم المقاطعات أيضًا بشكل شائع لتنفيذ تعدد المهام في الكمبيوتر ومكالمات النظام ، وخاصة في الحوسبة في الوقت الفعلي . يُقال إن الأنظمة التي تستخدم المقاطعات بهذه الطرق مدفوعة بالمقاطعات. [3]
تاريخ
تم تقديم المقاطعات المادية كطريقة للتحسين، مما أدى إلى القضاء على وقت الانتظار غير المنتج في حلقات الاقتراع ، في انتظار الأحداث الخارجية. كان أول نظام يستخدم هذا النهج هو DYSEAC ، الذي اكتمل في عام 1954، على الرغم من أن الأنظمة السابقة قدمت وظائف فخ الأخطاء. [4]
يُنسب عمومًا إلى جهاز الكمبيوتر UNIVAC 1103A أول استخدام للمقاطعات في عام 1953. [5] [6] في وقت سابق، في UNIVAC I (1951) "تسبب تجاوز الحساب إما في تنفيذ روتين إصلاح مكون من تعليمتين عند العنوان 0، أو، حسب اختيار المبرمج، تسبب في توقف الكمبيوتر". تضمن جهاز IBM 650 (1954) أول ظهور لإخفاء المقاطعات. كان المكتب الوطني للمعايير DYSEAC (1954) أول من استخدم المقاطعات للإدخال/الإخراج. كان جهاز IBM 704 أول من استخدم المقاطعات لتصحيح الأخطاء ، مع "فخ نقل"، والذي يمكنه استدعاء روتين خاص عند مواجهة تعليمة فرعية. كان نظام TX-2 التابع لمختبر لينكولن التابع لمعهد ماساتشوستس للتكنولوجيا (1957) أول من قدم مستويات متعددة من المقاطعات ذات الأولوية. [6]
أنواع

قد يتم إصدار إشارات المقاطعة استجابة لأحداث الأجهزة أو البرامج . يتم تصنيف هذه على أنها مقاطعات أجهزة أو مقاطعات برامج ، على التوالي. بالنسبة لأي معالج معين، يكون عدد أنواع المقاطعات محدودًا بالهندسة المعمارية.
مقاطعات الأجهزة
إن مقاطعة الأجهزة هي حالة مرتبطة بحالة الأجهزة التي قد يتم الإشارة إليها بواسطة جهاز خارجي، مثل خط طلب المقاطعة (IRQ) على جهاز كمبيوتر شخصي، أو يتم اكتشافها بواسطة أجهزة مضمنة في منطق المعالج (مثل مؤقت وحدة المعالجة المركزية في IBM System/370)، للتواصل بأن الجهاز يحتاج إلى اهتمام من نظام التشغيل (OS) [7] أو، إذا لم يكن هناك نظام تشغيل، من البرنامج المعدني العاري الذي يعمل على وحدة المعالجة المركزية. قد تكون هذه الأجهزة الخارجية جزءًا من الكمبيوتر (مثل وحدة تحكم القرص ) أو قد تكون أجهزة طرفية خارجية . على سبيل المثال، يؤدي الضغط على مفتاح لوحة المفاتيح أو تحريك الماوس المتصل بمنفذ PS/2 إلى تشغيل مقاطعات الأجهزة التي تجعل المعالج يقرأ ضغطة المفتاح أو موضع الماوس.
يمكن أن تصل مقاطعات الأجهزة بشكل غير متزامن فيما يتعلق بساعة المعالج، وفي أي وقت أثناء تنفيذ التعليمات. وبالتالي، يتم تكييف جميع إشارات مقاطعات الأجهزة الواردة عن طريق مزامنتها مع ساعة المعالج، ويتم العمل عليها فقط عند حدود تنفيذ التعليمات.
في العديد من الأنظمة، يرتبط كل جهاز بإشارة IRQ معينة. وهذا يجعل من الممكن تحديد الجهاز الذي يطلب الخدمة بسرعة، وتسريع عملية صيانة هذا الجهاز.
في بعض الأنظمة القديمة، مثل CDC 3600 لعام 1964 ، [8] كانت جميع المقاطعات تذهب إلى نفس الموقع، واستخدم نظام التشغيل تعليمات متخصصة لتحديد المقاطعة غير المقنعة ذات الأولوية الأعلى. في الأنظمة المعاصرة، يوجد بشكل عام روتين مقاطعة مميز لكل نوع من المقاطعات (أو لكل مصدر مقاطعة)، وغالبًا ما يتم تنفيذه كجدول متجه مقاطعة واحد أو أكثر .
الإخفاء
إن إخفاء المقاطعة يعني تعطيلها، وبالتالي يتم تأجيلها [ب] أو تجاهلها [ج] بواسطة المعالج، في حين أن إلغاء إخفاء المقاطعة يعني تمكينها. [9]
تحتوي المعالجات عادةً على سجل قناع مقاطعة داخلي ، [d] والذي يسمح بالتمكين الانتقائي [2] (وتعطيل) المقاطعات المادية. ترتبط كل إشارة مقاطعة ببت في سجل القناع. في بعض الأنظمة، يتم تمكين المقاطعة عند تعيين البت، وتعطيلها عند مسح البت. في أنظمة أخرى، يكون العكس صحيحًا، حيث يقوم البت المحدد بتعطيل المقاطعة. عند تعطيل المقاطعة، قد يتجاهل المعالج إشارة المقاطعة المرتبطة، أو قد تظل معلقة. تسمى الإشارات التي تتأثر بالقناع مقاطعات قابلة للإخفاء .
لا تتأثر بعض إشارات المقاطعة بقناع المقاطعة وبالتالي لا يمكن تعطيلها؛ وتسمى هذه المقاطعات المقاطعات غير القابلة للإخفاء (NMIs). تشير هذه المقاطعات إلى أحداث ذات أولوية عالية لا يمكن تجاهلها تحت أي ظرف من الظروف، مثل إشارة انتهاء المهلة من مؤقت المراقبة . فيما يتعلق بـ SPARC ، يمكن منع حدوث المقاطعة غير القابلة للإخفاء (NMI)، على الرغم من أنها تتمتع بأعلى أولوية بين المقاطعات، من خلال استخدام قناع المقاطعة. [10]
المقاطعات المفقودة
أحد أوضاع الفشل هو عندما لا يقوم الجهاز بإنشاء المقاطعة المتوقعة لتغيير في الحالة، مما يتسبب في انتظار نظام التشغيل إلى أجل غير مسمى. اعتمادًا على التفاصيل، قد يؤثر الفشل على عملية واحدة فقط أو قد يكون له تأثير عالمي. تحتوي بعض أنظمة التشغيل على كود خاص للتعامل مع هذا.
على سبيل المثال، يعتمد نظام التشغيل IBM Operating System/360 (OS/360) على مقاطعة نهاية الجهاز غير الجاهز للاستعداد عندما يتم تثبيت شريط على محرك شريط، ولن يقرأ تسمية الشريط حتى تحدث هذه المقاطعة أو يتم محاكاتها. أضافت IBM كودًا في OS/360 بحيث يقوم الأمر VARY ONLINE بمحاكاة مقاطعة نهاية الجهاز على الجهاز المستهدف.
المقاطعات الزائفة
إن المقاطعة الزائفة هي مقاطعة أجهزة لا يمكن العثور على مصدر لها. ويمكن أيضًا استخدام مصطلح "المقاطعة الوهمية" أو "المقاطعة الشبحية" لوصف هذه الظاهرة. تميل المقاطعات الزائفة إلى أن تكون مشكلة مع دائرة مقاطعة سلكية متصلة بمدخل معالج حساس للمستوى. وقد يكون من الصعب تحديد مثل هذه المقاطعات عندما يتصرف النظام بشكل غير صحيح.
في دائرة سلكية أو، فإن شحن/تفريغ السعة الطفيلية من خلال المقاوم التحيزي لخط المقاطعة سوف يتسبب في تأخير بسيط قبل أن يدرك المعالج أن مصدر المقاطعة قد تم مسحه. إذا تم مسح الجهاز المقاطعة في وقت متأخر جدًا في روتين خدمة المقاطعة (ISR)، فلن يكون هناك وقت كافٍ لدائرة المقاطعة للعودة إلى الحالة الساكنة قبل انتهاء المثيل الحالي من روتين خدمة المقاطعة. والنتيجة هي أن المعالج سوف يعتقد أن هناك مقاطعة أخرى معلقة، لأن الجهد عند مدخل طلب المقاطعة لن يكون مرتفعًا أو منخفضًا بما يكفي لإنشاء منطق داخلي لا لبس فيه 1 أو منطق 0. لن يكون للمقاطعة الظاهرة أي مصدر يمكن تحديده، ومن هنا جاء الاسم "الزائف".
قد يكون الانقطاع الزائف أيضًا نتيجة لتشوهات كهربائية بسبب تصميم الدائرة الخاطئ، أو مستويات الضوضاء العالية ، أو التداخل ، أو مشكلات التوقيت، أو في حالات نادرة، أخطاء الجهاز . [11]
قد يؤدي الانقطاع الزائف إلى توقف النظام أو أي عملية غير محددة أخرى إذا لم يأخذ ISR في الاعتبار احتمال حدوث مثل هذه المقاطعة. نظرًا لأن المقاطعات الزائفة تشكل مشكلة في الغالب مع دوائر المقاطعة السلكية أو الدائرة الكهربائية، فإن ممارسة البرمجة الجيدة في مثل هذه الأنظمة هي أن يتحقق ISR من جميع مصادر المقاطعة بحثًا عن أي نشاط ولا يتخذ أي إجراء (بخلاف تسجيل الحدث ربما) إذا لم يكن أي من المصادر يتسبب في المقاطعة. وقد تؤدي حتى إلى تعطل الكمبيوتر في السيناريوهات المعاكسة.
مقاطعات البرامج
يتم طلب مقاطعة البرنامج بواسطة المعالج نفسه عند تنفيذ تعليمات معينة أو عند استيفاء شروط معينة. ترتبط كل إشارة مقاطعة للبرنامج بمعالج مقاطعة معين.
قد يحدث انقطاع في البرنامج عمدًا نتيجة لتنفيذ تعليمة خاصة تستدعي المقاطعة عند تنفيذها. [e] تعمل مثل هذه التعليمات بشكل مشابه لمكالمات البرامج الفرعية وتستخدم لمجموعة متنوعة من الأغراض، مثل طلب خدمات نظام التشغيل والتفاعل مع برامج تشغيل الأجهزة (على سبيل المثال، لقراءة أو كتابة وسائط التخزين). قد تحدث مقاطعات البرامج أيضًا بسبب أخطاء تنفيذ البرنامج أو نظام الذاكرة الافتراضية .
عادةً ما يلتقط نواة نظام التشغيل مثل هذه المقاطعات ويتعامل معها. تتم معالجة بعض المقاطعات بشكل شفاف للبرنامج - على سبيل المثال، الحل الطبيعي لخطأ الصفحة هو جعل الصفحة المطلوبة قابلة للوصول في الذاكرة الفعلية. ولكن في حالات أخرى مثل خطأ التجزئة، ينفذ نظام التشغيل استدعاءً للعملية. في أنظمة التشغيل الشبيهة بنظام يونكس، يتضمن هذا إرسال إشارة مثل SIGSEGV أو SIGBUS أو SIGILL أو SIGFPE ، والتي قد تستدعي معالج إشارة أو تنفذ إجراءً افتراضيًا (إنهاء البرنامج). في نظام التشغيل Windows، يتم إجراء الاستدعاء باستخدام معالجة الاستثناءات المنظمة مع رمز استثناء مثل STATUS_ACCESS_VIOLATION أو STATUS_INTEGER_DIVIDE_BY_ZERO. [12]
في عملية النواة ، من المعتاد ألا يكون من المفترض حدوث بعض أنواع مقاطعات البرامج. ولكن إذا حدثت على الرغم من ذلك، فقد يؤدي ذلك إلى تعطل نظام التشغيل .
مصطلحات
تُستخدم المصطلحات المقاطعة والفخ والاستثناء والخطأ والإجهاض للتمييز بين أنواع المقاطعات ، على الرغم من "عدم وجود إجماع واضح بشأن المعنى الدقيق لهذه المصطلحات". [ 13] قد يشير مصطلح الفخ إلى أي مقاطعة، أو إلى أي مقاطعة برمجية، أو إلى أي مقاطعة برمجية متزامنة، أو فقط إلى المقاطعات الناجمة عن تعليمات تحتوي على كلمة فخ في أسمائها. في بعض الاستخدامات، يشير مصطلح الفخ على وجه التحديد إلى نقطة توقف تهدف إلى بدء تبديل السياق إلى برنامج مراقبة أو مصحح أخطاء . [1] قد يشير أيضًا إلى مقاطعة متزامنة ناجمة عن حالة استثنائية (على سبيل المثال، القسمة على الصفر ، أو الوصول غير الصحيح إلى الذاكرة ، أو التعليمات البرمجية غير القانونية )، [13] على الرغم من أن مصطلح الاستثناء أكثر شيوعًا لهذا الغرض.
يقسم x86 المقاطعات إلى مقاطعات (أجهزة) واستثناءات برمجية ، ويحدد ثلاثة أنواع من الاستثناءات: الأخطاء والفخاخ والإجهاض. [14] [15] المقاطعات (الأجهزة) هي مقاطعات يتم تشغيلها بشكل غير متزامن بواسطة جهاز إدخال/إخراج، وتسمح بإعادة تشغيل البرنامج دون فقدان الاستمرارية. [14] يمكن إعادة تشغيل الخطأ أيضًا ولكنه مرتبط بالتنفيذ المتزامن لتعليمة - يشير عنوان الإرجاع إلى تعليمة الخطأ. الفخ مشابه للخطأ باستثناء أن عنوان الإرجاع يشير إلى التعليمات التي سيتم تنفيذها بعد تعليمة الفخ؛ [16] أحد الاستخدامات البارزة هو تنفيذ مكالمات النظام . [15] يتم استخدام الإجهاض للأخطاء الشديدة، مثل أخطاء الأجهزة والقيم غير القانونية في جداول النظام، وغالبًا لا يسمح [f] بإعادة تشغيل البرنامج. [16]
يستخدم Arm مصطلح الاستثناء للإشارة إلى جميع أنواع المقاطعات، [17] ويقسم الاستثناءات إلى مقاطعات (أجهزة) ، وإلغاءات ، وإعادة تعيين ، وتعليمات توليد استثناءات. تتوافق عمليات الإلغاء مع استثناءات x86 وقد تكون عمليات إلغاء مسبقة (عمليات جلب تعليمات فاشلة) أو عمليات إلغاء بيانات (عمليات وصول بيانات فاشلة)، وقد تكون متزامنة أو غير متزامنة. قد تكون عمليات الإلغاء غير المتزامنة دقيقة أو غير دقيقة. عمليات إلغاء MMU (أخطاء الصفحة) متزامنة. [18]
يستخدم RISC-V المقاطعة كمصطلح إجمالي بالإضافة إلى المجموعة الفرعية الخارجية؛ وتسمى المقاطعات الداخلية بالاستثناءات.
طرق التحفيز
تم تصميم كل مدخل إشارة مقاطعة ليتم تشغيله إما بواسطة مستوى إشارة منطقية أو حافة إشارة معينة (انتقال مستوى). تطلب المدخلات الحساسة للمستوى خدمة المعالج باستمرار طالما تم تطبيق مستوى منطقي معين (مرتفع أو منخفض) على المدخل. تتفاعل المدخلات الحساسة للحافة مع حواف الإشارة: ستتسبب حافة معينة (مرتفعة أو منخفضة) في إغلاق طلب الخدمة؛ يعيد المعالج ضبط القفل عندما ينفذ معالج المقاطعة.
تم تشغيله على المستوى
يتم طلب المقاطعة التي يتم تشغيلها على مستوى معين من خلال تثبيت إشارة المقاطعة عند مستوى المنطق النشط (العالي أو المنخفض) . يستدعي الجهاز مقاطعة يتم تشغيلها على مستوى معين من خلال دفع الإشارة إلى المستوى النشط وتثبيتها عليه. ينفي الإشارة عندما يأمره المعالج بذلك، وعادةً بعد صيانة الجهاز.
يقوم المعالج بأخذ عينات من إشارة الإدخال المقاطعة أثناء كل دورة تعليمات. وسوف يتعرف المعالج على طلب المقاطعة إذا تم تأكيد الإشارة عند حدوث أخذ العينات.
تسمح المدخلات التي يتم تشغيلها على مستوى معين لأجهزة متعددة بمشاركة إشارة مقاطعة مشتركة عبر اتصالات سلكية أو. يقوم المعالج باستطلاع لتحديد الأجهزة التي تطلب الخدمة. بعد صيانة جهاز ما، قد يقوم المعالج باستطلاع مرة أخرى، وإذا لزم الأمر، صيانة أجهزة أخرى قبل الخروج من ISR.
تم تشغيله بواسطة الحافة
إن المقاطعة التي يتم تشغيلها بواسطة الحافة هي مقاطعة يتم الإشارة إليها من خلال انتقال المستوى على خط المقاطعة، إما حافة هابطة (من الأعلى إلى الأدنى) أو حافة صاعدة (من الأدنى إلى الأعلى). يقوم الجهاز الذي يرغب في إرسال إشارة إلى المقاطعة بدفع نبضة إلى الخط ثم يطلق الخط إلى حالته غير النشطة. إذا كانت النبضة قصيرة جدًا بحيث لا يمكن اكتشافها بواسطة I/O المستطلع، فقد تكون هناك حاجة إلى أجهزة خاصة لاكتشافها. الجزء المهم من تشغيل الحافة هو أن الإشارة يجب أن تنتقل لتشغيل المقاطعة؛ على سبيل المثال، إذا كانت الإشارة عالية-منخفضة-منخفضة، فلن يكون هناك سوى مقاطعة حافة هابطة واحدة يتم تشغيلها، ولن يؤدي المستوى المنخفض المستمر إلى تشغيل مقاطعة أخرى. يجب أن تعود الإشارة إلى المستوى المرتفع ثم تنخفض مرة أخرى لتشغيل مقاطعة أخرى. يتناقض هذا مع مشغل المستوى حيث يستمر المستوى المنخفض في إنشاء المقاطعات (إذا تم تمكينها) حتى تعود الإشارة إلى مستواها المرتفع.
قد تتضمن أجهزة الكمبيوتر التي تحتوي على مقاطعات يتم تشغيلها عند الحافة سجل مقاطعة يحتفظ بحالة المقاطعات المعلقة. وعادةً ما تحتوي الأنظمة التي تحتوي على سجلات مقاطعة على سجلات قناع مقاطعة أيضًا.
استجابة المعالج
يقوم المعالج بأخذ عينات من إشارات تشغيل المقاطعة أو سجل المقاطعة أثناء كل دورة تعليمات، وسيقوم بمعالجة المقاطعة التي تم تمكينها ذات الأولوية الأعلى والتي تم العثور عليها. وبغض النظر عن طريقة التشغيل، سيبدأ المعالج معالجة المقاطعة عند حدود التعليمات التالية بعد تشغيل تم اكتشافه، وبالتالي ضمان:
- يتم حفظ حالة المعالج [g] بطريقة معروفة. عادةً ما يتم تخزين الحالة في مكان معروف، ولكن في بعض الأنظمة يتم تخزينها على مكدس.
- تم تنفيذ جميع التعليمات السابقة للتعليمات المشار إليها بواسطة الكمبيوتر بشكل كامل.
- لم يتم تنفيذ أي تعليمات تتجاوز تلك التي أشار إليها الكمبيوتر الشخصي، أو تم التراجع عن أي من هذه التعليمات قبل التعامل مع المقاطعة.
- حالة تنفيذ التعليمات التي يشير إليها الكمبيوتر معروفة.
توجد عدة بنيات معمارية مختلفة للتعامل مع المقاطعات. ففي بعضها، يوجد معالج مقاطعة واحد [19] يجب أن يبحث عن المقاطعة التي تم تمكينها بأعلى أولوية. وفي أخرى، توجد معالجات مقاطعة منفصلة لأنواع مقاطعات منفصلة، [20] أو قنوات أو أجهزة إدخال/إخراج منفصلة، أو كليهما. [21] [22] وقد يكون لعدة أسباب مقاطعة نفس نوع المقاطعة وبالتالي نفس معالج المقاطعة، مما يتطلب من معالج المقاطعة تحديد السبب. [20]
تنفيذ النظام
The neutrality of this section is disputed. (January 2022) |
يمكن التعامل مع المقاطعات بشكل كامل في الأجهزة بواسطة وحدة المعالجة المركزية، أو يمكن التعامل معها بواسطة كل من وحدة المعالجة المركزية ومكون آخر مثل وحدة تحكم المقاطعة القابلة للبرمجة أو الجسر الجنوبي .
إذا تم استخدام مكون إضافي، فسيتم توصيل هذا المكون بين جهاز المقاطعة ودبوس مقاطعة المعالج لتوصيل عدة مصادر مقاطعة إلى خط أو خطين من خطوط وحدة المعالجة المركزية المتوفرة عادةً. إذا تم تنفيذه كجزء من وحدة تحكم الذاكرة ، يتم تعيين المقاطعات في مساحة عنوان ذاكرة النظام . [ بحاجة لمصدر ]
في تنفيذات الأنظمة على الشريحة (SoC)، تأتي المقاطعات من كتل مختلفة من الشريحة وعادةً ما يتم تجميعها في وحدة تحكم المقاطعة المرفقة بمعالج واحد أو أكثر (في نظام متعدد النواة). [23]
طلبات المقاطعة المشتركة
The neutrality of this section is disputed. (December 2021) |
يمكن لأجهزة متعددة أن تشترك في خط مقاطعة يتم تشغيله بالحافة إذا تم تصميمها لذلك. يجب أن يحتوي خط المقاطعة على مقاومة سحب لأسفل أو سحب لأعلى بحيث يستقر عند عدم تشغيله بنشاط على حالته غير النشطة، وهي الحالة الافتراضية له. تشير الأجهزة إلى المقاطعة عن طريق تشغيل الخط لفترة وجيزة إلى حالته غير الافتراضية، وتترك الخط يطفو (لا تدفعه بنشاط) عند عدم الإشارة إلى المقاطعة. يُشار إلى هذا النوع من الاتصال أيضًا باسم المجمع المفتوح . يحمل الخط بعد ذلك جميع النبضات التي تولدها جميع الأجهزة. (هذا مشابه لحبل السحب في بعض الحافلات والعربات التي يمكن لأي راكب سحبها للإشارة إلى السائق بأنه يطلب التوقف.) ومع ذلك، قد تندمج نبضات المقاطعة من أجهزة مختلفة إذا حدثت في وقت قريب. لتجنب فقدان المقاطعات، يجب أن يتم تشغيل وحدة المعالجة المركزية على الحافة الخلفية للنبضة (على سبيل المثال الحافة الصاعدة إذا تم سحب الخط لأعلى وخفضه). بعد اكتشاف المقاطعة، يجب على وحدة المعالجة المركزية التحقق من جميع الأجهزة لمتطلبات الخدمة.
لا تعاني المقاطعات التي يتم تشغيلها بواسطة الحافة من المشاكل التي تعاني منها المقاطعات التي يتم تشغيلها بواسطة المستوى فيما يتعلق بالمشاركة. يمكن تأجيل خدمة جهاز ذي أولوية منخفضة بشكل تعسفي، بينما تستمر المقاطعات من الأجهزة ذات الأولوية العالية في تلقيها وخدمتها. إذا كان هناك جهاز لا تعرف وحدة المعالجة المركزية كيفية خدمته، مما قد يؤدي إلى إثارة مقاطعات زائفة، فلن يتداخل مع إشارات المقاطعة للأجهزة الأخرى. ومع ذلك، من السهل تفويت المقاطعة التي يتم تشغيلها بواسطة الحافة - على سبيل المثال، عندما يتم إخفاء المقاطعات لفترة - وما لم يكن هناك نوع من مزلاج الأجهزة الذي يسجل الحدث، فمن المستحيل استرداده. تسببت هذه المشكلة في العديد من "الإغلاقات" في أجهزة الكمبيوتر المبكرة لأن المعالج لم يكن يعرف أنه من المتوقع أن يفعل شيئًا. غالبًا ما تحتوي الأجهزة الحديثة على سجل حالة مقاطعة واحد أو أكثر يغلق طلبات المقاطعات؛ يمكن لكود معالجة المقاطعة الذي يتم تشغيله بواسطة الحافة والمكتوب جيدًا التحقق من هذه السجلات للتأكد من عدم تفويت أي أحداث.
تستخدم ناقلة الهندسة المعمارية القياسية للصناعة ( ISA ) مقاطعات يتم تشغيلها من الحافة، دون إلزام الأجهزة بمشاركة خطوط IRQ، ولكن جميع اللوحات الأم الرئيسية التي تعمل بنظام ISA تتضمن مقاومات سحب على خطوط IRQ الخاصة بها، لذا فإن أجهزة ISA التي تتصرف بشكل جيد والتي تتشارك خطوط IRQ يجب أن تعمل بشكل جيد. كما يستخدم المنفذ الموازي مقاطعات يتم تشغيلها من الحافة. تفترض العديد من الأجهزة القديمة أنها تتمتع باستخدام حصري لخطوط IRQ، مما يجعل مشاركتها غير آمنة كهربائيًا.
هناك ثلاث طرق يمكن من خلالها رفع أجهزة متعددة "تتشارك في نفس الخط". الطريقة الأولى هي التوصيل الحصري (التبديل) أو التوصيل الحصري (بالدبابيس). الطريقة الثانية هي الناقل (كلها متصلة بنفس الخط للاستماع): يجب أن تعرف البطاقات الموجودة على الناقل متى يجب أن تتحدث ومتى لا يجب أن تتحدث (أي ناقل ISA). يمكن تشغيل التحدث بطريقتين: من خلال مزلاج التراكم أو من خلال بوابات منطقية. تتوقع بوابات المنطق تدفق بيانات مستمر يتم مراقبته بحثًا عن إشارات رئيسية. يتم تشغيل المراكم فقط عندما يثير الجانب البعيد البوابة بما يتجاوز عتبة، وبالتالي لا يلزم وجود سرعة متفاوض عليها. لكل منها مزايا السرعة مقابل المسافة. المشغل، بشكل عام، هو الطريقة التي يتم بها اكتشاف الإثارة: الحافة الصاعدة، الحافة الهابطة، العتبة ( يمكن لمذبذب الذبذبات تشغيل مجموعة كبيرة ومتنوعة من الأشكال والظروف).
يجب أن يكون تشغيل مقاطعات البرامج مضمنًا في البرنامج (في كل من نظام التشغيل والتطبيق). يحتوي تطبيق "C" على جدول تشغيل (جدول وظائف) في رأسه، والذي يعرفه كل من التطبيق ونظام التشغيل ويستخدمانه بشكل مناسب ولا يرتبط بالأجهزة. ومع ذلك، لا تخلط بين هذا وبين مقاطعات الأجهزة التي ترسل إشارات إلى وحدة المعالجة المركزية (تشغل وحدة المعالجة المركزية البرنامج من جدول وظائف، على نحو مماثل لمقاطعات البرامج).
صعوبة مشاركة خطوط المقاطعة
إن الأجهزة المتعددة التي تشترك في خط مقاطعة (من أي نمط تشغيل) تعمل جميعها كمصدر مقاطعة زائف بالنسبة لبعضها البعض. ومع وجود العديد من الأجهزة على خط واحد، فإن عبء العمل في خدمة المقاطعات ينمو بما يتناسب مع مربع عدد الأجهزة. لذلك فمن الأفضل توزيع الأجهزة بالتساوي عبر خطوط المقاطعة المتاحة. إن نقص خطوط المقاطعة يمثل مشكلة في تصميمات الأنظمة القديمة حيث تكون خطوط المقاطعة موصلات مادية مميزة. المقاطعات التي يتم إشارتها برسالة، حيث يكون خط المقاطعة افتراضيًا، مفضلة في بنيات الأنظمة الجديدة (مثل PCI Express ) وتخفف من هذه المشكلة إلى حد كبير.
لا توفر بعض الأجهزة ذات واجهة البرمجة المصممة بشكل سيئ أي وسيلة لتحديد ما إذا كانت قد طلبت الخدمة أم لا. وقد تتعطل أو تتصرف بشكل غير سليم إذا تم تقديم الخدمة لها عندما لا تريدها. ولا تتحمل مثل هذه الأجهزة المقاطعات الزائفة، وبالتالي لا تتحمل أيضًا مشاركة خط المقاطعة. تشتهر بطاقات ISA ، نظرًا لتصميمها وبنائها الرخيصين في كثير من الأحيان، بهذه المشكلة. أصبحت مثل هذه الأجهزة نادرة للغاية، حيث أصبحت منطق الأجهزة أرخص وأصبحت هياكل الأنظمة الجديدة تلزم المقاطعات القابلة للمشاركة.
هجين
تستخدم بعض الأنظمة مزيجًا من الإشارات التي يتم تشغيلها على المستوى والإشارات التي يتم تشغيلها على الحافة. لا يبحث الجهاز عن الحافة فحسب، بل يتحقق أيضًا من بقاء إشارة المقاطعة نشطة لفترة زمنية معينة.
الاستخدام الشائع للمقاطعة الهجينة هو إدخال NMI (المقاطعة غير القابلة للإخفاء). ولأن المقاطعات غير القابلة للإخفاء تشير عمومًا إلى أحداث رئيسية - أو حتى كارثية - في النظام، فإن التنفيذ الجيد لهذه الإشارة يحاول ضمان صحة المقاطعة من خلال التحقق من بقائها نشطة لفترة من الوقت. يساعد هذا النهج المكون من خطوتين في القضاء على المقاطعات الزائفة التي تؤثر على النظام.
رسالة تم الإشارة إليها
لا تستخدم المقاطعة التي يتم الإشارة إليها برسالة خط مقاطعة فعليًا. بدلاً من ذلك، يرسل الجهاز طلبه للخدمة عن طريق إرسال رسالة قصيرة عبر بعض وسائط الاتصالات، عادةً ناقل الكمبيوتر . قد تكون الرسالة من نوع مخصص للمقاطعات، أو قد تكون من نوع موجود مسبقًا مثل الكتابة في الذاكرة.
تتصرف المقاطعات التي يتم إشارتها برسالة مثل المقاطعات التي يتم تشغيلها من الحافة إلى حد كبير، حيث تكون المقاطعة إشارة لحظية وليست حالة مستمرة. تتعامل برامج معالجة المقاطعات مع الاثنين بنفس الطريقة تقريبًا. عادةً، يُسمح بدمج مقاطعات متعددة معلقة يتم إشارتها برسالة بنفس الرسالة (نفس خط المقاطعة الافتراضي)، تمامًا كما يمكن دمج المقاطعات التي يتم تشغيلها من الحافة والمتباعدة عن بعضها البعض.
يمكن مشاركة متجهات المقاطعة التي يتم إرسال إشارات إليها عبر الرسائل ، إلى الحد الذي يمكن فيه مشاركة وسيلة الاتصال الأساسية. ولا يتطلب الأمر بذل أي جهد إضافي.
نظرًا لأن هوية المقاطعة يتم تحديدها من خلال نمط من بتات البيانات، فلا يتطلب ذلك موصلًا ماديًا منفصلًا، ويمكن التعامل بكفاءة مع العديد من المقاطعات المختلفة. وهذا يقلل من الحاجة إلى المشاركة. ويمكن أيضًا تمرير رسائل المقاطعة عبر ناقل تسلسلي، دون الحاجة إلى أي خطوط إضافية.
PCI Express ، وهو ناقل حاسوب تسلسلي، يستخدم المقاطعات المرسلة بالرسائل حصريًا.
جرس الباب
This section does not cite any sources. (December 2020) |
في تشبيه الضغط على الزر المطبق على أنظمة الكمبيوتر ، غالبًا ما يستخدم مصطلح جرس الباب أو مقاطعة جرس الباب لوصف آلية يمكن من خلالها لنظام برمجي إرسال إشارة أو إخطار لجهاز كمبيوتر به بعض العمل الذي يجب القيام به. عادةً، يضع نظام البرمجيات البيانات في بعض مواقع الذاكرة المعروفة والمتفق عليها بشكل متبادل، و"يدق جرس الباب" عن طريق الكتابة إلى موقع ذاكرة مختلف. غالبًا ما يُطلق على موقع الذاكرة المختلف هذا منطقة جرس الباب، وقد يكون هناك حتى أجراس باب متعددة تخدم أغراضًا مختلفة في هذه المنطقة. هذا الفعل المتمثل في الكتابة إلى منطقة جرس الباب من الذاكرة هو الذي "يدق الجرس" ويخطر الجهاز المادي بأن البيانات جاهزة ومنتظرة. سيعرف الجهاز المادي الآن أن البيانات صالحة ويمكن التصرف بناءً عليها. عادةً ما يكتب البيانات على محرك أقراص ثابت ، أو يرسلها عبر شبكة ، أو يشفرها ، إلخ.
مصطلح مقاطعة جرس الباب هو عادة تسمية خاطئة . إنه يشبه المقاطعة، لأنه يتسبب في قيام الجهاز ببعض العمل؛ ومع ذلك، يتم تنفيذ منطقة جرس الباب أحيانًا كمنطقة استطلاع ، وأحيانًا تكتب منطقة جرس الباب من خلال سجلات الجهاز المادية ، وأحيانًا يتم توصيل منطقة جرس الباب مباشرة بسجلات الجهاز المادية. عند الكتابة من خلال سجلات الجهاز المادية أو مباشرة إليها، قد يتسبب هذا في حدوث مقاطعة حقيقية في وحدة المعالجة المركزية للجهاز ( CPU )، إذا كان لديه واحدة.
يمكن مقارنة مقاطعات جرس الباب بمقاطعات إشارة الرسالة ، حيث أن لديهم بعض أوجه التشابه.
متعدد المعالجات IPI
في أنظمة المعالجات المتعددة ، قد يرسل المعالج طلب مقاطعة إلى معالج آخر عبر المقاطعات بين المعالجات [h] (IPI).
أداء
توفر المقاطعات تكاليف إضافية منخفضة وزمن وصول جيد عند انخفاض الحمل، ولكنها تتدهور بشكل كبير عند معدل مقاطعة مرتفع ما لم يتم توخي الحذر لمنع العديد من الأمراض. تسمى الظاهرة التي يتعطل فيها أداء النظام الإجمالي بشدة بسبب الكميات المفرطة من وقت المعالجة المستغرق في التعامل مع المقاطعات بعاصفة المقاطعة .
توجد أشكال مختلفة من الأقفال الحية ، عندما يقضي النظام كل وقته في معالجة المقاطعات مع استبعاد المهام الأخرى المطلوبة. في ظل الظروف القاسية، قد يؤدي عدد كبير من المقاطعات (مثل حركة مرور الشبكة العالية جدًا) إلى توقف النظام تمامًا. لتجنب مثل هذه المشكلات، يجب على نظام التشغيل جدولة معالجة مقاطعات الشبكة بعناية كما هو الحال في جدولة تنفيذ العملية. [24]
مع المعالجات متعددة النواة، يمكن تحقيق تحسينات إضافية في الأداء في التعامل مع المقاطعات من خلال التوسع في جانب الاستقبال (RSS) عند استخدام بطاقات الشبكة متعددة الطوابير . توفر بطاقات الشبكة هذه طوابير استقبال متعددة مرتبطة بمقاطعات منفصلة؛ من خلال توجيه كل من هذه المقاطعات إلى نوى مختلفة، يمكن توزيع معالجة طلبات المقاطعة التي يتم تشغيلها بواسطة حركة مرور الشبكة التي تستقبلها بطاقة شبكة واحدة بين نوى متعددة. يمكن تنفيذ توزيع المقاطعات بين النوى تلقائيًا بواسطة نظام التشغيل، أو يمكن تكوين توجيه المقاطعات (يشار إليها عادةً باسم تقارب IRQ ) يدويًا. [25] [26]
إن التنفيذ القائم على البرمجيات البحتة لتوزيع حركة المرور المستقبلة، والمعروف باسم توجيه حزمة الاستقبال (RPS)، يوزع حركة المرور المستقبلة بين النوى لاحقًا في مسار البيانات، كجزء من وظيفة معالج المقاطعة . تشمل مزايا RPS على RSS عدم وجود متطلبات لأجهزة معينة، ومرشحات توزيع حركة مرور أكثر تقدمًا، ومعدل أقل للمقاطعات التي تنتجها بطاقة NIC. كجانب سلبي، يزيد RPS من معدل المقاطعات بين المعالجات (IPIs). يأخذ توجيه تدفق الاستقبال (RFS) النهج القائم على البرمجيات إلى أبعد من ذلك من خلال مراعاة موقع التطبيق ؛ يتم تحقيق المزيد من تحسينات الأداء من خلال معالجة طلبات المقاطعة بواسطة نفس النوى التي سيتم استهلاك حزم الشبكة المحددة عليها بواسطة التطبيق المستهدف. [25] [27] [28]
الاستخدامات النموذجية
تُستخدم المقاطعات عادةً لخدمة مؤقتات الأجهزة، ونقل البيانات من وإلى وحدات التخزين (مثل، إدخال/إخراج القرص) وواجهات الاتصال (مثل، UART ، Ethernet )، ومعالجة أحداث لوحة المفاتيح والفأرة، والاستجابة لأي أحداث أخرى حساسة للوقت حسبما يتطلبه نظام التطبيق. تُستخدم المقاطعات غير القابلة للإخفاء عادةً للاستجابة للطلبات ذات الأولوية العالية مثل مهلة انتهاء صلاحية مؤقت المراقبة وإشارات انقطاع الطاقة والفخاخ .
غالبًا ما تُستخدم مؤقتات الأجهزة لتوليد مقاطعات دورية. في بعض التطبيقات، يتم حساب مثل هذه المقاطعات بواسطة معالج المقاطعة لتتبع الوقت المطلق أو المنقضي، أو يستخدمها مجدول مهام نظام التشغيل لإدارة تنفيذ العمليات الجارية ، أو كليهما. تُستخدم المقاطعات الدورية أيضًا بشكل شائع لاستدعاء أخذ العينات من أجهزة الإدخال مثل المحولات التناظرية إلى الرقمية وواجهات الترميز التزايدية ومدخلات GPIO ، ولبرمجة أجهزة الإخراج مثل المحولات الرقمية إلى التناظرية ووحدات التحكم في المحرك ومخرجات GPIO.
تشير مقاطعة القرص إلى اكتمال نقل البيانات من أو إلى الجهاز المحيطي للقرص؛ وقد يتسبب هذا في تشغيل عملية تنتظر القراءة أو الكتابة. تتنبأ مقاطعة إيقاف التشغيل بفقدان الطاقة الوشيك، مما يسمح للكمبيوتر بإجراء إيقاف تشغيل منظم بينما لا يزال هناك ما يكفي من الطاقة للقيام بذلك. تتسبب مقاطعات لوحة المفاتيح عادةً في تخزين ضغطات المفاتيح مؤقتًا لتنفيذ الكتابة المسبقة .
تُستخدم المقاطعات أحيانًا لمحاكاة التعليمات غير المنفذة على بعض أجهزة الكمبيوتر في عائلة منتجات معينة. [29] [30] على سبيل المثال ، يمكن تنفيذ تعليمات النقطة العائمة في الأجهزة على بعض الأنظمة ومحاكاتها على أنظمة أقل تكلفة. في الحالة الأخيرة، سيؤدي تنفيذ تعليمة النقطة العائمة غير المنفذة إلى حدوث استثناء مقاطعة "تعليمات غير قانونية". سينفذ معالج المقاطعة وظيفة النقطة العائمة في البرنامج ثم يعود إلى البرنامج الذي تمت مقاطعته كما لو تم تنفيذ التعليمات المنفذة على الأجهزة. [31] يوفر هذا إمكانية نقل برامج التطبيق عبر الخط بأكمله.
المقاطعات تشبه الإشارات ، والفرق هو أن الإشارات تُستخدم للاتصال بين العمليات (IPC)، بوساطة النواة (ربما عبر مكالمات النظام) وتتولى العمليات التعامل معها، بينما المقاطعات بوساطة المعالج وتتولى النواة التعامل معها . قد تمرر النواة المقاطعة كإشارة إلى العملية التي تسببت فيها (الأمثلة النموذجية هي SIGSEGV و SIGBUS و SIGILL و SIGFPE ).
انظر أيضا
- وحدة التحكم المتقدمة في المقاطعة القابلة للبرمجة (APIC)
- مكالمة مقاطعة BIOS
- البرمجة الموجهة بالأحداث
- معالجة الاستثناءات
- INT (تعليمات x86)
- مقاطعة الاندماج
- معالج المقاطعة
- مقاطعة زمن الوصول
- المقاطعات في معالجات 65xx
- قائمة المقاطعة لـ رالف براون
- المقاطعات في بنية IBM System/360
- نظام التشغيل المحدد بالوقت
- التشغيل الطرفي المستقل
ملحوظات
- ^ قد يستأنف نظام التشغيل العملية المتقطعة أو قد يتحول إلى عملية مختلفة.
- ^ عادةً، تظل أحداث المقاطعة المرتبطة بالإدخال/الإخراج معلقة حتى يتم تمكين المقاطعة أو مسحها صراحةً، على سبيل المثال، من خلال تعليمات اختبار المقاطعة المعلقة ( TPI ) لنظام IBM System/370-XA والإصدارات الأحدث.
- ^ على سبيل المثال، عندما تكون بتات قناع البرنامج على نظام IBM System/360 تساوي 0 (معطلة)، فإن أحداث الفائض والأهمية المقابلة لا تؤدي إلى مقاطعة معلقة.
- ^ قد يكون سجل القناع عبارة عن سجل واحد أو سجلات متعددة، على سبيل المثال، بتات في PSW وبتات أخرى في سجلات التحكم .
- ^ انظر INT (تعليمات x86)
- ^ يمكن لبعض أنظمة التشغيل التعافي من الأخطاء الجسيمة، على سبيل المثال، الترقيم في صفحة من ملف الترقيم بعد خطأ ECC غير قابل للتصحيح في صفحة غير معدلة.
- ^ قد يكون هذا مجرد عداد البرنامج (PC) ، أو PSW ، أو سجلات متعددة.
- ^ تُعرف باسم نقرات الكتف في بعض أنظمة تشغيل IBM.
مراجع
- ^ ab "The Jargon File, version 4.4.7". 2003-10-27 . تم الاسترجاع في 20 يناير 2022 .
- ^ من تأليف جوناثان كوربيت؛ أليساندرو روبيني؛ جريج كرواه هارتمان (2005). "برامج تشغيل أجهزة لينكس، الإصدار الثالث، الفصل 10. معالجة المقاطعات" (PDF) . أوريلي ميديا . ص. 269. تم الاسترجاع في 25 ديسمبر 2014. إذن، الأمر يتعلق فقط بالتنظيف، وتشغيل مقاطعات البرامج، والعودة إلى العمل العادي .
ربما تغير "العمل العادي" نتيجة لمقاطعة (قد يكون المعالج
عملية، على سبيل المثال)، لذا فإن آخر شيء يحدث عند العودة من المقاطعة هو إعادة جدولة المعالج المحتملة.
wake_up - ^ روزنثال، سكوت (مايو 1995). "أساسيات المقاطعات". مؤرشف من الأصل في 2016-04-26 . تم الاسترجاع في 2010-11-11 .
- ^ كود، إدغار ف. "البرمجة المتعددة". التقدم في الحاسبات . 3 : 82.
- ^ بيل، سي جوردون؛ نيويل، ألين (1971). هياكل الكمبيوتر: قراءات وأمثلة. ماكجرو هيل. ص 46. ISBN 9780070043572تم الاسترجاع في 18 فبراير 2019 .
- ^ ab Smotherman, Mark. "Interrupts" . تم الاسترجاع في 22 ديسمبر 2021 .
- ^ "مقاطعات الأجهزة" . تم الاسترجاع في 2014-02-09 .
- ^ "تعليمات المقاطعة". دليل مرجعي لنظام الكمبيوتر Control Data 3600 (PDF) . شركة Control Data Corporation. يوليو 1964. ص. 4-6. 60021300.
- ^ باي، ينج (2017). هندسة المتحكمات الدقيقة باستخدام MSP432: الأساسيات والتطبيقات. دار نشر سي آر سي. ص. 21. رقم ISBN 978-1-4987-7298-3. LCCN 2016020120.
في نظام Cortex-M4، تتمتع المقاطعات والاستثناءات بالخصائص التالية: ... بشكل عام، يتم استخدام بت واحد في سجل القناع لإخفاء (تعطيل) أو إزالة القناع (تمكين) حدوث مقاطعات/استثناءات معينة
- ^ "مستويات المقاطعة" . تم الاسترجاع في 2023-11-17 .
- ^ لي، تشينغ؛ ياو، كارولين (2003). المفاهيم في الوقت الحقيقي للأنظمة المضمنة . دار نشر سي آر سي. ص. 163. رقم ISBN 1482280825.
- ^ "استثناءات الأجهزة". docs.microsoft.com . 3 أغسطس 2021.
- ^ ab Hyde, Randall (1996). "الفصل السابع عشر: المقاطعات والفخاخ والاستثناءات (الجزء الأول)". فن برمجة لغة التجميع . تم الاسترجاع في 22 ديسمبر 2021. مفهوم المقاطعة هو شيء توسع نطاقه على مر السنين .
لقد أضافت عائلة 80x86 إلى الارتباك المحيط بالمقاطعات من خلال تقديم تعليمة int (مقاطعة البرنامج). في الواقع، استخدم مصنعون مختلفون مصطلحات مثل الاستثناءات والأخطاء والإجهاض والفخاخ والمقاطعات لوصف الظواهر التي يناقشها هذا الفصل. لسوء الحظ، لا يوجد إجماع واضح بشأن المعنى الدقيق لهذه المصطلحات. يتبنى مؤلفون مختلفون مصطلحات مختلفة لاستخدامهم الخاص.
- ^ "دليل مطوري برامج Intel® 64 وIA-32 Architectures المجلد 1: البنية الأساسية". ص. 6-12 المجلد 1. تم الاسترجاع في 22 ديسمبر 2021 .
- ^ ab Bryant, Randal E.; O'Hallaron, David R. (2016). "8.1.2 Classes of exceptions". Computer systems: a programmer's perspective (الطبعة الثالثة، العالمية). Harlow: Pearson. ISBN 978-1-292-10176-7.
- ^ "دليل مطور برامج معالجات Intel® 64 وIA-32، المجلد 3أ: دليل برمجة النظام، الجزء 1". ص. 6-5، المجلد 3أ . تم الاسترجاع في 22 ديسمبر 2021 .
- ^ "معالجة الاستثناءات". developer.arm.com . دليل مبرمجي سلسلة ARM Cortex-A لـ ARMv7-A . تم الاسترجاع في 21 يناير 2022 .
- ^ "أنواع الاستثناءات". developer.arm.com . دليل مبرمجي سلسلة ARM Cortex-A لـ ARMv7-A . تم الاسترجاع في 22 ديسمبر 2021 .
- ^ Control Data 6400/6500/6600 Computer Systems Reference Manual (PDF) . Revision K. Control Data Corporation . October 11, 1966. 60021300K . Retrieved May 17, 2023 .
- ^ ab IBM System/360 Principles of Operation (PDF) (الطبعة الثامنة). IBM . سبتمبر 1968. ص 77. A22-6821-7.
- ^ دليل معالج PDP-11 PDP11/04//34a/44/60/70 (PDF) . شركة Digital Equipment Corporation . 1979. ص 128-131.
- ^ PDP-11 Peripherals and Interfacing Handbook (PDF) . Digital Equipment Corporation . ص. 4.
- ^ ييو، جوزيف (2010-01-01)، ييو، جوزيف (محرر)، "الفصل 2 - نظرة عامة على Cortex-M3"، الدليل النهائي على ARM Cortex-M3 (الطبعة الثانية) ، أكسفورد: نيونس، ص. 11-24، doi :10.1016/b978-1-85617-963-8.00005-3، ISBN 978-1-85617-963-8تم الاسترجاع بتاريخ 2023-10-11
- ^ موغول، جيفري سي؛ راماكريشنان، كيه كيه (1997). "القضاء على قفل الاستقبال المباشر في نواة مدفوعة بالمقاطعات". معاملات ACM لأنظمة الكمبيوتر . 15 (3): 217–252. doi :10.1145/263326.263335. S2CID 215749380. تم الاسترجاع في 2010-11-11 .
- ^ أب توم هربرت. ويليم دي بروين (9 مايو 2014). "التوثيق/الشبكات/scaling.txt". وثائق نواة لينكس . kernel.org . تم الاسترجاع 16 نوفمبر، 2014 .
- ^ "Intel 82574 Gigabit Ethernet Controller Family Datasheet" (PDF) . Intel . يونيو 2014. ص. 1 . تم الاسترجاع في 16 نوفمبر 2014 .
- ^ جوناثان كوربيت (17 نوفمبر 2009). "توجيه حزمة الاستقبال". LWN.net . تم الاسترجاع في 16 نوفمبر 2014 .
- ^ جيك إيدج (7 أبريل 2010). "استقبال توجيه التدفق". LWN.net . تم الاسترجاع في 16 نوفمبر 2014 .
- ^ "DECIMAL SIMULATOR" (PDF) . نظام التشغيل IBM System/360 - دليل دعم الطراز 91 (PDF) . مكتبة مرجع الأنظمة. ص 11-12. C28-6666-0 . تم الاسترجاع في 2 سبتمبر 2024 .
- ^ Thusoo, Shalesh; et al. "Patent US 5632028 A". Google Patents . تم الاسترجاع في 13 أغسطس 2017 .
- ^ Altera Corporation (2009). مرجع معالج Nios II (PDF) . ص. 4. تم الاسترجاع في 13 أغسطس 2017 .
روابط خارجية
- المقاطعات أصبحت سهلة
- مقاطعات لوحدة التحكم الدقيقة Microchip PIC
- جدول مقاطعة IBM PC
- جامعة ألبرتا CMPUT 296 ملاحظات الحوسبة الملموسة حول المقاطعات، تم أرشفتها من الأصل في 13 مارس 2012
- مقاطعات تغيير دبوس Arduino - مقال بقلم Adityapratap Singh

