Gestione dei Dispositivi PDF
Document Details
Uploaded by HardierRooster5292
Università San Raffaele Roma
Noemi Scarpato
Tags
Summary
These are lecture notes on the management of I/O devices in computer science. The document discusses different approaches to handling input/output operations, including programmed I/O and Direct Memory Access (DMA).
Full Transcript
Noemi Scarpato CORSO DI INFORMATICA E RAPPRESENTAZIONE DIGITALE Noemi Scarpato Università Telematica San Raffaele Roma Gestione dei Dispositivi 1 di 12 ...
Noemi Scarpato CORSO DI INFORMATICA E RAPPRESENTAZIONE DIGITALE Noemi Scarpato Università Telematica San Raffaele Roma Gestione dei Dispositivi 1 di 12 Noemi Scarpato Cosa Vedremo Nelle Lezioni 1. Fondamenti Dell´Informatica 2. Architetture e Sistemi Operativi 3. Introduzione alle Reti di Calcolatori - INTERNET, IL World Wide Web e i loro servizi. 4. Elaborazione di documenti elettronici 5. Fondamenti di elaborazione multimediale 6. Creazione di Pagine Web. Gestione dei Dispositivi 2 di 12 Noemi Scarpato Architetture e Sistemi Operativi Introduzione al Computer e Rappresentazione dell'Informazione. Architettura della macchina di von Neumann. Dispositivi di memoria,dispositivi di input, dispositivi di output. Classificazioni e architetture. Sistemi Operativi. Introduzione e organizzazione dei sistemi operativi. Gestione dei processi. Gestione della memoria. Gestione dei dispositivi. File system. La sicurezza nei sistemi operativi. Casi di studio: Windows (VISTA,SEVEN) e Linux (Mandriva,Ubuntu). Gestione dei Dispositivi 3 di 12 Noemi Scarpato Gestione dei dispositivi di I/O La gestione dei dispositivi di I/O è una delle componenti più importanti di un S.O. Il buon funzionamento di un sistema operativo dipende, tra le altre cose, da un uso efficiente delle sue risorse di I/O e di memorizzazione. Il dispositivo fisico è gestito da due entità: il controllore del dispositivo e il driver del dispositivo. Gestione dei Dispositivi 4 di 12 Noemi Scarpato Gestione dei dispositivi di I/O Il controllore del dispositivo: è la componente hardware che accetta richieste da parte del S.O. e soddisfa tali richieste dialogando con il dispositivo stesso. Spesso, i controllori sono dotati di intelligenza propria: sono in grado di accettare richieste complesse, soddisfarle (potenzialmente in più passi, seguendo un programma) e restituire il risultato direttamente in memoria (tramite il meccanismo detto DMA descritto in seguito) 5 di 12 Gestione dei Dispositivi Noemi Scarpato Gestione dei dispositivi di I/O il driver del dispositivo: è la controparte software del controllore. Il driver si occupa di fornire ai processi un’interfaccia astratta del dispositivo, traducendo richieste ad alto livello (come ad esempio la lettura di un file) in un insieme di passi a basso livello (come ad esempio lo spostamento della testina e la lettura di un particolare blocco). Gestione dei Dispositivi 6 di 12 Noemi Scarpato Gestione dei dispositivi di I/O Mentre il controllore normalmente implementa semplici meccanismi, alcuni driver devono supportare complesse politiche di accesso e di allocazione delle risorse. Nei S.O. di classe Windows e Mac OS X, molti driver vengono forniti direttamente con il sistema operativo. Nel caso di dispositivi più recenti, non ancora presenti al momento dell’uscita del sistema operativo, i driver vengono forniti a parte, su floppy-disk o più frequentemente su CD-ROM o tramite rete, e vanno installati nel sistema operativo. Gestione dei Dispositivi 7 di 12 Noemi Scarpato Gestione dei dispositivi di I/O La situazione in Linux, invece, è differente. A parte alcune rare eccezioni, i produttori di hardware non supportano direttamente Linux. Questo significa che molti driver vengono prodotti volontariamente e gratuitamente da programmatori sparsi ovunque nel globo, che ovviamente non sempre possono garantire una qualità paragonabile ad un prodotto commerciale. Ciò nonostante, la situazione è in costante miglioramento, e un numero maggiore di produttori sceglie di supportare Linux. Gestione dei Dispositivi 8 di 12 Noemi Scarpato Gestione dei dispositivi di I/O Dopo aver inviato una richiesta di I/O, esistono tre possibili modalità di comunicazione tra driver e controllore: Programmed I/O – Il processore esegue il codice del driver e spedisce una richiesta di I/O al controllore del dispositivo; mentre attende il completamento dell’operazione di I/O, il processore non esegue nulla, a parte verificare periodicamente se l’operazione è stata completata. – Quando questo accade, il processore copia in memoria l’eventuale risultato (ad esempio, la lettura di un blocco di disco). Ovviamente, questo è il meccanismo meno efficiente. Gestione dei Dispositivi 9 di 12 Noemi Scarpato Gestione dei dispositivi di I/O Interrupt-driven I/O: Un interrupt avvisa il processore che il risultato è pronto. Il processore copia il risultato in memoria Direct Memory Access (DMA) Un interrupt avvisa il processore che il risultato è pronto in memoria. Questa volta è compito del controllore trasferire il risultato direttamente nella memoria e avvisare il processore dopo l’avvenuto trasferimento. Il processore può dedicarsi ad altri processi durante il periodo di attesa e non è richiesto il suo intervento nel trasferimento dei dati. Questo è il meccanismo più efficiente in assoluto, in quanto il processore non deve fare nulla, a parte spedire la richiesta. Oggi la totalità dei dischi e dei CD-ROM supporta questo tipo di trasferimento. Se il dispositivo lavora con grandi quantità di dati, DMA può dare grandi vantaggi. Gestione dei Dispositivi 10 di 12 Noemi Scarpato Gestione della memoria secondaria La memoria secondaria è alla base di ogni programma applicativo, in quanto contiene il codice di tali programmi e i dati su cui operano. Per questo motivo, una gestione attenta e ottimizzata di tale risorsa è fondamentale per migliorare le prestazioni di un sistema di calcolo. Esistono due tipi principali di ottimizzazioni possibili, ovvero la gestione attenta della coda delle richieste e l’introduzione di un meccanismo di caching. La coda delle richieste può essere governata da una disciplina FCFS (first come, first served, ovvero il primo che arriva è il primo ad essere servito). Ma in alcuni casi, questo tipo di approccio non è il migliore in assoluto. Si consideri, ad esempio, un ascensore in un palazzo di molti piani, e si consideri una sequenza di richieste che arrivano nell’ordine 1, 30, 2, 29, 3, 28, 4, 27, a breve distanza di tempo l’una dall’altra. Gestione dei Dispositivi 11 di 12 Noemi Scarpato Gestione della memoria secondaria Nessuno si sognerebbe di utilizzare un approccio FCFS per disciplinare l’ordine in cui le richieste vengono servite, in quanto questo corrisponderebbe a correre dai primi agli ultimi piani (e viceversa) un gran numero di volte. Se invece le richieste fossero riordinate e servite nell’ordine 1, 2, 3, 4, 27, 28, 29, 30, sarebbe sufficiente una sola passata per servirle tutte. Questo è quello che avviene all’interno di un hard disk, dove a muoversi è la testina di lettura/scrittura. Un secondo meccanismo di ottimizzazione è quello della memoria cache: si tratta di mantenere una copia in memoria principale dei dati della memoria secondaria che sono stati acceduti più frequentemente (o più recentemente). Gestione dei Dispositivi 12 di 12