Verskil tussen onderbreking en uitsondering

Verskil tussen onderbreking en uitsondering
Verskil tussen onderbreking en uitsondering

Video: Verskil tussen onderbreking en uitsondering

Video: Verskil tussen onderbreking en uitsondering
Video: Hub, Switch, & Router Explained - What's the difference? 2024, Julie
Anonim

Onderbreking vs Uitsondering

In enige rekenaar, tydens die normale uitvoering van 'n program, kan daar gebeurtenisse wees wat kan veroorsaak dat die SVE tydelik stop. Gebeurtenisse soos hierdie word onderbrekings genoem. Onderbrekings kan veroorsaak word deur óf sagteware óf hardeware foute. Hardeware-onderbrekings word (eenvoudig) onderbrekings genoem, terwyl sagteware-onderbrekings uitsonderings genoem word. Sodra 'n onderbreking (sagteware of hardeware) opgehef is, word die beheer oorgedra na 'n spesiale subroetine genaamd ISR (Interrupt Service Routine) wat die toestande kan hanteer wat deur die onderbreking veroorsaak word.

Wat is onderbreking?

Die term Onderbreking word gewoonlik gereserveer vir hardeware-onderbrekings. Dit is programbeheeronderbrekings wat veroorsaak word deur eksterne hardeware-gebeurtenisse. Hier beteken ekstern ekstern tot die SVE. Hardeware-onderbrekings kom gewoonlik van baie verskillende bronne af, soos timerskyfie, randtoestelle (sleutelborde, muis, ens.), I/O-poorte (serieel, parallel, ens.), skyfdryf, CMOS-klok, uitbreidingskaarte (klankkaart, video kaart, ens.). Dit beteken hardeware-onderbrekings vind byna nooit plaas as gevolg van een of ander gebeurtenis wat verband hou met die uitvoeringsprogram nie. Byvoorbeeld, 'n gebeurtenis soos 'n sleuteldruk op die sleutelbord deur die gebruiker, of 'n interne hardeware-afteller kan hierdie soort onderbreking veroorsaak en kan die SVE inlig dat 'n sekere toestel aandag nodig het. In 'n situasie soos daardie sal die SVE stop wat hy ook al gedoen het (d.w.s. onderbreek die huidige program), verskaf die diens wat deur die toestel vereis word en sal teruggaan na die normale program. Wanneer hardeware-onderbrekings voorkom en die SVE begin die ISR, word ander hardeware-onderbrekings gedeaktiveer (bv. in 80×86-masjiene). As jy ander hardeware-onderbrekings nodig het om te voorkom terwyl die ISR loop, moet jy dit uitdruklik doen deur die onderbrekingsvlag (met sti-instruksie) skoon te maak. In 80×86-masjiene sal die skoonmaak van die onderbrekingsvlag slegs hardeware-onderbrekings beïnvloed.

Wat is uitsonderings?

Uitsondering is 'n sagteware-onderbreking, wat geïdentifiseer kan word as 'n spesiale hanteerderroetine. Uitsondering kan geïdentifiseer word as 'n lokval wat outomaties voorkom ('n lokval kan geïdentifiseer word as 'n oordrag van beheer, wat deur die programmeerder geïnisieer word). Oor die algemeen is daar geen spesifieke instruksies wat met uitsonderings geassosieer word nie (lokvalle word gegenereer deur 'n spesifieke instruksie te gebruik). Dus, 'n uitsondering vind plaas as gevolg van 'n "uitsonderlike" toestand wat tydens programuitvoering voorkom. Byvoorbeeld, deling deur nul, uitvoering van 'n onwettige opkode of geheueverwante fout kan uitsonderings veroorsaak. Wanneer 'n uitsondering gemaak word, skort die SVE die program wat dit uitgevoer het tydelik op en begin die ISR. ISR sal bevat wat om te doen met die uitsondering. Dit kan die probleem regstel of as dit nie moontlik is nie, kan dit die program grasieus afbreek deur 'n geskikte foutboodskap te druk. Alhoewel 'n spesifieke opdrag nie 'n uitsondering veroorsaak nie, sal 'n uitsondering altyd deur 'n opdrag veroorsaak word. Byvoorbeeld, die deling deur nul fout kan slegs plaasvind tydens die uitvoering van die deling instruksie.

Wat is die verskil tussen onderbreking en uitsondering?

Onderbrekings is hardeware-onderbrekings, terwyl uitsonderings sagteware-onderbrekings is. Voorvalle van hardeware-onderbrekings deaktiveer gewoonlik ander hardeware-onderbrekings, maar dit is nie waar vir uitsonderings nie. As jy hardeware-onderbrekings moet verbied totdat 'n uitsondering bedien word, moet jy die onderbrekingsvlag uitdruklik uitvee. En gewoonlik beïnvloed die onderbrekingsvlag op die rekenaar (hardeware) onderbrekings in teenstelling met uitsonderings. Dit beteken dat die uitvee van hierdie vlag nie uitsonderings sal voorkom nie.

Aanbeveel: