GeeksforGeeks

, Author

Interupția este un semnal emis de hardware sau software atunci când un proces sau un eveniment necesită atenție imediată. Acesta avertizează procesorul cu privire la un proces cu prioritate ridicată care necesită întreruperea procesului de lucru curent. În cazul dispozitivelor de intrare/ieșire, una dintre liniile de control ale magistralei este dedicată în acest scop și se numește Interrupt Service Routine (ISR).

Când un dispozitiv generează o întrerupere la, să zicem, procesul i, procesorul termină mai întâi execuția instrucțiunii i. Apoi încarcă contorul de program (PC) cu adresa primei instrucțiuni din ISR. Înainte de a încărca contorul de program cu adresa, adresa instrucțiunii întrerupte este mutată într-o locație temporară. Prin urmare, după tratarea întreruperii, procesorul poate continua cu procesul i+1.

În timp ce procesorul tratează întreruperile, el trebuie să informeze dispozitivul că cererea sa a fost recunoscută, astfel încât acesta să înceteze să mai trimită semnalul de solicitare a întreruperii. De asemenea, salvarea registrelor, astfel încât procesul întrerupt să poată fi restabilit în viitor, mărește întârzierea dintre momentul în care se primește o întrerupere și începerea execuției ISR-ului. Acest lucru se numește latență de întrerupere.

Interruperi hardware:
Într-o întrerupere hardware, toate dispozitivele sunt conectate la linia de cerere de întrerupere. O singură linie de solicitare este utilizată pentru toate cele n dispozitive. Pentru a solicita o întrerupere, un dispozitiv își închide comutatorul asociat. Când un dispozitiv solicită o întrerupere, valoarea lui INTR este OR logic al cererilor de la dispozitivele individuale.

Secvența evenimentelor implicate în tratarea unui IRQ:

  1. Dispozitivele ridică un IRQ.
  2. Procesorul întrerupe programul în curs de execuție.
  3. Dispozitivul este informat că cererea sa a fost recunoscută și dispozitivul dezactivează semnalul de cerere.
  4. Acțiunea solicitată este efectuată.
  5. Intreruperea este activată și programul întrerupt este reluat.

Manipularea dispozitivelor multiple:
Când mai multe dispozitive ridică un semnal de solicitare de întrerupere, atunci sunt necesare informații suplimentare pentru a decide care dispozitiv trebuie luat în considerare primul. Următoarele metode sunt utilizate pentru a decide ce dispozitiv trebuie selectat: Polling, Vectored Interrupts și Interrupt Nesting. Acestea sunt explicate după cum urmează.

  1. Polling:
    În polling, primul dispozitiv întâlnit cu bitul IRQ setat este dispozitivul care va fi deservit primul. ISR-ul corespunzător este apelat pentru deservirea acestuia. Este ușor de implementat, dar se pierde mult timp prin interogarea bitului IRQ al tuturor dispozitivelor.
  2. Întreruperi vectorizate:
    În întreruperile vectorizate, un dispozitiv care solicită o întrerupere se identifică direct prin trimiterea unui cod special către procesor pe magistrală. Acest lucru permite procesorului să identifice dispozitivul care a generat întreruperea. Codul special poate fi adresa de pornire a ISR sau locul în care ISR este localizat în memorie și se numește vector de întrerupere.
  3. Interrupt Nesting:
    În această metodă, dispozitivul de I/O este organizat într-o structură de prioritate. Prin urmare, cererea de întrerupere de la un dispozitiv cu prioritate mai mare este recunoscută, în timp ce cererea de la un dispozitiv cu prioritate mai mică nu este recunoscută. Pentru a implementa această metodă, fiecare proces/dispozitiv (chiar și procesorul). Procesorul acceptă întreruperi numai de la dispozitivele/procesele care au o prioritate mai mare decât el.

Prioritatea procesorului este codificată în câțiva biți din PS (Process Status register). Ea poate fi modificată prin instrucțiuni de program care scriu în PS. Procesorul se află în modul supravegheat numai în timpul executării rutinelor OS. El trece în modul utilizator înainte de a executa programe de aplicație.

Atenție cititorule! Nu vă opriți acum din învățat. Deprindeți toate conceptele importante ale teoriei CS pentru interviurile SDE cu cursul CS Theory Course la un preț accesibil studenților și deveniți pregătiți pentru industrie.

Articolul Tags :

Lasă un răspuns

Adresa ta de email nu va fi publicată.