cerca
Sistemi Operativi - Appunti caotici
modifica cronologia stampa login logout

Wiki

UniCrema


Materie per semestre

Materie per anno

Materie per laurea


Help

Sistemi Operativi - Appunti caotici

Torna alla pagina di Sistemi Operativi


 :: Appunti caotici ::

Lezione 2 Realizzazione del sottosistema di ingresso / uscita

Pag 1

Sommario

...

Pag 2

Schedulazione delle richieste di I/O

...

Bufferizzazione

Avere velocità significativamente diverse tra calcolatore e periferica è un problema perché potrei perdere delle informazioni per strada. Una soluzione non troppo furba potrebbe essere rallentare il flusso delle informazioni del dispositivo più veloce, ma è molto meglio sfruttare la bufferizzazione.

Questa tecnica funziona nell'ipotesi che la sorgente di informazioni non produca sempre con la stessa velocità, o il buffer andrebbe comunque a saturarsi (cosa che preferirei evitare). Si suppone quindi che il disaccoppiamento delle velocità sia temporaneo.

Pag 3

Caching

...

Spooling

(avviso subito che gli appunti sono un po' menosi) Lo spooling permette a ciascun processo di avere a disposizione un buffer in memoria di massa (quindi di dimensioni anche piuttosto grandi) in cui può scrivere come se lo stesse facendo direttamente sulla periferica. Il nome del file in cui scrive è reso univoco con lo sfruttamento dell'ora presa dall'orologio di sistema. Tutti questi file sono raccolti in una directory specifica, esplorata da un processo detto spooler, l'unico che può accedere direttamente alla periferica (il che risolve di per sé il problema di garantire la mutua esclusione). Lo spooler continua a controllare il direttorio di spooling finché un processo non termina di scrivere su uno dei file in esso contenuti; a questo punto se la periferica è libera vi accede passando i dati e i comandi scritti su file.

L'utilizzo dello spooler implica la disabilitazione delle funzioni di I/O ai processi lato utente, le cui operazioni di lettura/scrittura sono tradotte in istruzioni scritte su file residenti nella cartella di spooling.

Pag 4

Locking

Il locking consiste nella prenotazione dei dispositivi, e consente di accedere in mutua esclusione a una periferica. Le strutture dati che servono per implementarlo possono essere tenute direttamente in memoria centrale nello spazio di indirizzamento del sistema operativo.

Gestione degli errori

Bisogna distinguere:

  • guasti permanenti
  • malfunzionamenti transitori

Li distinguo riprovando un certo numero di volte a compiere le operazioni desiderate sulla periferica. Segnalo poi al processo che ha fatto richiesta il tipo di errore (dando un valore di ritorno che verrà interpretato grazie a una tabella di gestione degli errori).

Pag 5

Strutture dati nel kernel

La memoria del processo utente mantiene informazioni su a quante e quali periferiche / risorse sta accedendo. In particolare il descrittore del file individua una posizione particolare nella tabella dei file aperti.

Nella memoria del kernel sono memorizzati ovviamente molti più dettagli.

Realizzazione di una richiesta di I/O

...

Pag 6

Prestazioni dell'I/O (1)

...

Prestazioni dell'I/O (2)

Come migliorare le prestazioni?

  • ridurre cambi di contesto
  • ridurre copia dati
  • ridurre frequenza interrupt
  • aumentare la concorrenza
  • gestione delle periferiche a livello più basso della struttura del software, o dovrei mettere in piedi meccanismi sempre più complessi
  • equilibrare le prestazioni del sistema

Torna alla pagina di Sistemi Operativi