Università degli Studi di Cassino e del Lazio Meridionale

Documenti analoghi
SISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06.

Memoria cache, interrupt e DMA

ARCHITETTURA DI UN SISTEMA DI ELABORAZIONE

Introduzione alle macchine a stati (non definitivo)

FONDAMENTI DI INFORMATICA Lezione n. 11

AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori

(1) (2) (3) (4) 11 nessuno/a (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B

WINDOWS TERMINAL SERVER PER L ACCESSO REMOTO AL SISTEMA DI PROTOCOLLO INFORMATICO

Procedura operativa per la gestione della funzione di formazione classi prime

Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.

La gestione dell I/O (Cap. 5, Tanenbaum)

Richiami sull architettura del processore MIPS a 32 bit

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

Esempio: aggiungere j

Manuale Sito Videotrend

INDICE. Vista Libretto Livello Digitale 2. Importazione di dati da strumento 3. Inserisci File Vari 5. Compensazione Quote 5.

Hardware, software e periferiche. Facoltà di Lettere e Filosofia anno accademico 2008/2009 secondo semestre

Architettura generale del calcolatore Hardware (tutto ciò che e tangibile) Software (tutto ciò che non e tangibile)

Manuale Utente IMPORT PROFIM 2000

WINDOWS Avviare Windows95. Avviare Windows95 non è un problema: parte. automaticamente all accensione del computer. 2. Barra delle applicazioni

Corso di Calcolatori Elettronici I

Architettura dei calcolatori e Software di sistema

Elementi di base del calcolatore

PowerDIP Software gestione presenze del personale aziendale. - Guida all inserimento e gestione dei turni di lavoro -

interoperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse.

Il linguaggio del calcolatore: linguaggio macchina e linguaggio assembly

Caratteristiche di un PC

Importazione dati. e/fiscali Spesometro - Rel con gestionale e/satto. Gestionale e/satto

Sistemi Operativi. Sistemi I/O SISTEMI DI INPUT/OUTPUT. Hardware di I/O. Interfaccia di I/O per le applicazioni. Sottosistema per l I/O del kernel

Architettura dei computer

Tecnologie dei Sistemi di Automazione e Controllo

SISTEMA DI CONTROLLO E GESTIONE STAZIONI DI RICARICA E-CORNER PER VEICOLI ELETTRICI

L ARCHITETTURA DEI CALCOLATORI. Il processore La memoria centrale La memoria di massa Le periferiche di I/O

Supporto On Line Allegato FAQ

Fasi (MIPS) Dove NPC è un registro temporaneo PC (program counter) è il registro IP (instruction pointer)

Corso di Laurea Ingegneria Informatica Laboratorio di Informatica

Architettura di un calcolatore e ciclo macchina. Appunti per la classe 3 Dinf

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.

Manutenzione periodica al PIANO DEI CONTI

Note_Batch_Application 04/02/2011

Architettura di un calcolatore e linguaggio macchina. Primo modulo Tecniche della programmazione

UNIVERSITÀ DEGLI STUDI DI SALERNO Ufficio Pianificazione e Sviluppo

memoria virtuale protezione

Installazione e uso di Document Distributor

Manuale Utente CMMG Corso Medici Medicina Generale

Il Sistema Operativo Windows

Gestione Commissioni Esami

Procedura tecnica di accreditamento dei Registrar

SPORTELLO DIPENDENTE. - Personale amministrativo tecnico ausiliario (A.T.A.);

Gestione della memoria

Sommario. Processi e Programmi. Che cosa e un Processo? Lezione 5 Processi e Threads

Guida alla gestione delle domande di Dote Scuola per l A.S Scuole Paritarie

1 DESCRIZIONE DELLE FUNZIONI REGISTRAZIONE UTENZE INTERNET Caricamento utente internet (data entry)... 3

Programmazione ad Oggetti

Laboratorio di Architettura degli Elaboratori

Guida di installazione

I sistemi operativi (prima parte) Agostino Lorenzi I sistemi operativi - Atlas

Fondamenti VBA. Che cos è VBA

Manuale Pubblicazione esito di gara/affidamento diretto svolti al di fuori del sistema SICP

MANUALE UTENTE PROCEDURA PLANET WEB INTERPRISE (II edizione)

Guida semplice all utilizzo del sistema D-STAR Seconda Parte

Manuale utente Soggetto Promotore Erogatore Politiche Attive

La segreteria didattica dovrà eseguire semplici operazioni per effettuare lo scrutinio:

Lezione4: MIPS e Istruzioni (1 Parte)

DOCUMENTAZIONE WEB RAIN - ACCESSO CLIENTI

Alcune idee sui sistemi software e la loro architettura

ArubaKey Installazione Versione 2

Architettura di Von Neumann. Architettura di Von Neumann. Architettura di Von Neumann INFORMATICA PER LE DISCIPLINE UMANISTICHE 2 (13042)

Compilazione on-line del Piano di Studio

Backup e ripristino Guida per l'utente

Lezione 2 Chiamate di procedura e risposta alle interruzioni

Le aree dell informatica

Analisi Curve di Carico

Gestione delle eccezioni in Java

VALORIZZAZIONE MOVIMENTI DI SCARICO E VALORIZZAZIONE TRASFERIMENTO COSTI DI ANALITICA

GESTIONE SCRUTINI CON PROGRAMMA MASTERCOM: LATO DOCENTE

I dischi ottici. Istituzioni di Informatica -- Rossano Gaeta 43

LA MEMORIA NEL CALCOLATORE

Uso del pannello operatore

PROCEDIMENTO DI COMPILAZIONE DELLA SCIA E DELL EVENTUALE INTERCALARE REQUISITI PER L AVVIO DELL ATTIVITA DI AGENTE E/O RAPPRESENTANTE DI COMMERCIO

Elementi base per la realizzazione dell unità di calcolo

EcoRemote SISTEMA DI GESTIONE DI UNA STAZIONE DI MONITORAGGIO DELLA QUALITÀ DELL ARIA. Ingegneria dei sistemi

Università degli Studi di Udine. DLGS 196/03 Gestione delle credenziali di autenticazione informatica

Guida all utilizzo della funzionalità Gestione Intermittenti

Oggetto: Utility per la variazione massiva del codice IVA.

LE RETI DI COMPUTER. Il modello ISO/OSI Prima parte

La memoria principale

ARCHITETTURA DEI MICROPROCESSORI INTEL 8086/8088

UNIWEB- GUIDA STUDENTE INSERIMENTO PIANO DEGLI STUDI ON LINE

ANAGRAFE NAZIONALE CREDITI FORMATIVI. Manuale utente

4.11 CONTROLLO DELLE APPARECCHIATURE

Veneto Lavoro via Ca' Marcello 67/b, Venezia-Mestre tel.: 041/

M.AV. Manuale. Respoonsabile AREA

Architettura di un sistema di calcolo

PG5 Starter Training Applicazione File System Daniel Ernst EN Stefano Peracchi IT

Applicazione dei PLC nei servizi di trasporto e distribuzione dell energia. Pietro Zambon Omron Electronics

Anagrafe Nazionale Studenti aggiornamento sincronizzato. Guida Operativa

OPERAZIONI CHIUSURA E APERTURA Note operative

Ogni PC, per iniziare a lavorare, ha bisogno di un sistema operativo. Infatti questo è il primo programma che viene eseguito e che permette

Manuale del software Supplemento. Comunicazione tra sensore per rilevamento oggetti O2D2xx e Siemens Simatic S / / 2011

Transcript:

Università degli Studi di Cassino e del Lazio Meridionale di Calcolatori Elettronici Eccezioni ed Interruzioni Anno Accademico 2013/2014 Alessandra Scotto di Freca Si ringrazia il prof.francesco Tortorella per il materiale didattico

Eccezioni Trasferimento imprevisto del controllo sulla base del verificarsi di un evento. Il sistema risponde con un azione opportuna all eccezione. Necessario salvare l indirizzo dell istruzione in corrispondenza della quale si è generata l eccezione Al termine viene restituito il controllo al programma interrotto Necessario salvare e poi ripristinare lo stato del programma interrotto. Programma utente System exception handler o Interrupt Service Routine (ISR) eccezione Return from exception Flusso di controllo normale: sequenza, branch, jump

Tipi di eccezione La convenzione MIPS definisce eccezione qualsiasi variazione inattesa nel flusso di controllo, indipendentemente dalla sua origine (vale a dire senza distinguere tra una fonte all interno del processore e una sorgente esterna)

Gestione delle eccezioni Quando si verifica un eccezione accade, il controllo viene trasferito ad un altro programma definito gestore di eccezioni (exception handler), scritto esplicitamente allo scopo di trattare le eccezioni. Al termine, il controllo viene restituito al programma che era in esecuzione che continua poi come se nulla fosse accaduto (?).

Gestione delle eccezioni Il verificarsi di un eccezione assomiglia all esecuzione di una procedura, ma senza alcun parametro e restituzione di valore. Dal momento che il codice per il gestore di eccezione può essere eseguito in qualsiasi momento, non ci possono essere parametri passati: il passaggio di parametri richiede una preparazione preliminare. Per lo stesso motivo non può esserci alcun valore di ritorno.

Tipi di eccezione Un eccezione è detta sincrona se si verifica nello stesso posto ogni volta che viene eseguito un programma con gli stessi dati e la stessa assegnazione di memoria. Esempi: Overflow aritmetico, istruzioni non definite o non permesse, page faults. Le eccezioni asincrone, invece, si verificano senza alcuna relazione temporale con il programma in esecuzione. Esempi: richieste di I/O, errori di memoria, problemi di alimentazione.

Tipi di eccezione Un interrupt è un eccezione asincrona. Si definiscono traps eccezioni sincrone, derivanti direttamente dall esecuzione del programma. Traps nel MIPS: break, syscall

Gestione delle eccezioni Interruzioni Causate da eventi esterni Asincrone rispetto al programma in esecuzione Possono essere gestite tra due istruzioni consecutive Semplice sospensione e ripresa del programma utente Eccezioni Causate da eventi interni Sincrone rispetto al programma in esecuzione La condizione di eccezione deve essere risolta dall handler Se la condizione è risolubile, l istruzione può essere rieseguita ed il programma continuato. In caso contrario, il programma deve essere terminato prematuramente.

Gestione delle eccezioni Due esigenze vanno considerate per una corretta gestione delle eccezioni: Salvare lo stato del programma interrotto PC, altre informazioni Individuare la routine da eseguire in funzione della causa che ha generato l eccezione. Salvataggio dello stato Push sullo stack (Vax, Motorola 68K, 80x86) Salvataggio in registri speciali (MIPS) Registri ombra (Motorola 88K)

Modi di esecuzione user / kernel Due modi di esecuzione: User kernel Per ognuno dei due modi di esecuzione sono previste apposite aree dati e codice In modo kernel vengono eseguite le istruzioni del sistema operativo ed, in particolare, vengono gestite le eccezioni.

Gestione delle Eccezioni nel MIPS La gestione delle eccezioni e delle interruzioni è effettuata dal coprocessore 0 4 registri mantengono tutte le informazioni necessarie alla gestione E possibile accedere ai registri tramite le istruzioni: lwc0, swc0, mfc0, mtc0

Registri del coprocessore 0 EPC contiene l indirizzo di ritorno dal servizio all interruzione BadVAddr contiene l indirizzo di memoria cui è stato fatto riferimento

Registro di Stato L interrupt mask contiene un bit per ciascuno degli 8 livelli possibili di interruzione: 6 hardware (10-15) e 2 software (8-9). Il livello è abilitato se il bit corrispondente è messo a 1. Il bit 0 (IEC) gestisce l abilitazione generale delle interruzioni (0=disabilitate). Il bit 1 segnala se si sta servendo un eccezione. Il bit 4 segnala se il processore è in modo kernel (0) o utente (1)

Registro Causa I bit 8-15 corrispondono ai 6 livelli di interrupt hardware e 2 software: se un bit è a 1, c è un interruzione non ancora servita a quel livello. I bit 2-6 descrivono la causa dell eccezione secondo la codifica:

Interruzioni ed eccezioni Esistono diverse categorie di interruzioni : Eccezioni Interruzioni Chiamate di sistema Segnale RESET

Eccezioni Corrispondono ad eventi anormali, tipicamente errori che impediscono la corretta esecuzione dell istruzione in corso. Non sono mascherabili. Tipi di eccezioni: ADDRL Address error in lettura (load o istr. Fetch) ADDRS Address error in scrittura IBUS Bus error in istr. fetch DBUS Bus error in data RI Reserved instruction CPU Coprocessor inaccessibile OVF Overflow

Gestione delle eccezioni All atto di un eccezione il processore: Salva l indirizzo dell istruzione (PC-4) in EPC Salva la configurazione presente del registro di stato Passa in modo kernel e disabilita le interruzioni Salta all indirizzo 0x80000180

Interruzioni Le richieste di interruzione sono eventi asincroni provenienti in genere dalle periferiche. Il processore ha 6 linee di interruzione esterne che possono essere mascherate globalmente o singolarmente. L attivazione di una di queste linee è una richiesta di interruzione. Le interruzioni sono segnalate nel registro Causa e sono gestite al termine dell esecuzione dell istruzione in corso, se non sono mascherate Il processore passa in modo kernel e salta al gestore di interruzioni dopo aver salvato l indirizzo di ritorno.

Gestione delle interruzioni All atto di un interruzione il processore: Salva l indirizzo (PC) in EPC Salva la configurazione presente del registro di stato Passa in modo kernel e disabilita le interruzioni Salta all indirizzo 0x80000180

Chiamate di sistema Due istruzioni per attivare chiamate di sistema, eseguibili in modo utente: SYSCALL BREAK L istruzione SYSCALL permette ad un processo di chiedere un servizio al sistema, p. es. un operazione di I/O Il codice identificativo del tipo di servizio richiesto e gli eventuali parametri devono essere preparati prima all interno di registri generali L istruzione BREAK è utilizzata più specificamente per inserire un punto di arresto all interno di un programma In entrambi i casi, il processore passa in modo kernel e salta al gestore di interruzioni dopo aver salvato l indirizzo di ritorno.

Gestione delle chiamate di sistema All atto dell esecuzione di una chiamata di sistema il processore: Salva l indirizzo di ritorno (PC) in EPC Salva la configurazione presente del registro di stato Passa in modo kernel e disabilita le interruzioni Salta all indirizzo 0x80000180

Reset Il processore possiede una linea RESET la cui attivazione produce il salto incondizionato alla routine di inizializzazione L attivazione della linea RESET è simile ad una settima linea di interruzione esterna con le seguenti importanti differenze: non è mascherabile non è necessario salvare un indirizzo di ritorno il codice per la gestione del reset si trova all indirizzo 0xBFC00000 All atto dell attivazione del RESET il processore Passa in modo kernel e disabilita le interruzioni Salta all indirizzo 0xBFC00000

Istruzioni per la gestione di eccezioni eret (exception return) Salta all indirizzo contenuto in EPC break code (es. break 3) Genera una eccezione di breakpoint parametrizzata da code. code=1 è riservato al debugger. Il code si estrae dall istruzione indirizzata da EPC syscall Genera una system call. Il codice del servizio è contenuto in $v0 ($2) nop (no operation) Istruzione senza alcun effetto

Fasi del servizio delle eccezioni In seguito al verificarsi di un eccezione L istruzione in esecuzione, e tutte quelle successive in esecuzione nella pipeline, sono abortite Le informazioni utili alla gestione e al ripristino dell esecuzione del processo interrotto sono salvate nei registri del coprocessore 0 La modalità di esecuzione del processore commuta a kernel Il controllo è trasferito a un exception handler posto all indirizzo 0x80000180 (kernel), che esamina la causa dell eccezione e la gestisce

Exception handler beqz

Exception handler

Gestione delle eccezioni: indirizzamento dell ISR Diverse soluzioni: Interrupt vettorizzato (68K, 80x86, ) Viene fornito un valore (vector) che è un indice in una tabella (vector table) che contiene gli indirizzi delle varie ISR: PC=Mem[IVT_base+vector 00]. Causavector Tabella delle ISR (Sparc, 88K, ) Viene fornito uno spiazzamento all interno di un area di memoria che contiene tutte le ISR: PC=IT_base+offset 0000. Causaoffset Indirizzo fisso (MIPS) Si salta ad un unico indirizzo: unica ISR che si occupa di identificare la causa e avviare la routine opportuna (effettivamente nel MIPS si considerano due entry). PC=Exc_address

Interruzioni come strumento per la gestione di operazioni di sistema Le interruzioni possono essere usate per migliorare l efficienza dell elaborazione. Permettono di liberare il processore da compiti gravosi di sincronizzazione. Sono utili soprattutto per gestire le operazioni realizzate da componenti che hanno tempi di risposta molto superiori a quelli del processore (es. dispositivi di I/O).

Flusso di controllo Gestione di un operazione di I/O senza interruzioni Il processore avvia l operazione attende la fine dell operazione chiude l operazione continua l esecuzione del programma

Flusso di controllo Gestione di un operazione di I/O con interruzioni Operazione breve (termina prima della richiesta di I/O successiva) Il processore avvia l operazione continua l esecuzione del programma al termine dell operazione viene interrotta l esecuzione del programma e viene gestita la chiusura dell operazione riprende l esecuzione

Diagramma temporale Senza interruzioni Con interruzioni

Flusso di controllo Gestione di un operazione di I/O con interruzioni Operazione lunga (non termina prima della richiesta di I/O successiva) Il processore avvia l operazione continua l esecuzione del programma alla richiesta successiva l esecuzione del programma viene sospesa, si attende il termine dell operazione precedente e si avvia l operazione successiva riprende l esecuzione

Diagramma temporale Senza interruzioni Con interruzioni

Interruzioni multiple Una richiesta di interruzione può giungere mentre si sta già servendo un interruzione. Cosa fare? Disabilitazione delle interruzioni Il processore ignora ulteriori richieste di interruzione mentre sta servendo un interruzione Le richieste non accolte restano in attesa e sono verificate dopo che la prima interruzione è stata servita Le richieste di interruzione sono gestite in sequenza, in ordine di arrivo Definizione di priorità Vengono definite delle classi di priorità (su quale base?) e ciascuna delle possibili richieste di interruzione viene assegnata ad una classe Le ISR relative ad interruzioni a bassa priorità possono essere interrotte da richieste di interruzione a più alta priorità Il processore torna ad eseguire la ISR interrotta dopo aver servito l interruzione a più alta priorità Una richiesta di interruzione resta in attesa se il processore sta servendo un interruzione a priorità più alta

Fasi protette Anche se subentra una richiesta di interruzione a più alta priorità, ci sono alcune fasi del servizio di un interruzione (salvataggio e ripristino del contesto) che non possono essere interrotte Fasi protette

Interruzioni multiple servite in sequenza Programma utente ISR1 IR1 IR2 ISR1 eseguita a interruzioni disabilitate o Pr(IR1)>Pr(IR2) ISR2

Interruzioni multiple innestate IR1 Programma utente ISR1 IR2 ISR2 ISR1 eseguita a interruzioni abilitate e Pr(IR1)<Pr(IR2)

Interruzioni innestate sequenza temporale Programma utente ISR stampante ISR scheda di rete ISR disco