Întrerupere

O întrerupere este atunci când un microprocesor face ceva ce nu i s-a spus să facă din cauza unor evenimente care se întâmplă în afara programului. Întreruperile se produc cel mai adesea deoarece procesorul primește un semnal de la hardware, dar ele pot proveni și de la software-ul care rulează împreună cu programul. Printre numeroasele lucruri care pot cauza întreruperi se numără apăsarea tastelor de pe tastatură, declanșarea cronometrului încorporat, un transfer de date sau orice alt eveniment care necesită o acțiune imediată din partea procesorului. Întreruperile pot apărea în orice moment în timp ce procesorul rulează un program, indiferent de locul în care se află în codul sursă al programului.

Această diagramă arată ce se întâmplă atunci când este apelată o întrerupereZoom
Această diagramă arată ce se întâmplă atunci când este apelată o întrerupere

Cum funcționează întreruperile

Un apel hardware sau software pentru o întrerupere (cunoscut sub numele de cerere de întrerupere sau IRQ) este preluat de un "interrupt handler" sau de o "rutină de serviciu de întrerupere" (ISR) din procesor. Acesta plasează ceea ce face în acel moment pe o stivă și apoi urmează anumite instrucțiuni care îndeplinesc o anumită sarcină în numele sistemului, care nu trebuie să facă parte din programul pe care îl execută. După ce a terminat de urmat instrucțiunile, ISR-ul ia înapoi ceea ce a pus pe stivă și continuă ceea ce făcea înainte de întrerupere.

Mulți controlori de întreruperi de la procesoarele actuale folosesc un vector de întrerupere pentru a sorta întreruperile în funcție de locul de unde provin, printre altele. Vectorul conține, de obicei, codul care trebuie să fie executat atunci când are loc întreruperea. În general, ISR-urile sunt responsabile pentru tratarea sau "deservirea" întreruperii, împreună cu menținerea în stare de funcționare.

Utilizări ale întreruperilor

  • Declanșarea sarcinilor la intervale regulate
  • Deservirea unui dispozitiv extern care se poate întâmpla în orice moment
  • Eliminarea necesității de interogare sincronă
  • Declanșarea unei acțiuni din partea unui sistem de operare (OS)

Întrebări și răspunsuri

Î: Ce este o întrerupere?


R: O întrerupere este o acțiune întreprinsă de un microprocesor care nu face parte din programul în curs de execuție din cauza unor evenimente externe.

Î: Care sunt cauzele pentru care întreruperile apar cel mai des pe un procesor?


R: Întreruperile apar cel mai des pe un procesor din cauza primirii de semnale de la hardware.

Î: Întreruperile pot fi cauzate de software?


R: Da, întreruperile pot fi cauzate și de un software care rulează în paralel cu programul în curs de execuție.

Î: Enumerați câteva exemple de evenimente care pot provoca o întrerupere.
R: Exemple de evenimente care pot provoca o întrerupere sunt apăsarea tastelor de pe tastatură, declanșarea unui cronometru și transferurile de date.

Î: Este o întrerupere dependentă de locul în care se execută programul?


R: Nu, întreruperile pot apărea în orice moment în timpul execuției programului, indiferent de locul în care se află programul în codul sursă.

Î: Este o întrerupere un eveniment de dorit pentru un microprocesor?


R: Întreruperile sunt, de obicei, evenimente nedorite pentru un microprocesor, deoarece acestea perturbă execuția programului și necesită o atenție imediată.

Î: Cum răspunde un microprocesor la o întrerupere?


R: Un microprocesor suspendă temporar programul în curs de execuție și execută o rutină de serviciu de întrerupere (ISR) pentru a gestiona întreruperea înainte de a reveni la programul în curs de execuție.

AlegsaOnline.com - 2020 / 2023 - License CC3