Domanda

Quando si disabilitano gli interrupt (con l'istruzione cli in X86), cosa succede esattamente?

    .
  • L'immagine ti aspetta per accendere gli interrupt e sparare l'interrupt quando ciò accade?(Se è così, quanto tempo aspetta, e cosa succede se il tempo "scade"?)

  • L'interrupt - dal punto di vista del dispositivo - viene inviato in un "buco nero", senza risposta?

  • The Pic in qualche modo dà al dispositivo che "la CPU è occupata" o qualcosa del genere?

  • o succede qualcos'altro?

    Inoltre, come si affronta un interrupt che non sai come gestire?
    C'è un modo per dire la foto (o il dispositivo, se non sai cosa sia il dispositivo), "Sì, ho ricevuto il tuo messaggio, ma non so cosa fare con esso"?

È stato utile?

Soluzione

L'immagine 8259A attende il segnale INTA dalla CPU. La CPU lo invia quando inizia a gestire l'interrupt trasferendo il controllo all'ISR appropriato. Quale isr? La foto fornisce il vettore di interruzione alla CPU, che cerca il IVT / IDT per l'indirizzo e conosci il resto. La foto non fornirà il vettore di interrupt fino a quando non riceve ITA.

L'8259A PIC ha solo una comunicazione a senso unico con i dispositivi I / O. Possono dire che hanno un interrupt che ha bisogno di manutenzione.

Allora, tutto è scaduto nell'aria nella foto se la CPU non risponde agli interrupt. Tuttavia, i dispositivi possono al loro capriccio de-asserire e quindi riaffermare i segnali di richiesta di interruzione. Non lo so. Inoltre non so quali avere requisiti di tempo per la manutenzione di interrupt.

Se non sei interessato a interrupt da una fonte specifica, puoi semplicemente mascherarlo e non ne avrai alcuna. Se prendi un interrupt ma non sai come elaborarlo, puoi semplicemente dire la foto che lo hai gestito. Questo può lasciare il dispositivo interrotto in uno stato "congelato", in attesa indefinitamente per la manutenzione di accadendo. Può anche causare il dispositivo di mantenere il segnale di richiesta di interruzione in alto, che sarà un problema se si stanno prendendo interrupt in modalità attivata a livello - verrà continuamente interrupt.

Altri suggerimenti

Gli interrupt si accentano ancora, ma la CPU non sta ascoltando.Quando inizi ad ascoltare di nuovo (sti), il segnale è ancora lì e avrà effetto alla prima opportunità.

Un PC PIC ha diversi livelli di interrupt, e credo che possa contenere un interrupt attivo per ogni livello di priorità.Terrirà ognuno di loro fino a quando la CPU lo dice che la maneggevolezza corrispondente sia completata.Avendo interruzioni disabilitato per un lungo periodo di tempo probabilmente romperà questo, quindi non farlo!

Il dispositivo responsabile di un interrupt non riceverà alcuna risposta durante l'attesa, che è comunque una specie di risposta.Se non può aspettare, potrebbe inserire uno stato di errore che la CPU vedrà quando alla fine arriverà.

Otterrai solo gli interrupt che hai abilitato esplicitamente, quindi non ci dovrebbero essere sorprese.Il driver del dispositivo che gira su un interrupt è meglio sapere come gestirlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top