• Non ci sono risultati.

Parte 3: Gestione della memoria secondaria

N/A
N/A
Protected

Academic year: 2021

Condividi "Parte 3: Gestione della memoria secondaria"

Copied!
9
0
0

Testo completo

(1)

14 Struttura della memoria

secondaria

• Struttura del disco • Scheduling del disco • Gestione del disco

• Gestione dello spazio di swap • Affidabilità

2

14.1 Struttura del disco

3

14.1 Struttura del disco

• I dischi sono indirizzati come un array unidimensionale di blocchi logici =:= la più piccola unità di trasferimento dati.

• L’array unidimensionale di blocchi logici è tradotto in settori del disco sequenzialmente:

– Il settore 0 è il primo settore della prima traccia del cilindro più esterno.

– Poi si procede sulla stessa traccia, le altre tracce dello stesso cilindro, poi sul resto dei cilindri.

(2)

14.1 Struttura del disco

• In questo modo, è possibile tradurre un numero di blocco logico in un indirizzo di disco che specifica:

– un numero di cilindro

– un numero di traccia all’interno del cilindro – un numero di settore nella traccia

• In pratica, questa traduzione è molto più complicata e difficile

5

14.1 Struttura del disco

• Per prima cosa, i dischi possono avere settori difettosi che vengono nascosti dal meccanismo di traduzione

• Inoltre, il numero di settori per traccia non è costante

– più una traccia è lontana dal centro del disco, più è lunga, maggiore è il numero di settori che può contenere (fino al 40% in più di una traccia interna)

6

14.2 Scheduling del disco

• Il sistema operativo è responsabile dell’utilizzo efficiente dell’hardware

– per i dischi, questo significa avere basso tempo di accesso, e elevata bandwidth.

• Il tempo di accesso dipende da due componenti principali

– Seek time: il tempo impiegato per muovere le testine sulla traccia desiderata.

– Rotational latency: il tempo di attesa che il disco ruoti portando il settore sotto la testina.

(3)

14.2 Scheduling del disco

• Minimizzare il seek time per aumentare le prestazioni

• Seek time ≈ distanza della testina • Bandwidth: è il numero totale di byte

trasferiti, diviso per il tempo totale tra la prima richiesta di servizio e il

completamento dell’ultimo trasferimento.

8

14.2 Scheduling del disco

• Se il disco è disponibile, la richiesta è soddisfatta immediatamente

• Se il dispositivo è impegnato (a servire una richiesta) ogni nuova richiesta viene inserita in una coda di richieste pendenti per quel dispositivo

• Quando una richiesta è stata servita, il sistema operativo può scegliere quella successiva da servire

9

14.2 Scheduling del disco

• Esistono diversi algoritmo di scheduling delle richieste di I/O del disco.

• Le illustreremo utilizzando la seguente coda di richieste (numeri di cilindro) (0-199).

98, 183, 37, 122, 14, 124, 65, 67 • Supponiamo inoltre che la testina si

(4)

14.2.1 FCFS

Lo spostamento totale della testina è di 640 cilindri.

11

14.2.2 SSTF

• SSTF: shortest seek time first

• Sceglie la richiesta con il tempo di seek minimo dalla posizione corrente della testina.

• SSTF è una variante di SJF; quindi può causare starvation di alcune richieste.

12

14.2.2 SSTF

(5)

14.2.3 SCAN

• Il braccio del disco si muove dall’esterno verso il centro (e viceversa), servendo le richieste per i cilindri che attraversa. • Quando arriva ad un estremo del disco,

inverte la direzione e riprende il servizio • Anche chiamato algoritmo dell’ascensore.

14

14.2.3 SCAN

Lo spostamento totale della testina è di 208 cilindri.

15

14.2.4 C-SCAN

• Fornisce un tempo di attesa più uniforme di SCAN.

• La testina si muove da un estremo all’altro del disco, servendo le richieste.

• Quando raggiunge l’estremità del disco, torna immediatamente all’inizio senza servire richieste.

• In pratica, tratta i cilindri come una lista circolare.

(6)

14.2.4 C-SCAN

Lo spostamento totale della testina è di 183 cilindri.

17

14.2.5 C-LOOK

• Versione di C-SCAN

• Il braccio della testina va solo fino

all’ultima richiesta in ogni direzione invece che fino all’estremo del disco,servendo le richieste

• Poi inverte la direzione immediatamente e continua a servire le richieste.

• In pratica, non attraversa i cilindri che stanno agli estremi se non ci sono richieste

18

14.2.5 C-LOOK

(7)

14.2.6 Selezione di un algoritmo

• SSTF è diffuso e intuitivo

• SCAN e C-SCAN vanno meglio per sistemi con elevato numero di richieste.

• Le prestazioni dipendono dal numero e dal tipo di richieste.

• Le richieste possono dipendere anche dal metodo di allocazione del file system.

20

14.2.6 Selezione di un algoritmo

• Gli algoritmi dovrebbero essere scritti come moduli separati in modo da poterli sostituire quando necessario

• Sia SSTF che C-LOOK sono una scelta ragionevole come algoritmo di default

21

14.3 Gestione del disco

• Formattazione a basso livello, o

formattazione fisica =:= dividere il disco in

settori in modo da permettere al controllere di leggere e scrivere

• Per memorizzare i file, il sistema operativo necessita di salvare le proprie strutture dati sul disco.

– Partizionare il disco in uno o più gruppi di cilindri

(8)

14.3 Gestione del disco

• Sul disco principale c’è il Boot block che serve per inizializzare il sistema.

– Il boot block ha posizione fissa nella partizione – Il codice di bootstrap è memorizzato in ROM

oppure nel boot block

– Nel secondo caso si un programma detto

Bootstrap loader.

23

14.3 Gestione del disco

• I blocchi del disco possono essere difettosi o divenirlo in seguito all’uso (bad blocks) • I controller del disco mantengono una lista

dei blocchi difettosi e la aggiornano durante la vita del disco

• I controller moderni usano diversi metodi per gestire i blocchi difettosi

– sector sparing, sector slipping

24

14.4 Gestione dello spazio di Swap

• Spazio di Swap =:= la memoria virtuale usa spazio disco come estensione della memoria principale.

• Lo spazio di swap può essere preso dal file system o più comunemente risiedere su una partizione apposita

(9)

14.4 Gestione dello spazio di Swap

• Gestione dello spazio di Swap

– 4.3BSD alloca spazio di swap quando uin processo inizia; mantiene sia il text segment (il programma) sia il data segment.

– Il Kernel usa una swap maps per mantenere traccia dello spazio utilizzato.

– Solaris 2 alloca spazio di swap solo quando una pagina è rimossa dalla memoria fisica, e solo se è una pagina di dati.

26

14.5 Affidabilità dei dischi

• Diversi miglioramenti nelle tecniche di utilizzo dei dischi richiedono l’uso di dischi multipli che funzionino cooperativamente

• La tecnica di disk striping usa un gruppo di dischi come una unità di memorizzazione unica. • Lo schema RAID (redundant array of

inexpensive disks) aumenta le prestazioni e l’affidabilità memorizzando i dati in froma ridondante.

27

14.5 Affidabilità dei dischi

– Mirroring o shadowing mantengono dei duplicati di ciascun disco.

– Block interleaved parity usa molto meno spazio mantenendo informazioni di parità che permettono di ricostruire i dati originali a partire dalle informazioni disponibili

Riferimenti

Documenti correlati

• quando il processo in esecuzione cerca di accedere a una pagina alla quale non è assegnato alcun page frame, tale pagina viene copiata dallo swap space a un frame libero;.. •

all’interno della lower level page table situata all’indirizzo appena ottenuto, si accede alla entry specificata dai bit centrali dell’indirizzo logico, che contiene il numero del

Segmentazione pura (niente paginazione) e calcolo degli indirizzi fisici in IA-32 (Selettore di Segmento e Tabella dei Segmenti – vedi figura precedente ).. • Indirizzi Logici

 possono essere mappati su indirizzi fisici della memoria principale.  oppure, possono essere mappati su memoria secondaria (spazio

– Se tenta di accedere a un indirizzo con bit di validità 0, viene generato un trap denominato page fault che può essere dovuto ad un errore nella gestione degli indirizzi

notevolmente le prestazioni servendo prima tutte le richieste che sono vicine alla posizione attuale della testina. • Su questa ipotesi è basato l’algoritmo Shortest Seek Time

Ancora sulla paginazione su richiesta − 2.. ❖ Quando si verifica un page fault, il SO deve portare la pagina desiderata dalla memoria secondaria nella me- moria principale. ❖ La

 Alcuni SO, come Solaris, usano solo file mappati: nella memoria del processo o del kernel, a seconda della chiamata di sistema usata. File mappati in memoria: condivisione