Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Da Understanding Linux Kernel Daniel P. Bovet, Marco Cesati Gli interrupts sono generati da timer e da periferiche sono asincroni Le exception sono sincrone Errori di programma Condizioni anomale Page fault System call (istruzioni int o sysenter)
Sistemi Operativi Interrupt. 1 Laface 2007
Il meccanismo dei segnali di interrupt permette di spostare il flusso di controllo del processore ad un apposito pezzo di codice che svolge una nuova attivit. Realizzato salvando il valore attuale del program counter (PC) (cio il contenuto dei registri eip e cs) nello stack del kernel mode caricando nel PC un indirizzo che permette di eseguire il codice corrispondente allinterrupt
Sistemi Operativi
Interrupt. 2
Laface 2007
Vincoli
Un interrupt asincrono Gestione veloce Gestione in due fasi Urgente o critica Posponibile Gestione di interrupt annidati Gestione di regioni critiche con interrupt disabilitati
Sistemi Operativi
Interrupt. 3
Laface 2007
Interrupt masking
Un interrupt ignorato dalla CPU finch masked Alcuni interrupt che segnalano difetti hardware non sono mascherabili.
Sistemi Operativi
Interrupt. 4
Laface 2007
Exceptions
Divise in 3 gruppi in base al valore del registro eip che salvato nello stack quando la CPU genera uneccezione Faults La condizione di fault pu essere corretta e il processo ripartire dalla stessa istruzione Traps Utilizzate essenzialmente per il debug Abort La condizione di errore tale che non si sa quale valore memorizzare in eip
Sistemi Operativi Interrupt. 5 Laface 2007
Exceptions
Errors: divisions by zero illegal instruction memory parity error ... Protection violations memory violation
P3
ptraps.c
Sistemi Operativi
Interrupt. 6
Laface 2007
P3
Programmed exceptions
Avvengono a causa dellesecuzione di una istruzione int o int3 into (check for overflow) bound (check on address bound) Gestite come le trap e chiamate software interrupt, servono per realizzare le system call segnalare eventi al debugger
Sistemi Operativi
Interrupt. 7
Laface 2007
Enable/Disable Interrupt
Ogni interrupt o exception identificata da un numero compreso tra 0 e 255 che Intel chiama vector Le istruzioni assembler disable interrupt cli enable interrupt sti operano sul bit IF del registro eflags che opera in AND con il masking
Sistemi Operativi
Interrupt. 8
Laface 2007
Interrupt. 9
Instruction Cycle
Fetch operand(s)
Start
Decode instruction
Execute instruction
Halt
Sistemi Operativi
Interrupt. 10
Laface 2007
Start
Decode instruction
Execute instruction
Halt
Sistemi Operativi
Interrupt. 11
Laface 2007
Interrupt Vector
116 int_h_10()
Memory
Address
6
Content
Interrupt Handler 116 PSW of int_h_10()
Interrupt vector
10 14 16
10
return
Laface 2007
Sistemi Operativi
Interrupt. 12
Interrupt Vector
Memory Address
6 10 Interrupt vector 14 16 116 Interrupt Handler 108 164 . . . 20000 main . 20064 iret int_h_10() 116 PSW of int_h_10()
Content
10
PC SP PSWR
Stack
52564 52568
Sistemi Operativi
Interrupt. 13
Laface 2007
Interrupt Vector
Memory Address
6 10 Interrupt vector 14 16 116 Interrupt Handler 108 164 . . . 20000 main . 20064 iret int_h_10() 116 PSW of int_h_10()
Content
10
PC SP PSWR
main PSW 20068
Stack
52564 52568
Sistemi Operativi
Interrupt. 14
Laface 2007
Interrupt Vector
Memory Address
6 10 Interrupt vector 14 16 116 Interrupt Handler 108 164 . . . 20000 main . 20064 iret int_h_10() 116 PSW of int_h_10()
Content
10
PC SP PSWR
Stack
52564 52568
Sistemi Operativi
Interrupt. 15
Laface 2007
Interrupt Vector
Memory Address
6 10 Interrupt vector 14 16 116 Interrupt Handler 108 164 . . . 20000 main . 20064 iret int_h_10() 116 PSW of int_h_10()
Content
10
PC SP PSWR
Stack
52564 52568
Sistemi Operativi
Interrupt. 16
Laface 2007
Start
Decode instruction
Execute instruction
Halt
Sistemi Operativi
Interrupt. 17
Laface 2007
Gestione dellinterrupt
Disabilita gli interrupt mentre si elabora un interrupt La CPU ignora le nuove richieste finch abilita la ricezione di eventuali interrupt pendenti Interrupt di priorit pi elevata possono interrompere la routine di gestione di un interrupt di priorit pi bassa.
Sistemi Operativi
Interrupt. 18
Laface 2007