Raccomandato, 2024

Scelta Del Redattore

Differenza tra interrupt e polling nel sistema operativo

Abbiamo molti dispositivi esterni collegati alla CPU come mouse, tastiera, scanner, stampante, ecc. Questi dispositivi richiedono anche l'attenzione della CPU. Supponiamo che una CPU sia occupata nella visualizzazione di un PDF e fai clic sull'icona della finestra media player sul desktop. Anche se la CPU non ha alcuna idea quando si verificherà un evento come questo, ma deve rispondere a tali input dai dispositivi I / O. Interrupt 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 attualmente e di rispondere al compito più importante. Polling e Interrupt sono diversi l'uno dall'altro in molti aspetti. Ma il punto base che distingue Polling e Interrupt è che nel polling la CPU continua a controllare i dispositivi I / O a intervalli regolari se ha bisogno del servizio CPU mentre, in interrupt, il dispositivo I / O interrompe la CPU e comunica alla CPU che ha bisogno del servizio CPU . Ho discusso alcune differenze tra Interruzione e Polling nella tabella di confronto qui sotto, per favore dare un'occhiata.

Grafico comparativo

Base per il confrontoInterromperevotazione
Di baseDispositivo notifica alla CPU che richiede l'attenzione della CPU.La CPU controlla costantemente lo stato del dispositivo, indipendentemente dal fatto che richieda l'attenzione della CPU.
MeccanismoUn interrupt è un meccanismo hardware.Il polling è un protocollo.
manutenzioneInterrompere il gestore dei servizi del dispositivo.La CPU serve il dispositivo.
IndicazioneLa riga di richiesta di interruzione indica che il dispositivo necessita di manutenzione.Il bit pronto per Comand indica che il dispositivo necessita di manutenzione.
processoreLa CPU è disturbata solo quando un dispositivo necessita di manutenzione, risparmiando i cicli della CPU.La CPU deve attendere e verificare se un dispositivo ha bisogno di manutenzione che spreca molti cicli della CPU.
avvenimentoUn interrupt 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 raramente trova un dispositivo pronto per il servizio.
EsempioLascia suonare il campanello e poi apri la porta per controllare chi è arrivato.Continuamente continua ad aprire la porta per verificare se qualcuno è venuto.

Definizione di interruzione

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

Sebbene la CPU non sia a conoscenza di quando si verificherà un interrupt poiché può verificarsi in qualsiasi momento, ma deve rispondere all'interrupt ogni volta che si verifica.

Quando il gestore di interrupt termina l'esecuzione dell'interrupt, la CPU riprende l'esecuzione dell'attività che ha interrotto per rispondere all'interrupt. Software, hardware, utente, qualche errore nel programma, ecc. Possono anche generare un interrupt. Interrompe la gestione della natura della CPU porta al multitasking, ovvero un utente può eseguire un numero di compiti diversi allo stesso tempo.

Se alla CPU vengono inviati più di un interrupt, il gestore di interrupt aiuta a gestire gli interrupt in attesa di elaborazione. Quando il gestore di interrupt viene attivato dalla ricezione di un interrupt, assegna la priorità agli interrupt in attesa di essere elaborati dalla CPU e li organizza in una coda per ottenere assistenza.

Definizione di sondaggio

Come abbiamo visto negli interrupt, l'input dal dispositivo I / O può arrivare in qualsiasi momento richiedendo alla CPU di elaborarlo. Polling è un protocollo che notifica alla CPU che un dispositivo richiede la sua attenzione. Diversamente dall'interrupt, dove il dispositivo indica alla CPU che ha bisogno dell'elaborazione della CPU, nella CPU di polling continua a chiedere al dispositivo I / O se ha bisogno dell'elaborazione della CPU.

La CPU testa continuamente tutti i dispositivi ad essa collegati per rilevare se un dispositivo richiede l'attenzione della CPU. Ogni dispositivo ha un bit di comando che indica lo stato di quel dispositivo, cioè se ha qualche comando da eseguire o meno dalla CPU. Se il bit di comando è impostato su 1, allora ha qualche comando da eseguire altrimenti se il bit è 0, quindi non ha comandi. La CPU ha un bit occupato che indica lo stato della CPU, indipendentemente dal fatto che sia occupato o meno. Se il bit occupato è impostato su 1, allora è occupato nell'eseguire il comando di qualche dispositivo, altrimenti è 0 .

Algoritmo per il polling

  • Quando un dispositivo ha un comando che deve essere eseguito dalla CPU, controlla continuamente il bit occupato della CPU finché non diventa chiaro (0).
  • Quando il bit occupato diventa chiaro, il dispositivo imposta il bit di scrittura nel suo registro comandi e scrive un byte nel registro di uscita dati.
  • Ora il dispositivo imposta (1) il bit pronto per il comando.
  • Quando la CPU controlla il bit pronto per il comando dei dispositivi e lo trova impostato (1), imposta (1) il suo bit occupato.
  • La CPU legge quindi il registro comandi del dispositivo ed esegue il comando del dispositivo.
  • Dopo l'esecuzione del comando, la CPU cancella (0) il bit pronto per l'uso, il bit di errore del dispositivo per indicare l'esecuzione corretta del comando del dispositivo e inoltre cancella (0) il suo bit occupato anche per indicare che la CPU è libera di eseguire il comando di qualche altro dispositivo.

Differenze chiave tra interrupt e polling nel sistema operativo

  1. In caso di interrupt, il dispositivo notifica alla CPU che ha bisogno di assistenza mentre, nel polling, la CPU controlla ripetutamente se un dispositivo necessita di manutenzione.
  2. L'interrupt è un meccanismo hardware in quanto la CPU ha un filo, una linea di richiesta di interrupt che segnala l'interruzione. D'altra parte, Polling è un protocollo che continua a controllare i bit di controllo per notificare se un dispositivo ha qualcosa da eseguire.
  3. Il gestore di interrupt gestisce gli interrupt generati dai dispositivi. D'altra parte, nel polling, i servizi della CPU il dispositivo quando richiedono.
  4. Gli interrupt sono segnalati dalla linea di richiesta di interrupt . Tuttavia, il bit pronto per il comando indica che il dispositivo necessita di manutenzione.
  5. Negli interrupt, la CPU viene disturbata solo quando un dispositivo lo 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. Un interrupt può verificarsi in qualsiasi istante di tempo mentre, CPU continua a interrogare il dispositivo a intervalli regolari .
  7. Il polling diventa inefficiente quando la CPU continua a interrogare il dispositivo e raramente trova qualsiasi dispositivo pronto per la manutenzione. D'altra parte, gli interrupt diventano inefficienti quando i dispositivi continuano a interrompere l'elaborazione della CPU ripetutamente.

Conclusione:

Sia il polling che gli interrupt sono efficaci nell'assistere i dispositivi I / O. Ma possono diventare inefficienti a certe condizioni come discusso sopra.

Top