La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

La gestione delle interruzioni TEAM Alessandro Memo - gestione degli interrupt.

Presentazioni simili


Presentazione sul tema: "La gestione delle interruzioni TEAM Alessandro Memo - gestione degli interrupt."— Transcript della presentazione:

1 La gestione delle interruzioni TEAM Alessandro Memo - gestione degli interrupt

2 TEAMLa gestione degli interrupt2 Argomenti trattati Perchè gli interrupt? Salvataggio e ripristino del contesto La gestione degli interrupt nell’architettura INTEL La gestione degli interrupt nei PC Realizzazione di una ISR Gli interrupt software

3 TEAMLa gestione degli interrupt3 Perché gli interrupt ? L’inefficenza del polling –la gestione dell’I/O: polling, interrupt, DMA La metafora dell’interruzione: il bidello I limiti dell’interrupt: il telefono definizione : l’interrupt è un segnale o un messaggio, generalmente di natura asincrona, che arriva alla CPU per avvisarla del verificarsi di un certo evento

4 TEAMLa gestione degli interrupt4 Salvataggio e ripristino del contesto Interrupt Service Routine la neutralità dell’ISR il contesto attuale –contesto minimo –contesto specifico –contesto invariante

5 TEAMLa gestione degli interrupt5 Gli interrupt nell’architettura INTEL 1. classificazione Interrupt (interruzioni) –interrupt hardware mascherabili (periferiche esterne) –interrupt hardware non mascherabile –interrupt software (chiamate al S.O. e/o gestione delle risorse) Exception (eccezzioni) –faults (anomalie rilevate prima dell’esecuzione di un’istruzione) –traps (anomalie rilevate dopo l’esecuzione di un’istruzione) –aborts (anomalie non riconducibili ad una specifica istruzione)

6 TEAMLa gestione degli interrupt6 Gli interrupt nell’architettura INTEL 2. modalità operative Appena la CPU termina un’istruzione: –verifica che l’istruzione precedente non abbia generato un trap –verifica che la prossima istruzione non generi un fault –verifica se è arrivato un interrupt non mascherabile –verifica se è arrivato un interrupt mascherabile ed IF=1 –se in modalità protetta, verifica che la prossima istruzione non determini un fault

7 TEAMLa gestione degli interrupt7 Gli interrupt nell’architettura INTEL 3. riconoscimento degli interrupt interrupt hardware non mascherabile –tipo 2, per default interrupt hardware mascherabile –legge il tipo (00-FF) dal Data Bus interrupt software –il tipo è specificato nell’istruzione eccezioni –tipo attribuito per default in base all’eccezione

8 TEAMLa gestione degli interrupt8 Gli interrupt nell’architettura INTEL 4. la tabella delle interruzioni INT 03 tipo ? : A:FF02 02A001:345C 0332B0:AA00 FF3345: A07: B0 in CS AA00 in IP memoria da 0000: FF 0A 13 5C A0 00 AA B A F3 FF 03 AA Tabella dei vettori delle interruzioni

9 TEAMLa gestione degli interrupt9 Gli interrupt nei PC 1. generalità Problematiche: come si possono collegare tante periferiche su una sola linea di interruzione INT (riconoscimento) ? si può interrompere un interrupt (accodamento) ? e se arrivano due interrupt contemporaneamente (priorità) ? Soluzione: il Programmable Interrupt Controller, 8259A

10 TEAMLa gestione degli interrupt10 Gli interrupt nei PC 2. architettura interna Nei PC ci sono due PIC in cascata Vedere la sequenza grafica riassuntiva dei segnali di interruptsequenza grafica Il PIC gestisce la priorità, memorizza ed accoda eventuali altri interrupt che arrivano, emette il tipo associato ad ogni linea, maschera le singole linee di ingresso IRQxx

11 TEAMLa gestione degli interrupt11 Realizzazione di una ISR 1. scelta dell’interrupt da usare o interrupt hardware generato da periferiche personalizzate e collegabili a qualche IRQ libero o interrupt software, generalmente collegabile ad INT 08 (o più sicuro INT 1C), generato automaticamente 18,2 volte al secondo

12 TEAMLa gestione degli interrupt12 Realizzazione di una ISR 2. corpo della routine Non utilizzare chiamate di sistema del DOS (perché non sono rientranti)

13 TEAMLa gestione degli interrupt13 Cifra DB ‘0’ ; routine ISR MOV AX,SEG_VIDEO ; corpo della ISR MOV ES,AX MOV ES:0080h,Cifra INC Cifra CMP Cifra,’9’+1 JNZ Esci MOV Cifra,’0’ Esci: … … … … … ;

14 TEAMLa gestione degli interrupt14 Realizzazione di una ISR 3. accesso alle variabili In Assembler l’accesso alle variabili è regolato dal registro di segmento DS: è indispensabile inizializzarlo in precedenza In C/C++ le variabili devono essere rese static per non perderne i valori tra esecuzioni successive della stessa ISR, e devono essere globali per essere allocate in maniera statica

15 TEAMLa gestione degli interrupt15 Cifra DB ‘0’ ; variabile nel segmento dati ; routine ISR PUSH CS ; inizializzazione DS (per file.COM) POP DS MOV AX,SEG_VIDEO ; corpo della ISR MOV ES,AX MOV ES:0080h,Cifra INC Cifra CMP Cifra,’9’+1 JNZ Esci MOV Cifra,’0’ Esci: … … … … … ;

16 TEAMLa gestione degli interrupt16 Realizzazione di una ISR 4. gestione contesto specifico

17 TEAMLa gestione degli interrupt17 Cifra DB ‘0’ ; variabile nel segmento dati ; routine ISR PUSH AX ; salvataggio contesto specifico PUSH ES PUSH DS PUSH CS ; inizializzazione DS (per file.COM) POP DS MOV AX,SEG_VIDEO ; corpo della ISR MOV ES,AX MOV ES:0080h,Cifra INC Cifra CMP Cifra,’9’+1 JNZ Esci MOV Cifra,’0’ Esci: … … … … … ;

18 TEAMLa gestione degli interrupt18 Realizzazione di una ISR 5. allocare la ISR Terminate and Stay Resident (TSR)

19 TEAMLa gestione degli interrupt19 DOSSEG.MODEL tiny ; modalita`.COM.CODE org 0100h ; locazione iniziale standard Start: JMP Inizio ; salto la routine ISR ; area dati TSR EQU 31h ; funzione TSR del DOS DOS EQU 21h ; codice interrupt DOS ;... MioInt: ; area contenente la ISR..... ;... Inizio: MOV AH,TSR ; funzione TSR MOV DX, ((Inizio-Start)/16)+11h INT DOS END Start

20 TEAMLa gestione degli interrupt20 Realizzazione di una ISR 6. aggiornamento tabella dei vettori Impedire che durante l’aggiornamento arrivino richieste di quel tipo di interrupt –o bloccando tutti gli interrupt (CLI ed STI) –o bloccando solo quello interessato (funzione del DOS)

21 TEAMLa gestione degli interrupt21 DOSSEG.MODEL tiny ; modalita`.COM.CODE org 0100h ; locazione iniziale standard Start: JMP Inizio ; salto la routine ISR ; area dati TSR EQU 31h ; funzione TSR del DOS DOS EQU 21h ; codice interrupt DOS MioInt: ; area contenente la ISR..... Inizio: MOV AH,SETVECT ; funzione Set Vector MOV AL,1Ch ; tipo di interrupt MOV DX,Offset MioInt ; salvo l'offset ; il segmento non serve perchè ; CS e DS si equivalgono nei file.COM INT DOS ; aggiorna la tabella MOV AH,TSR ; funzione TSR MOV DX, ((Inizio-Start)/16)+11h INT DOS ;.. Inizio: MOV AH,TSR ; funzione TSR MOV DX, ((Inizio-Start)/16)+11h INT DOS END Start

22 TEAMLa gestione degli interrupt22 Realizzazione di una ISR 7. il problema della rientranza Se una ISR è in grado di funzionare correttamente anche se viene chiamata ricorsivamente un numero finito di volte, allora si dice rientrante occorre isolare ed escludere mutualmente l’accesso a zone critiche dove si accede a risorse unarie

23 TEAMLa gestione degli interrupt23 Gli interrupt software Hanno permesso la portabilità del software su macchine compatibili ma fisicamente diverse Implementano le chiamate esterne al Sistema Operativo (DOS, API, etc…)


Scaricare ppt "La gestione delle interruzioni TEAM Alessandro Memo - gestione degli interrupt."

Presentazioni simili


Annunci Google