Ingresso/Uscita u Materiale in: –Queste trasparenze, non basta il testo! –Tanenbaum 2.4.1, 5.6.4, 5.6.5, 5.7.3.

Slides:



Advertisements
Presentazioni simili
CONCLUSIONE - Nucleo (o Kernel) Interagisce direttamente con lhardware Interagisce direttamente con lhardware Si occupa dellesecuzione.
Advertisements

1 Introduzione ai calcolatori Parte II Software di base.
Il Sistema Operativo Il Sistema Operativo fa parte del software di base; e` costituito da un insieme di programmi che interagiscono e cooperano per: gestire.
La struttura fisica e logica di un elaboratore
Gestione Input Output A. Ferrari.
Perché le interruzioni?
Introduzione allarchitettura dei calcolatori 2/ed Carl Hamacher, Zvonko Vranesic, Safwat Zaky Copyright © 2007 – The McGraw-Hill Companies srl Versione.
Il Sistema Operativo.
Elaboratore e Sistemi Operativo
Gestione del processore
1 Processi e Thread Meccanismi di IPC, Inter Process Communication (1)
1 Processi e Thread Meccanismi di IPC (1). 2 Comunicazioni fra processi/thread Processi/thread eseguiti concorrentemente hanno bisogno di interagire per.
Architettura di un sistema informatico Hardware
Comandi ai dispositivi di I/O + Si usano due metodi per mandare informazioni a un dispositivo: –Istruzioni specifiche di I/O –I/O mappato in memoria (memory.
Operating System Concepts
Architetture dei Calcolatori (Lettere j-z) Il Processore (2)
CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dellInformazione Politecnico di Milano © William Fornaciari Tecniche di gestione.
L’organizzazione della comunicazione di I/O G. Vercelli
1 Corso di Informatica (Programmazione) Lezione 4 (24 ottobre 2008) Architettura del calcolatore: la macchina di Von Neumann.
Struttura dei sistemi operativi (panoramica)
Com’è fatto un elaboratore?
Software di base Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei.
1 Gestione del processore Il modello a processi sequenziali.
3. Architettura Vengono descritte le principali componenti hardware di un calcolatore.
1.7 Risorse di sistema Comprendere le risorse di sistema Gestire le risorse di sistema.
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
Il sistema operativo Vito Perrone
UNIVERSITA’ STUDI DI ROMA “FORO ITALICO”
INPUT / OUTPUT. Connessione tra componenti CPU RAM DischiMonitor StampanteTastieraMouse BUS = Interfacce o Controller.
Le procedure di gestione input/output Poiché le operazioni di input/output sono più lente rispetto alla velocità del processore, occorrerà sincronizzarle.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
TECNICHE DI INPUT/OUTPUT
ELETTRONICA DIGITALE (II Parte)
STRUTTURA GENERALE DI UN ELABORATORE
L' ARCHITETTURA DI VON NEUMANN
Architettura degli elaboratori
I vettore interruzioni
Architettura del calcolatore
Seconda Università degli Studi di Napoli Facoltà di Economia Corso di Informatica Prof.ssa Zahora Pina.
Introduzione al linguaggio assembly del microprocessore a parte
ARCHITETTURA DI UN ELABORATORE
Sistema Operativo (Software di base)
Gli interrupt Quando una periferica richiede attenzione alla cpu genera un segnale detto di interrupt.
Architettura di una CPU
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
Calcolatori Elettronici Il Processore
Informatica Lezione 5 Scienze e tecniche psicologiche dello sviluppo e dell'educazione (laurea triennale) Anno accademico:
Calcolatori Elettronici Il Processore (2)
Corsi di Laurea in Biotecnologie
Corso di Laurea in Informatica Architettura degli elaboratori a.a La macchina programmata Instruction Set Architecture (2) Istruzioni I-type Indirizzamento.
Gestione dei dispositivi di I/O:
Sistemi Elettronici Programmabili
MICROPROCESSORI Un processore è un circuito integrato in grado di effettuare operazioni di calcolo o di elaborazione dell'informazione Il circuito contiene.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
Architettura di un calcolatore e linguaggio macchina.
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
1 Input/Output. 2 Livelli del sottosistema di I/O Hardware Gestori delle interruzioni Driver dei dispositivi Software di sistema indipendente dal dispositivo.
L’esecuzione dei programmi
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
Corso di Laurea in Biotecnologie corso di Informatica Paolo Mereghetti DISCo – Dipartimento di Informatica, Sistemistica e Comunicazione.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Struttura Fondamentale degli Elaboratori Elaboratore –È un sistema numerico –È un sistema automatico –È un sistema a programamzione registrabile –Ha una.
Come esegue le istruzioni il microprocessore Un’istruzione è sempre composta da più operazioni elementari.
Il Processore Il processore è la componente dell’unità centrale che elabora le informazioni contenute nella memoria principale L’elaborazione avviene eseguedo.
Presentazione di sistemi Ambrosio Federica Anna Esposito 3C inf.
Gli interrupt Richiesta di attenzione alla cpu. Viene generato un segnale detto di interrupt diretto alla cpu.
Il modello di Von Neumann
Gestione delle periferiche. Le periferiche sono dispositivi che permettono le operazioni di input/output.
Hardware Struttura fisica (architettura) del calcolatore formata da parti meccaniche, elettriche, elettroniche.
Transcript della presentazione:

Ingresso/Uscita u Materiale in: –Queste trasparenze, non basta il testo! –Tanenbaum 2.4.1, 5.6.4, 5.6.5, 5.7.3

Comandi ai dispositivi di I/O u Si usano due metodi per mandare informazioni a un dispositivo: –Istruzioni specifiche di I/O –I/O mappato in memoria (memory mapped)

Istruzioni specifiche contengono: u Lidentificatore del dispositivo e una parola di comando –Identificatore del dispositivo: la CPU comunica lidentificatore per mezzo di fili dedicati che fanno parte del bus di I/ –Parola di comando: normalmente viaggia sui fili dedicati ai dati

Memory-mapped I/O: u Parte dello spazio di indirizzamento è dedicato allI/O u Letture e scritture agli indirizzi di I/O sono interpretati come comandi di I/O u I programmi utente non possono eseguire direttamente operazioni di I/O: –Lo spazio di inidirizzamento di I/O è protetto per mezzo della protezione degli spazi di indirizzamento (vedere in seguito largomento memoria virtuale)

Esempio

Significato degli indirizzi u A ciascun indirizzo sono assegnati uno o piu dati e/comandi u Leggere e scrivere hanno spesso degli effetti collaterali, ad esempio svuotare un buffer.

Esempio di lettura da tastiera generica u I dati arrivano a intervalli casuali e uno alla volta u I dati arrivano lentamente u La tastiera puo avere o non avere un dato disponibile u La tastiera puo essere rotta

Esempio di lettura da tastiera generica, cont. u Registri (logici) di interfaccia: –Ready (un carattere disponibile) 1 bit –Errori (overrun cioe carattere perso e errore hardware) 2 bit –Dati in uscita 7-8 bit –Quanti indirizzi? Anche uno solo in sola lettura –Comandi? Se carattere disponibile allora cancella il dato dal buffer u Mappabili in un solo word!

Esempio di scrittura su terminale seriale u I dati si possono mandare quando si vuole ma non se il dispositivo sta ancora processando il carattere precedente u Non occorre mandare i dati molto velocemente u Il terminale puo essere rotto

Esempio di scrittura su terminale seriale, cont. u Registri (logici) di interfaccia: –Busy, non puo accettare un nuovo carattere; 1 bit –Errore: malfunzionamento generico, fornito carattere troppo presto; 2 bit –Dati in ingresso: 7-8 bit –Quanti indirizzi? Uno solo ma in lettura e scrittura: leggi i bit di stato e scrivi i dati

Come i dispositivi di I/O comunicano con lOS u LOS deve sapere quando: –Un dispositivo ha completato unoperazione –Unoperazione ha causato un errore u Ci sono due modi di implementare questa comunicazione tra OS e dispositivo: –Polling –Interrupt

Polling: u Il dispositivo mette le informazioni in un registro di stato (possibilmente mappato in memoria) u LOS controlla periodicamente il registro di stato

Interrupt: u Quando un dispositivo ha bisogno dellattenzione della CPU fa in modo di interrompere lesecuzione delle istruzioni e fa passare lOS a gestire il dispositivo (vedere in seguito come questo è possibile). u Linterruzione avviene SEMPRE tra unistruzione e laltra. u Il programma interrotto non si accorge di nulla (a meno che le cause per linterruzione abbiano a che fare con il programma stesso)

Polling: I/O programmato u Vantaggi: –Semplice: la CPU è totalmente in controllo e fa tutto il lavoro u Svantaggi: –Loverhead di polling può sprecare molte risorse CPU controllore dispositivo Memoria Dati pronti? Leggi dati Memorizza dati si no finito? no si busy loop, poco Efficiente soprattutto Se la CPU è veloce I controlli dello stato Di I/O possono essere Inseriti tra codice compute Intensive

Polling, esempio di prestazioni u Assumiamo 400 cicli per ciascuna operazione di polling, compreso riattivazione del programma utente e un processore che esegue 500 milioni di istruzioni al secondo u Mouse: 30 eventi al secondo, 30 x 400 = cicli al secondo; 12 mila / 500 milioni = %

Polling, esempio di prestazioni, cont. u Assumiamo 400 cicli per ciascuna operazione di polling, compreso riattivazione del programma utente e un processore che esegue 500 milioni di istruzioni al secondo u Floppy: 50 Kbyte/sec, due byte alla volta, circa 25 mila accessi/sec X 400 =10 milioni di istruzioni al secondo o 2% del processore u CHIARAMENTE la gestione di un disco in polling non ha senso

Polling, esempio di prestazioni, cont. u Assumiamo 400 cicli per ciascuna operazione di polling, compreso riattivazione del programma utente e un processore che esegue 500 milioni di istruzioni al secondo u Disco: 4 Mbyte/sec in 16 byte alla volta da 250K operazioni al secondo X 400 = 100 milioni di istruzioni al secondo o 20% della CPU

Trasferimento con interrupt u Vantaggi: –Lavanzamento del programma utente si ferma solo durante il trasferimento effettivo u Svantaggi, ci vuole hardware particolare per: –Generare un interrupt (nel dispositivo) –Riconoscere un interrupt (CPU) –Salvare lo stato per riprendere dopo linterrupt (CPU) add sub and or nop read store... rti memoria Programma utente (1) I/O interrupt (2) salva PC (3) Indirizzo Di gestione interrupt Procedura Di servizio interrupt (4) ritorno CPU controllore dispositivo Memoria :

Interrupt, esempio di prestazioni u Come per il disco dellesempio di polling precedente: –500 istruzioni per gestire linterrupt ed acquisire 16 byte, 250K X 500 = 25% della CPU –MA se il disco e attivo solo il 5% del tempo in questo caso il 5% di 25% = 1.25% !! –Linterrupt vince perche una periferiche non e mai SEMPRE attiva.

Eccezioni, come per linterrupt u Interruzioni del flusso di esecuzione per cause legate allesecuzione stessa (invece che cause legate a eventi INDIPENDENTI) u Esempi: –Divisione per zero –Passaggio al sistema operativo (trap, system call)

Gestione delle eccezioni, sospensione programma corrente 1. Il processore deve terminare (se puo) lesecuzione dellistruzione corrente o comunque andare in uno stato ben definito (cio e talvolta difficile in processori implementati in modo molto sofisticato) 2. Il program counter deve essere salvato 3. Lo stato deve essere salvato

Salvataggio stato, cont. u Lo stato deve essere salvato in una struttura a pila o tale da garantire la possibilita di salvare piu volte prima di ritornare, cioe quando un interrupt interrompe la gestione di un altro interrupt.

Salvataggio stato u Puo essere fatto sia in hardware che con un misto di hardware e software. u E critico che, se fatto in software, lhardware provveda a salvare quanto il sofware non puo (tipicamente almeno il program counter). u Il sofware deve essere molto attento a non modificare lo stato prima di salvarlo

Gestione delle eccezioni, gestione del problema u La seconda fase dopo aver salvato lo stato e individuare il problema e decidere quale codice eseguire. u Anche qui la gestione puo essere preminentemente software o hardware –Registro di stato (es. MIPS) »Un registro contiene un codice che identifica lerrore –Vettore (es. X86) »Lhardware forza lesecuzione a un indirizzo che dipende dal tipo di errore (e dove presumibilmente si e messo del codice apposito)

Gestione del problema u Sarebbe pericoloso gestire il problema (o lI/O) nello stesso spazio di esecuzione dellutente e quindi ci vuole un passaggio di livello che viene implementato al momento della chiamata al codice di gestione dellinterrupt (questa e unaltra funzione implementabile solo in hardware)

Ritorno da interrupt u Infine bisogna tornare, se possibile, al programma utente ripristinando il suo stato. –Hardware: cambiamento di livello –Software o hardware: ripristino stato.

Priorita u Dalla descrizione precedente e chiaro che un interrupt potrebbe essere interrotto a sua volta. Occorre: –Stabilire una gerarchia di interrupt per evitare che si creino dei problemi »Logici se il codice interrotto esegue delle funzioni che mettono temporaneamente la macchina in uno stato non corretto, ad esempio cambiando strutture dellOS »Prestazionali se il codice interrotto aveva delle necessita temporali che non sono piu rispettate a causa della sua interruzione

Eccezioni, esempi u Overflow aritmetico (puo tipicamente essere inibita) u Divisione per zero u Risultato non normalizzabile di unoperazione floating-point u Accesso a dati non allineati u Istruzione non definita u Chiamata a OS, questa ovviamente non e una condizione di errore!! u Accesso a memoria non esistente, listruzione non puo essere terminata!! Ma deve essere ripresa dopo aver sistemato il problema

Interrupt rispetto a eccezioni u Un interrupt è come un eccezione solo che: –Un interrupt è asincrono –Richiede che dellinformazione ulteriore venga fornita dal dispotivo –Un interrupt non è associato con una specifica istruzione –Un interrupt non impedisce che unistruzione termini »La CPU può gestire un interrupt quando desidera (ovviamente prima possibile) u Linterrupt è più complicato di un eccezione: –Deve acquisire lidentità del dispositivo che lha causato –Le richieste di interrupt possono avere diversi livelli di urgenza: »Le richieste di interrupt devono essere ordinate secondo priorità

Esempio, gestione in interrupt della tastiera u Si deve assegnare al bit di carattere disponibile un interrupt u Il codice del driver gestisce un piccolo buffer –Se lutente chiede un carattere lo fornisce dal buffer o ritorna un errore se il buffer e vuoto. –NON FA ALTRO u Il codice di interrupt se viene attivato legge il carattere e lo mette nel buffer del driver. –In caso di errore del dispositivo o di buffer troppo pieno segnala al sistema operativo la condizione di errore »LOS puo semplicemente loggare il problema o terminare il programma utente.

Delegazione della responsabilità per lI/O: DMA u Direct Memory Access (DMA): –Esterno alla CPU –Master del bus –Trasferisce interi blocchi senza lintervento della CPU CPU controllore dispositivo Memoria DMAC La CPU comunica lindirizzo di partenza Direzione e dimensioni al controllore. Poi dà il comando di partire DMAC fornisce tutti i segnali Per la memoria e per il controllore Di I/O

DMA: concetti base u Il DMA e potenzialmente indipendente dal tipo di I/O usato (memory mapping, polling, interrupt) anche se usa tipicamente linterrupt. u Il DMA non fa che eseguire quello che la CPU avrebbe eseguito. u Alla fine delloperazione il DMA si comporta rispetto alla CPU come un dispositivo che segnala la fine delloperazione.

Delegazione della responsabilità per lI/O: IOP CPU IOP Mem D1 D2 Dn... main memory bus I/O bus CPU IOP (1)Manda istruzione allIOP memory (2) (3) I trasferimenti sono controllati DallIOP IOP utilizza cicli di memoria. OP Device Address Nome dispositivoDove sono i comandi IOP leggi i comandi dalla memoria OP Addr Cnt Other Cosa fare Dove Mettere I dati Quanti dati Richieste speciali (4) IOP interrompe la CPU alla fine Un tipico I/O Processor e il famoso Canale IBM

Compiti del sistema operativo u Il sistema operativo agisce da interfaccia tra: –Lhardware e il programma che ha chiesto lI/O u Tre caratteristiche del sistema di I/O: –Condiviso da più programmi –Usa linterrupt per comunicare informazioni riguardanti lI/O. »Gli interrupt devono essere gestiti dallOS perchè richiedono un accesso protetto alla CPU –Il controllo di un dispositivo di I/O può essere molto complesso: »Gestione una serie di eventi concorrenti »Le necessità di un particolare dispositivo possono essere molto complesse

Compiti del sistema operativo u Protegge risorse condivise –Garantisce che un utente acceda a un dispositivo o a una parte di esso solo se ne ha il diritto u Fornisce unastrazione per laccesso ai dispositivi: –Fornisce funzioni per gestire un dispositivo u Gestisce gli interrupt u Fornisce una condivisione di accesso che garantisce accesso a tutti gli utenti u Organizza gli accessi per migliorare le prestazioni –Es. Buffer disco

Comunicazione tra I/O e OS u Il sistema operativo deve prevenire: –Accesso diretto dei programmi ai dispositivi u Se gli utenti potessero fare I/O direttamente: –Le risorse condivise non sarebbero protette u Tre tipi di comunicazione sono richiesti: –LOS deve poter dare comandi –Il dispositivo deve poter notificare lOS in caso di terminazione o errori –Deve trasferire i dati

Sommario u Le prestazioni dipendono dal componente meno performante della catena u Comunicazione con i dispositivi di I/O: –Polling: spreca cicli di CPU –I/O interrupt: come le eccezioni ma asincrono u Delegazione di responsabilità: –DMA –IOP u Alcuni dispositivi, ad esempio quelli multimediali, creano problemi