الفرق بين المقاطعة والاستثناء

الفرق بين المقاطعة والاستثناء
الفرق بين المقاطعة والاستثناء

فيديو: الفرق بين المقاطعة والاستثناء

فيديو: الفرق بين المقاطعة والاستثناء
فيديو: ما هو عنوان الآي بي؟ - لنتعرف على عنوان الإنترنت الخاص بالأجهزة IP 2024, يوليو
Anonim

مقاطعة مقابل استثناء

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

ما هو المقاطعة؟

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

ما هي الاستثناءات؟

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

ما الفرق بين المقاطعة والاستثناء؟

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

موصى به: