La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Silberschatz and Galvin 1999 12.1 Operating System Concepts Il sistema di I/O Hardware di I/O Interfaccia di I/O per le applicazioni Sottosistema per lI/O.

Presentazioni simili


Presentazione sul tema: "Silberschatz and Galvin 1999 12.1 Operating System Concepts Il sistema di I/O Hardware di I/O Interfaccia di I/O per le applicazioni Sottosistema per lI/O."— Transcript della presentazione:

1 Silberschatz and Galvin Operating System Concepts Il sistema di I/O Hardware di I/O Interfaccia di I/O per le applicazioni Sottosistema per lI/O del kernel Trasformazione delle richieste di I/O in operazioni dellhardware Prestazioni

2 Silberschatz and Galvin Operating System Concepts Hardware di I/O Esiste una incredibile varietà di dispositivi di I/O. Concetti comuni: –Porta –Bus (daisy chain o accesso diretto condiviso) –Controller (host adapter) Le istruzioni di I/O controllano i dispositivi. I dispositivi hanno indirizzi usati da: –Istruzioni dirette di I/O –Memory-mapped I/O

3 Silberschatz and Galvin Operating System Concepts Polling Determina lo stato di un dispositivo: –command-ready –busy –error Si ha un ciclo busy-wait per attendere lI/O dal dispositivo.

4 Silberschatz and Galvin Operating System Concepts Interrupt La linea di richiesta dellinterrupt della CPU viene settata dal dispositivo di I/O. Il gestore di interrupt (interrupt–handler) riceve gli interrupt. Alcuni tipi di interrupt possono essere mascherati, per ignorarli definitivamente o rimandarne il servizio. Il vettore degli contiene gli indirizzi di memoria dei gestori specializzati. –Basato su priorità –Alcuni sono non mascherabili Il meccanismo di interrupt viene impiegato anche per le eccezioni.

5 Silberschatz and Galvin Operating System Concepts Ciclo di I/O guidato da interrupt

6 Silberschatz and Galvin Operating System Concepts Accesso diretto alla memoria – DMA Viene impiegato per evitare lI/O programmato (PIO) per trasferimenti di grandi quantità di dati. Richiede un controller di DMA. Si evita così di sovraccaricare di compiti la CPU: è il controller di DMA che si occupa di trasferire i dati direttamente tra il dispositivo di I/O e la memoria.

7 Silberschatz and Galvin Operating System Concepts Passi di un trasferimento DMA

8 Silberschatz and Galvin Operating System Concepts Interfaccia di I/O per le applicazioni Le chiamate di sistema di I/O incapsulano i comportamenti dei dispositivi in classi generali. Lo strato dei driver dei dispositivi nasconde al sottosistema di I/O del kernel le differenze fra i controller dei dispositivi di I/O. I dispositivi possono differire per molteplici aspetti: –Character–stream o block–stream (trasferimento a flusso di caratteri o di blocchi); –Accesso sequenziale o casuale; –Dispositivo sincrono o asincrono, condivisibile o dedicato; –Velocità di funzionamento; –Lettura e scrittura, sola lettura o sola scrittura.

9 Silberschatz and Galvin Operating System Concepts Dispositivi con trasferimento a blocchi o a caratteri Dispositivi con traserimento a blocchi comprendono principalmente drive di dischi: –Il dispositivo comprende istruzioni del tipo read, write, seek; –Raw I/O (I/O di basso livello); –Possibilità di accesso ai file mappato in memoria. Dispositivi a caratteri comprendono tastiere, mouse, porte seriali: –Comandi classici sono get, put ; –Con luso di librerie appropriate permettono laccesso per righe e la gestione di un buffer.

10 Silberschatz and Galvin Operating System Concepts Dispositivi di rete Variano molto dai dispositivi per il trasferimento di I/O a blocchi e/o caratteri fino a presentare una propria interfaccia specifica. Unix e Windows/NT comprendono uninterfaccia socket: –Separa il protocollo di rete dalle operazioni di rete; –Include la funzionalità select. Gli approcci variano molto (pipe half–duplex, FIFO full–duplex, stream full–duplex, code di messaggi, socket)

11 Silberschatz and Galvin Operating System Concepts Clock e Timer Forniscono il tempo corrente, il tempo trascorso, regolano un timer per avviare loperazione X al tempo T. Se impiega un interval timer per la tempificazione: con questo meccanismo è possibile avere interrupt periodici. La system call ioctl (su UNIX) controlla vari aspetti di I/O come clock e timer.

12 Silberschatz and Galvin Operating System Concepts I/O bloccante e non bloccante I/O bloccante: il processo viene sospeso fino al completamento delloperazione di I/O. –Facile da usare e da comprendere; –Per alcuni scopi è insufficiente. I/O non-bloccante: la chiamata ad I/O ritorna appena possibile (dopo aver iniziato il trasferimento di dati). –Utile per processi utente, e per trasferimento dati, ad esempio da disco a schermo (I/O bufferizzato); –Viene implementato per mezzo di multi-threading; –Ritorna rapidamente con il numero di byte letti o scritti. I/O asincrono: il processo prosegue mentre avviene lI/O. –Difficile da usare; –Il sottosistema di I/O segnala al processo il completamento dellI/O.

13 Silberschatz and Galvin Operating System Concepts Sottosistema di I/O del kernel Scheduling –Alcune richieste di I/O sono ordinate per mezzo di code in ciascun dispositivo; –Il sistema operativo è equo: nessuna applicazione deve ricevere un servizio carente, da maggiore priorità ad applicazioni inficiate da un ritardo nel servizio. Buffering: si memorizzano i dati in memoria mentre avviene il trasferimento fra dispositivi. –Utile per gestire la differenza di velocità dei dispositivi; –Per gestire la differenza di dimensione dei blocchi di trasferimento dei dispositivi; –Per mantenere la semantica di copia.

14 Silberschatz and Galvin Operating System Concepts Kernel I/O Subsystem Caching: una regione di memoria veloce che serve per mantenere copie di certi dati. Laccesso a queste copie è più rapido che laccesso agli originali. Spooling: è un buffer contenente output per un dispositivo che non può accettare flussi interfogliati di dati (ad esempio, una stampante). Prenotazione di un dispositivo: fornisce accesso esclusivo ad un dispositivo. –System call per allocazione e deallocazione dei dispositivi; –Responsabilità di evitare i deadlock.

15 Silberschatz and Galvin Operating System Concepts Gestione degli errori Un sistema operativo che usi la protezione della memoria può recuperare varie situazioni di errore, ad esempio, errori di lettura di un disco, errori per dispositivi non disponibili o errori di scrittura momentanei. La maggior parte dei sistemi operativi restituisce un codice di errore quando una richiesta di I/O fallisce. I file log di errori possono essere consultati per avere statistiche sul funzionamento del sistema.

16 Silberschatz and Galvin Operating System Concepts Strutture dati del kernel Il kernel mantiene informazioni sullo stato dei componenti coinvolti nelle operazioni di I/O, come la tabella dei file aperti e la tabella delle socket. Moltissime strutture dati complesse tengono traccia dellallocazione dei vari buffer, dellallocazione della memoria e dei blocchi dirty. Alcuni sistemi operativi utilizzano metodologie object-oriented e message passing per limplementazione dellI/O.

17 Silberschatz and Galvin Operating System Concepts Trasformazione delle richieste di I/O in operazioni hardware Si consideri la lettura di un file su disco da parte di un processo: –Si determina il dispositivo su cui il file è memorizzato; –Si opera la traduzione fra nome del dispositivo e suo driver fisico; –Si leggono i dati dal disco in un buffer; –Si rendono i dati disponibili al processo che li ha richiesti; –Si ritorna il controllo al processo richiedente.

18 Silberschatz and Galvin Operating System Concepts Schema di esecuzione di una richiesta di I/O

19 Silberschatz and Galvin Operating System Concepts Prestazioni LI/O è un fattore fondamentale per le prestazioni dellintero sistema: –Richiede un notevole impegno della CPU per lesecuzione del codice dei driver e per lo scheduling dei processi; –Produce numerosi context switch dovuti agli interrupt; –Sovraccarica il bus della memoria durante i trasferimenti di dati tra i controller e la memoria fisica e tra i buffer del kernel e lo spazio di indirizzamento delle applicazioni.

20 Silberschatz and Galvin Operating System Concepts Comunicazione fra computer

21 Silberschatz and Galvin Operating System Concepts Come migliorare le prestazioni Ridurre il numero di context switch. Ridurre il numero di trasferimenti di dati. Ridurre il numero di interrupt, trasferendo grossi volumi di dati, utilizzando controller intelligenti e polling. Utilizzare il DMA Equilibrare le prestazioni della CPU, della memoria, del bus e dellI/O, dato che il sovraccarico di una componente qualsiasi provoca il basso utilizzo delle altre.


Scaricare ppt "Silberschatz and Galvin 1999 12.1 Operating System Concepts Il sistema di I/O Hardware di I/O Interfaccia di I/O per le applicazioni Sottosistema per lI/O."

Presentazioni simili


Annunci Google