Verskil tussen onderbreking en lokval

Verskil tussen onderbreking en lokval
Verskil tussen onderbreking en lokval

Video: Verskil tussen onderbreking en lokval

Video: Verskil tussen onderbreking en lokval
Video: Fisiese Wetenskap - Organiese Chemie: Homoloe Reekse 2024, Julie
Anonim

Onderbreking vs Trap

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 of lokvalle genoem word. 'n Uitsondering is 'n outomaties gegenereerde sagteware-onderbreking, terwyl 'n Trap 'n sagteware-opgeroep onderbreking is wat deur die programmeerder geïnisieer 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 'n 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 dit 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.g. 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 'n lokval?

'n Trap kan geïdentifiseer word as 'n oordrag van beheer, wat deur die programmeerder geïnisieer word. Die term Trap word uitruilbaar gebruik met die term Uitsondering (wat 'n sagteware-onderbreking is wat outomaties voorkom). Maar sommige mag redeneer dat 'n lokval bloot 'n spesiale subroetine-oproep is. Hulle val dus in die kategorie van sagteware-opgeroep onderbrekings. Byvoorbeeld, in 80×86-masjiene kan 'n programmeerder die int-instruksie gebruik om 'n lokval te begin. Omdat 'n lokval altyd onvoorwaardelik is, sal die beheer altyd oorgedra word na die subroetine wat met die lokval geassosieer word. Die presiese instruksie, wat die roetine vir die hantering van die lokval oproep, word maklik geïdentifiseer omdat 'n eksplisiete instruksie gebruik word om 'n lokval te spesifiseer.

Wat is die verskil tussen Interrupt en Trap?

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

Aanbeveel: