Differenza tra interruzione e polling nel sistema operativo

Autore: Laura McKinney
Data Della Creazione: 2 Aprile 2021
Data Di Aggiornamento: 3 Maggio 2024
Anonim
Interrupt (interruzioni) nella CPU
Video: Interrupt (interruzioni) nella CPU

Contenuto


Abbiamo molti dispositivi esterni collegati alla CPU come mouse, tastiera, scanner, ecc. Anche questi dispositivi richiedono attenzione da parte della CPU. Supponiamo che una CPU sia impegnata nella visualizzazione di un PDF e fai clic sull'icona del lettore multimediale della finestra sul desktop. Sebbene la CPU non abbia idea di quando si verifichi un evento del genere, deve rispondere a tali ingressi dai dispositivi I / O. Interruzione e polling sono i due modi per gestire gli eventi generati dai dispositivi che possono verificarsi in qualsiasi momento mentre la CPU è impegnata nell'esecuzione di un altro processo.

Polling e Interrupt consentono alla CPU di interrompere ciò che sta facendo e di rispondere al compito più importante. Polling e Interrupt sono diversi l'uno dall'altro per molti aspetti. Ma il punto fondamentale che distingue Polling e Interrupt è quello in votazione La CPU continua a controllare i dispositivi I / O a intervalli regolari se necessita del servizio CPU mentre, in interrompere, il dispositivo I / O interrompe la CPU e comunica alla CPU che necessita del servizio CPU. Ho discusso alcune differenze tra Interrupt e Polling nella tabella di confronto qui sotto, per favore dai un'occhiata.


  1. Tabella di comparazione
  2. Definizione
  3. Differenze chiave
  4. Conclusione

Tabella di comparazione

Base per il confrontoInterromperevotazione
Di baseIl dispositivo notifica alla CPU che necessita di attenzione da parte della CPU.La CPU controlla costantemente lo stato del dispositivo se necessita dell'attenzione della CPU.
MeccanismoUn interrupt è un meccanismo hardware.Il polling è un protocollo.
manutenzioneIl gestore di interruzioni serve il dispositivo.La CPU serve il dispositivo.
IndicazioneLa riga di richiesta di interruzione indica che il dispositivo necessita di manutenzione.Il bit pronto da comandare indica che il dispositivo necessita di manutenzione.
processoreLa CPU è disturbata solo quando un dispositivo necessita di manutenzione, il che consente di risparmiare cicli della CPU.La CPU deve attendere e verificare se un dispositivo necessita di manutenzione che spreca molti cicli della CPU.
avvenimentoUn interruzione può verificarsi in qualsiasi momento.La CPU esegue il polling dei dispositivi a intervalli regolari.
EfficienzaL'interruzione diventa inefficiente quando i dispositivi continuano a interrompere ripetutamente la CPU.
Il polling diventa inefficiente quando la CPU trova raramente un dispositivo pronto per il servizio.
EsempioLascia suonare il campanello quindi apri la porta per verificare chi è arrivato.Continua costantemente ad aprire la porta per verificare se qualcuno è arrivato.


Definizione di Interrupt

Un interrupt è a meccanismo hardware che consente alla CPU di rilevare che un dispositivo richiede la sua attenzione. La CPU ha un filo riga di richiesta di interruzione che viene verificato dalla CPU dopo l'esecuzione di ogni singola istruzione. Quando la CPU rileva un segnale di interruzione sulla linea di richiesta di interruzione, la CPU interrompe l'attività attualmente in esecuzione e risponde all'interruzione da parte del dispositivo I / O passando il controllo a gestore di interrupt. Il gestore di interrupt risolve l'interruzione assistendo il dispositivo.

Sebbene la CPU non sia consapevole di quando si verificherebbe un interruzione, poiché può verificarsi in qualsiasi momento, ma deve rispondere all'interruzione ogni volta che si verifica.

Quando il gestore di interrupt termina l'esecuzione dell'interrupt, quindi la CPU riprende l'esecuzione dell'attività che ha interrotto per rispondere all'interrupt. Software, hardware, utente, qualche errore nel programma, ecc. può anche generare un interrupt. Interrompe la gestione della natura della CPU multitasking, ovvero un utente può eseguire contemporaneamente diverse attività diverse.

Se vengono inviati più di un interrupt alla CPU, il gestore degli interrupt aiuta a gestire gli interrupt in attesa di elaborazione. Man mano che l'handler di interrupt ottiene innescato dalla ricezione di un interrupt, esso priorità gli interrupt in attesa di essere elaborati dalla CPU e li organizza in a coda per ricevere assistenza.

Definizione di polling

Come abbiamo visto negli interrupt, l'input dal dispositivo I / O può arrivare in qualsiasi momento richiedendo alla CPU di elaborarlo. Il polling è a protocollo che notifica alla CPU che un dispositivo richiede la sua attenzione. Diversamente dall'interruzione, in cui il dispositivo comunica alla CPU che è necessario l'elaborazione della CPU, nel polling la CPU mantiene chiede il dispositivo I / O se necessita dell'elaborazione della CPU.

La CPU continuamente testare tutti i dispositivi ad esso collegati per rilevare se un dispositivo necessita dell'attenzione della CPU. Ogni dispositivo ha un Comando-ready bit che indica lo stato di quel dispositivo, ovvero se ha un comando da eseguire dalla CPU o meno. Se il bit di comando è impostato 1, quindi ha qualche comando da eseguire altrimenti se il bit lo è 0, quindi non ha comandi. processore ha un po 'occupato che indica lo stato della CPU, occupata o meno. Se il bit di occupato è impostato 1, quindi è impegnato nell'esecuzione del comando di alcuni dispositivi, altrimenti lo è 0.

Algoritmo per il polling

  • Quando un dispositivo ha un comando da eseguire dalla CPU, controlla continuamente il bit di occupato della CPU fino a quando non diventa chiaro (0).
  • Quando il bit di occupato diventa chiaro, il dispositivo imposta il bit di scrittura nel registro dei comandi e scrive un byte nel registro di uscita dei dati.
  • Ora il dispositivo imposta (1) il bit pronto per il comando.
  • Quando la CPU controlla il bit pronto per i comandi dei dispositivi e lo trova impostato (1), imposta (1) il suo bit di occupato.
  • La CPU quindi legge il registro dei comandi del dispositivo ed esegue il comando del dispositivo.
  • Dopo l'esecuzione del comando, la CPU cancella (0) il bit pronto per il comando, il bit di errore del dispositivo per indicare l'esecuzione corretta del comando del dispositivo e inoltre cancella (0) il suo bit di occupato anche per indicare che la CPU è libera di eseguire il comando di qualche altro dispositivo.
  1. In caso di interruzione, il dispositivo notifica alla CPU che necessita di manutenzione, mentre nel polling la CPU verifica ripetutamente se un dispositivo necessita di manutenzione.
  2. Interrompere è a hardware meccanismo poiché la CPU ha un filo, riga di richiesta di interruzione quale segnale si è verificato l'interruzione. D'altra parte, il polling è a protocollo che continua a controllare bit di controllo per avvisare se un dispositivo ha qualcosa da eseguire.
  3. Gestore di interruzioni gestisce gli interrupt generati dai dispositivi. D'altra parte, nel polling, processore fornisce assistenza al dispositivo quando richiesto.
  4. Gli interrupt sono segnalati dal riga di richiesta di interruzione. Però, Comando-ready bit indica che il dispositivo necessita di manutenzione.
  5. Negli interrupt, la CPU viene disturbata solo quando un dispositivo la interrompe. D'altra parte, nel polling, la CPU spreca molti cicli della CPU controllando ripetutamente il bit pronto per il comando di ogni dispositivo.
  6. Si può verificare un interrupt a qualsiasi istante di tempo mentre, la CPU continua a eseguire il polling del dispositivo sul intervalli regolari.
  7. Il polling diventa inefficiente quando la CPU continua a eseguire il polling del dispositivo e raramente trova qualsiasi dispositivo pronto per la manutenzione. D'altra parte, gli interrupt diventano inefficienti quando i dispositivi continuano a interrompere ripetutamente l'elaborazione della CPU.

Conclusione:

Sia Polling che Interrupts sono efficienti nel partecipare ai dispositivi I / O. Ma possono diventare inefficienti a determinate condizioni come discusso sopra.