La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Operating System Concepts

Presentazioni simili


Presentazione sul tema: "Operating System Concepts"— Transcript della presentazione:

1 Operating System Concepts
Il sistema di I/O Hardware di I/O Interfaccia di I/O per le applicazioni Sottosistema per l’I/O del kernel Trasformazione delle richieste di I/O in operazioni dell’hardware Prestazioni Operating System Concepts

2 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 Operating System Concepts

3 Operating System Concepts
Polling Determina lo stato di un dispositivo: command-ready busy error Si ha un ciclo busy-wait per attendere l’I/O dal dispositivo. Operating System Concepts

4 Operating System Concepts
Interrupt La linea di richiesta dell’interrupt 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. Operating System Concepts

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

6 Accesso diretto alla memoria – DMA
Viene impiegato per evitare l’I/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. Operating System Concepts

7 Passi di un trasferimento DMA
Operating System Concepts

8 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. Operating System Concepts

9 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 l’uso di librerie appropriate permettono l’accesso per righe e la gestione di un buffer. Operating System Concepts

10 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 un’interfaccia 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) Operating System Concepts

11 Operating System Concepts
Clock e Timer Forniscono il tempo corrente, il tempo trascorso, regolano un timer per avviare l’operazione 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. Operating System Concepts

12 I/O bloccante e non bloccante
I/O bloccante: il processo viene sospeso fino al completamento dell’operazione 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 l’I/O. Difficile da usare; Il sottosistema di I/O segnala al processo il completamento dell’I/O. Operating System Concepts

13 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”. Operating System Concepts

14 Operating System Concepts
Kernel I/O Subsystem Caching: una regione di memoria veloce che serve per mantenere copie di certi dati. L’accesso a queste copie è più rapido che l’accesso 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. Operating System Concepts

15 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. Operating System Concepts

16 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 dell’allocazione dei vari buffer, dell’allocazione della memoria e dei blocchi “dirty”. Alcuni sistemi operativi utilizzano metodologie object-oriented e message passing per l’implementazione dell’I/O. Operating System Concepts

17 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. Operating System Concepts

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

19 Operating System Concepts
Prestazioni L’I/O è un fattore fondamentale per le prestazioni dell’intero sistema: Richiede un notevole impegno della CPU per l’esecuzione 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. Operating System Concepts

20 Comunicazione fra computer
Operating System Concepts

21 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 dell’I/O, dato che il sovraccarico di una componente qualsiasi provoca il basso utilizzo delle altre. Operating System Concepts


Scaricare ppt "Operating System Concepts"

Presentazioni simili


Annunci Google