întreruperea este un semnal emis de hardware sau software atunci când un proces sau un eveniment are nevoie de atenție imediată. Acesta alertează procesorul cu privire la un proces cu prioritate ridicată care necesită întreruperea procesului de lucru curent. În dispozitivele I / O, una dintre liniile de control ale magistralei este dedicată în acest scop și se numește rutina serviciului de întrerupere (ISR).
când un dispozitiv ridică o întrerupere la să spunem procesul i, procesorul finalizează mai întâi executarea instrucțiunii i. apoi încarcă contorul de programe (PC) cu adresa primei instrucțiuni a ISR. Înainte de a încărca contorul programului cu adresa, adresa instrucțiunii întrerupte este mutată într-o locație temporară. Prin urmare, după manipularea întreruperii, procesorul poate continua cu procesul i+1.
în timp ce procesorul gestionează întreruperile, acesta trebuie să informeze dispozitivul că cererea sa a fost recunoscută, astfel încât să nu mai trimită semnalul de solicitare de întrerupere. De asemenea, salvarea registrelor astfel încât procesul întrerupt să poată fi restabilit în viitor, crește întârzierea dintre momentul primirii unei întreruperi și începutul executării ISR. Aceasta se numește latență de întrerupere.
întreruperi Hardware:
într-o întrerupere hardware, toate dispozitivele sunt conectate la linia de solicitare a întreruperii. O singură linie de solicitare este utilizată pentru toate dispozitivele N. Pentru a solicita o întrerupere, un dispozitiv închide comutatorul asociat. Atunci când un dispozitiv solicită o întrerupe, valoarea INTR este logică sau a cererilor de la dispozitive individuale.
secvența evenimentelor implicate în manipularea unui IRQ:
- dispozitivele ridică un IRQ.
- procesor întrerupe programul în curs de execuție.
- dispozitivul este informat că cererea sa a fost recunoscută și dispozitivul dezactivează semnalul de solicitare.
- acțiunea solicitată este efectuată.
- întreruperea este activată și programul întrerupt este reluat.
manipularea mai multor dispozitive:
când mai mult de un dispozitiv ridică un semnal de solicitare de întrerupere, atunci sunt necesare informații suplimentare pentru a decide care dispozitiv trebuie luat în considerare mai întâi. Următoarele metode sunt utilizate pentru a decide ce dispozitiv să selectați: votare, întreruperi vectorizate și întrerupere cuibărire. Acestea sunt explicate după cum urmează mai jos.
- Polling:
în polling, primul dispozitiv întâlnit cu setul de biți IRQ este dispozitivul care urmează să fie deservit mai întâi. ISR adecvat este chemat să servească la fel. Este ușor de implementat, dar se pierde mult timp interogând bitul IRQ al tuturor dispozitivelor. - întreruperi vectorizate:
în întreruperile vectorizate, un dispozitiv care solicită o întrerupere se identifică direct prin trimiterea unui cod special procesorului prin magistrală. Acest lucru permite procesorului să identifice dispozitivul care a generat întreruperea. Codul special poate fi adresa de pornire a ISR sau unde ISR este localizat în memorie și se numește vector de întrerupere. - întrerupe cuiburi:
în această metodă, I / O dispozitiv este organizat într-o structură prioritară. Prin urmare, cererea de întrerupere de la un dispozitiv cu prioritate mai mare este recunoscută acolo unde ca cerere de la un dispozitiv cu prioritate mai mică nu este. Pentru a implementa acest proces/dispozitiv (chiar și procesorul). Procesorul acceptă întreruperi numai de la dispozitive / procese care au prioritate mai mult decât acesta.
prioritatea procesoarelor este codificată în câțiva biți de PS (Process status register). Acesta poate fi modificat prin instrucțiuni de program care scriu în PS. Procesorul este în modul supravegheat numai în timp ce execută rutine OS. Acesta trece la modul utilizator înainte de a executa programe de aplicație.
cititor de atenție! Nu te opri din învățat acum. Faceți rost de toate conceptele importante ale teoriei CS pentru interviurile SDE cu cursul de teorie CS la un preț prietenos pentru studenți și deveniți gata pentru industrie.