Különbség A Megszakítás és A Kivétel Között

Különbség A Megszakítás és A Kivétel Között
Különbség A Megszakítás és A Kivétel Között

Videó: Különbség A Megszakítás és A Kivétel Között

Videó: Különbség A Megszakítás és A Kivétel Között
Videó: A Kelet és a Nyugat között is választanak Moldovában 2024, November
Anonim

Megszakítás vs kivétel

Bármely számítógépen a program normál futtatása során előfordulhatnak olyan események, amelyek a CPU ideiglenes leállását okozhatják. Az ilyen eseményeket megszakításoknak nevezzük. A megszakításokat szoftveres vagy hardveres hibák okozhatják. A hardveres megszakításokat (egyszerűen) megszakításoknak, míg a szoftveres megszakításokat kivételeknek nevezzük. Amint egy megszakítás (szoftver vagy hardver) felvetődik, a vezérlés átkerül egy speciális szubrutinra, az úgynevezett ISR-re (Interrupt Service Routine), amely képes kezelni a megszakítás által felvetett feltételeket.

Mi a megszakítás?

A megszakítás kifejezés általában hardveres megszakításokra van fenntartva. Ezek külső hardveresemények által okozott programszabályozási megszakítások. Itt a külső azt jelenti, hogy a CPU-n kívül van. A hardveres megszakítások általában sokféle forrásból származnak, például időzítő chip, perifériás eszközök (billentyűzetek, egér stb.), I / O portok (soros, párhuzamos stb.), Lemezmeghajtók, CMOS óra, bővítőkártyák (hangkártya, video) kártya stb.). Ez azt jelenti, hogy a végrehajtó programhoz kapcsolódó valamilyen esemény miatt a hardveres megszakítás szinte soha nem történik meg. Például egy olyan esemény, mint a billentyűzet billentyű általi megnyomása a felhasználó által, vagy egy belső hardveres időzítő időzítése emelheti ezt a fajta megszakítást, és tájékoztathatja a CPU-t arról, hogy egy bizonyos eszköz némi figyelmet igényel. Ilyen helyzetben a CPU leállítja azt, amit valaha tett (azaz szünetelteti az aktuális programot),biztosítja a készülék által igényelt szolgáltatást, és visszatér a normál programhoz. Ha a hardver megszakad, és a CPU elindítja az ISR-t, akkor a többi hardveres megszakítás le van tiltva (pl. 80 × 86-os gépeknél). Ha más hardveres megszakításokra van szüksége az ISR futása közben, akkor ezt kifejezetten meg kell tennie a megszakítási jelző törlésével (sti utasítással). 80 × 86-os gépeknél a megszakítási jelző törlése csak a hardveres megszakításokat érinti.a megszakítási jelző törlése csak a hardveres megszakításokat érinti.a megszakítási jelző törlése csak a hardveres megszakításokat érinti.

Mi a kivétel?

A kivétel egy szoftver megszakítás, amely egy speciális kezelő rutinnak nevezhető. A kivétel automatikusan bekövetkező csapdaként azonosítható (egy csapda azonosítható a vezérlés átadásaként, amelyet a programozó kezdeményez). Általában nincsenek speciális utasítások a kivételekhez (a csapdákat egy adott utasítás segítségével generálják). Tehát egy kivétel a program végrehajtása során bekövetkező „kivételes” feltétel miatt következik be. Például a nullával való felosztás, egy illegális opcode végrehajtása vagy a memóriával kapcsolatos hiba kivételt okozhat. Amikor kivétel merül fel, a CPU ideiglenesen felfüggeszti az általa végrehajtott programot, és elindítja az ISR-t. Az ISR tartalmazza a teendőket, kivéve. Megoldhatja a problémát, vagy ha ez nem lehetséges, megfelelő hibaüzenet kinyomtatásával kecsesen megszakíthatja a programot. Bár egy adott utasítás nem okoz kivételt, a kivételt mindig egy utasítás okozza. Például a nulla hibával való felosztás csak az osztási utasítás végrehajtása során fordulhat elő.

Mi a különbség a megszakítás és a kivétel között?

A megszakítások hardveres megszakítások, míg a kivételek a szoftveres megszakítások. A hardveres megszakítások általában letiltják a többi hardveres megszakítást, de ez nem igaz a kivételekre. Ha meg kell tiltania a hardveres megszakításokat, amíg egy kivétel meg nem jelenik, akkor egyértelműen törölnie kell a megszakítás jelzőt. És általában a megszakítás jelzője a számítógépen befolyásolja a (hardver) megszakításokat, szemben a kivételekkel. Ez azt jelenti, hogy ennek a jelölésnek a törlése nem fogja megakadályozni a kivételeket.

Ajánlott: