« Forum anonimo (sperimentale)

differenza fra eccezione e interruzione

1 reply
Last
buongiorno,

come cambia la gestione dell'interruzione se questa è un interrupt hardware  o un altro tipo di eccezione? Viene gstita come ogni altra eccezione oppure varia il modo di trattarla? Chi si occupa dell'effettivo trasferimento(in caso sia un interrupt), c'è uno specifico handler che gestisce il flusso dei dati dalla periferica o la CPU fa tutto "da sola"? Serve comunque l'operazione di restore (sempre in caso sia un interrupt)? 

ringrazio per l'attenzione, buona giornata


1 reply
  1. Re: differenza fra eccezione e interruzione

    Per punti.

    • Lei usa il termine "gestione", ma ci sono diversi passaggi e, didatticamente, è molto importante distinguere tra ciò che viene svolto in hardware (prima dell'entrata in esecuzione del gestore, che è costituito da un insieme di istruzioni) e ciò che viene invece gestito dal software del gestore.
    • Il trasferimento vero e proprio è una delle prime istruzioni della parte del gestore dedicata alla specifica interruzione.
    • Non c'è quindi uno "specifico handler", almeno nel MIPS32 che ha un gestore unico che poi identifica cosa fare specificamente per ogni eccezione (terminologia MIPS: sono tutte eccezioni in generale, vere e proprie eccezioni oppure interruzioni oppure traps).
    • cosa vuol dire la CPU fa tutto da sola?!? La CPU esegue istruzioni oppure, in hardware, attiva il gestore quando si verifica una eccezione.
    • Certo che serve un restore se vengono usati dei registri di uso generale da parte del programma interrotto (che, nel momento in cui il programmatore del gestore scrive il gestore, potrebbe essere qualcunque registro di uso generale)!

    Spero sia più chiaro, purtroppo siamo un po' all'ultimo momento.