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

Anonim

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

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

ما المقصود بالمقاطعة؟

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

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

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

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

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