La memoria secondaria
Oltre alla memoria centrale (veloce, di piccole dimensioni e volatile) i calcolatori necessitano di un supporto di memorizzaione di piu’ grandi dimensioni e non volatile
La memoria secondaria
I primi calcolatori utilizzavano come supporto di memorizzazione secondaria i nastri magnetici
Il principale problema dei nastri e’ l’ accesso sequenziale
RAMAC 305 dell’IBM: primo calcolatore con hard disk
A causa della lentezza dei tempi di accesso sarebbe impensabile effettuare un accesso al disco e leggere un solo byte
I dischi vengono indirizzati come vettori monodimensionali di blocchi logici, dove il blocco logico rappresenta la minima unità di trasferimento (dim. tipica 512 byte).
L’array di blocchi logici viene mappato sequenzialmente nei settori del disco:
Il tempo di accesso al disco si può scindere in :
Il SO è responsabile dell’uso efficiente dell’hardware. Per i dischi ciò significa garantire tempi di accesso contenuti.
Una richiesta di accesso al disco può venire soddisfatta immediatamente se unità a disco e controller sono disponibili; altrimenti la richiesta deve essere aggiunta alla coda delle richieste inevase per quell’unità.
Il SO ha l’opportunità di scegliere quale delle richieste inevase servire per prima: uso di un algoritmo di scheduling
Il tempo di trasferimento dipende dal supporto hardware.
L’ordine con cui vengono esaudite le richieste determina il
OBIETTIVO:
Massimo numero di richieste nell’unita’ di tempo
Oppure
Minimo tempo medio di accesso
Gli algoritmi di scheduling del disco verranno testati sulla coda di richieste per le tracce (0–199):
Esempio:
98, 183, 37, 122, 14, 124, 65, 67
La testina dell’unità a disco è inizialmente posizionata sulla traccia 53.
Soddisfa le richieste secondo l’ordine di arrivo
Totale: 640 tracce attraversate
Seleziona la richiesta con il minor tempo di seek a partire dalla posizione corrente della testina.
Totale: 236 tracce attraversate
Vantaggi:
Svantaggi:
Il braccio della testina si muove da un estremo all’altro del disco, servendo sequenzialmente le richieste;
giunto ad un estremo inverte la direzione di marcia e, conseguentemente, l’ordine di servizio.
È chiamato anche algoritmo dell’ascensore.
La testina si muove da un estremo all’altro del disco servendo sequenzialmente le richieste. Quando raggiunge l’ultima traccia ritorna immediatamente all’inizio del disco, senza servire richieste durante il viaggio di ritorno.
Considera le tracce come una lista circolare, con l’ultima traccia adiacente alla prima (minore discriminazione delle tracce interne e esterne)
Garantisce un tempo di attesa più uniforme rispetto a SCAN.
Versione ottimizzata di C–SCAN.
Il braccio serve l’ultima richiesta in una direzione e poi inverte la direzione senza arrivare al termine del disco.
C-LOOK e C-SCAN hanno una varianza del tempo di risposta inferiore alle rispettive versioni non circolari
Alcuni studi hanno comunque mostrato che la migliore politica di scheduling dovrebbe essere basata su due livelli
Anni fa il tempo di ricerca dominava il tempo di accesso
Oggi il tempo di ricerca e la latenza di rotazione hanno lo stesso ordine di grandezza
Recentemente si e’ cercato di migliorare le prestazione del disco considerando anche la latenza di rotazione
SLTF serve per prima le richieste con la piu’ piccola latenza di rotazione indipendentemente dall’ordine di arrivo
Facile da realizzare
Ottiene prestazioni quasi ottimali ma rischio di postizipazione indefinita
SPTF esaudisce per prima le richieste con il piu’ piccolo tempo di posizionamento
Tempo di posizionamento = tempo di ricerca + latenza di rotazione
Buone prestazioni, ma rischio di attesa indefinita
SATF esaudisce per prima le richieste con il piu’ piccolo tempo di accesso
Tempo di accesso = tempo di posizionamento + tempo di trasmissione
Maggiore througput ma rischio di attesa indefinita per richieste grandi
SSTF, SLTF, SPTF, SATF,
Appartengono tutti alla stessa classe di algoritmi
Algoritmi per brevita’
Servono prima la richiesta piu’ vicina secondo una certa “misura”
Principale problema: rischio di attesa indefinita
Esistono versioni analoghe a LOOK e CLOOK che tengono conto della lat.rotaz. e del trasferimento
I sistemi RAID
1. Storia ed evoluzione dei sistemi operativi
2. Struttura dei sistemi operativi
3. Interazione tra hardware e sistemi operativi
4. La rappresentazione dei processi
6. I Thread
7. Lo scheduling dei processi: introduzione e primi esempi
9. La sincronizzazione dei processi
10. I semafori
11. Allocazione contigua dei processi in memoria centrale
12. Allocazione non contigua dei processi in memoria centrale
14. Gli algoritmi di avvicendamento delle pagine
16. I sistemi RAID
17. L'organizzazione logica dei file system
18. L'organizzazione fisica dei file system
1. Storia ed evoluzione dei sistemi operativi
2. Struttura dei sistemi operativi
3. Interazione tra hardware e sistemi operativi
4. La rappresentazione dei processi
6. I Thread
7. Lo scheduling dei processi: introduzione e primi esempi
9. La sincronizzazione dei processi
10. I semafori
11. Allocazione contigua dei processi in memoria centrale
12. Allocazione non contigua dei processi in memoria centrale
16. I sistemi RAID
17. L'organizzazione logica dei file system
18. L'organizzazione fisica dei file system
I podcast del corso sono disponibili anche su iTunesU e tramite Feed RSS.