Professional Documents
Culture Documents
10.1 GENERALITA’
La gestione dei file richiede lo svolgimento delle seguenti funzioni:
• tenere traccia dell’informazione nel sistema
• determinare dove e come memorizzare l’informazione e chi ha diritto di accedervi
• rendere disponibile l’informazione ai processi autorizzati che la richiedono
• rilasciare le risorse usate dall’informazione non più richiesta
Si chiama file system la parte del sistema operativo che si occupa di svolgere le predette
funzioni. Il file system può essere strutturato in modo gerarchico secondo lo schema di fig.
10-1 e comprendere moduli organizzati in livelli: il livello considerato più basso è
rappresentato dal modulo Strategie di gestione dei dispositivi, il più vicino al nucleo del
calcolatore, mentre il più alto e’ rappresentato dal File System Simbolico, il più vicino al
programmatore.
Lo scopo del file system è quello di consentire al programmatore di occuparsi soltanto della
struttura logica dei dati e delle operazioni da eseguire su di essi; al tempo stesso consente di
condividere e di proteggere l’informazione.
Il disco contiene tre file denominati rispettivamente VOTI, ORARIO, CORSI, e la loro
memorizzazione e’ attuata secondo lo schema di fig. 10-2. Per semplicità i blocchi fisici,
coincidenti con i settori e di 1000 byte ciascuno, sono individuati con un unico numero
(anziché con numero di traccia e numero di settore). I blocchi 0 ed 1 sono riservati per fini che
verranno precisati in seguito.
Per soddisfare la richiesta sopra indicata è necessario eseguire i passi elencati in fig. 10-3. Si
suppone che le caratteristiche dei file presenti siano contenute in un apposito indirizzario
(“directory”); inoltre, essendo i file memorizzati in modo sequenziale nei blocchi (allocazione
contigua), la posizione fisica di un record logico sul disco può essere determinata conoscendo
la dimensione dei blocchi fisici, il numero del blocco fisico iniziale, e la lunghezza del record
logico.
Capitolo 10 10.1
Dispense di Calcolatori Elettronici 1
Si suppone che ogni livello della gerarchia dipenda solo dai livelli ad esso sottostanti. Si tenga
presente che i livelli possono essere ulteriormente suddivisi o combinati.
Protezione
Gestione
dei processori
a livello dei
processi e
sincronizza-
zione
L’indirizzario dei file (directory) è per lo più memorizzato sul supporto di memorizzazione
secondario (spesso denominato volume) come un qualsiasi altro file, per non occupare Mp e
per consentire il trasferimento del volume da un calcolatore ad un altro.
In questa ipotesi per ridurre il tempo di ricerca si possono trasferire in Mp solo gli elementi
relativi ai file via via richiamati, mantenendoveli per il tempo strettamente necessario (per
esempio con l’uso di opportuni comandi, tipo “open” e “close”).
Capitolo 10 10.2
Dispense di Calcolatori Elettronici 1
Num ero settore
0 1 2 3
0 1 2 3
0
VO TI
4 5 6 7
1
1 2 3 4
Numero
traccia 8 9 10 11
2
5 6 7
12 13 14 15
3
C O R S I
i = Record logici
= Blocchi fisici
= 500 byte
= 1000 byte
i
= File O RARIO
PASSI AZIONE
Passo 3 Basandosi sulle informazioni relative a protezione e controllo dei file, si decide se
abilitare il processo che ne ha fatto richiesta ad accedere al file ORARIO.
Passo 6 Il blocco fisico individuato viene letto in un buffer nella Mp per mezzo di un opportuno
programma di I/O.
Passo 7 Il record logico desiderato è estratto dal blocco dal blocco fisico letto e viene inserito
in Mp a partire dalla posizione voluta (12000).
Se operazione di
scrittura
Gestione del
dispositivo
8 Gestore del dispositivo
Presupponendo una corrispondenza uno a uno tra nomi di file e file, il sistema crea un elenco
simbolico dei file (Symbolic File Directory o SFD), tabella nella quale associa ad ogni nome un
identificatore interno convenzionale. La fig. 10-5a riporta l’elenco simbolico dei file per il disco
usato nell’esempio; per gli sviluppi successivi si ipotizza che ogni elemento di SFD occupi 20
byte.
Capitolo 10 10.4
Dispense di Calcolatori Elettronici 1
Il FSB utilizza un elenco basilare dei file (Basic File Directory o BFD), tabella che fornisce tutte
le caratteristiche dei vari file (si veda fig 10.5b); le caratteristiche dei file da usare sono reperite
per mezzo dell’identificatore (ID) individuato dal FSS. L’elemento dell’elenco basilare dei file
relativo al file 5 (il file ORARIO) è copiato in Mp, nella Tabella dei File Attivi (Active File Table
o AFT). I blocchi fisici 1 e 0 sono usati per elenco simbolico dei file ed elenco basilare dei file
rispettivamente; attribuendo ad essi un identificatore se ne facilita la utilizzazione.
Se si ammette, per esempio, che ogni programmatore abbia un proprio elenco simbolico dei file,
occorre un elenco simbolico primario che specifichi la posizione nell’elenco basilare dei file
dell’elenco simbolico dei file di ciascun programmatore.
Un esempio di siffatta organizzazione (7 file, 4 elenchi simbolici dei file) è riportato in fig. 10-6.
Si noti che si è prevista la possibilità per un utente di crearsi un sottoelenco simbolico
(nell’esempio l’indirizzario MATEM di ROSSI). Naturalmente l’elenco basilare dei file contiene
tutte le informazioni utili a caratterizzare un file e non solo le due indicate in figura.
Una organizzazione gerarchica di file come quella descritta in fig. 10-6 può essere
rappresentata con la struttura ad albero di fig. 10-7.
In effetti quando è chiamato il FSB, esso ricerca l’identificatore (fornito dal FSS) nella AFT per
vedere se il file è stato già “aperto”: se non c’è, ne aggiunge le caratteristiche alla AFT
prelevandole dall’elenco basilare dei file.
Se uno stesso file compare in più elenchi simbolici di file, l’elenco basilare dei file può riportare
anche il numero di elenchi simbolici di file che lo contengono, in modo da agevolare per esempio
la cancellazione.
Il modulo VCA verifica che la funzione richiesta (lettura, scrittura, ecc.) sia consentita al
programmatore che la richiede in base a quanto riportato nell’elemento della AFT. Se la
funzione non è consentita si ha segnalazione di errore.
Capitolo 10 10.5
Dispense di Calcolatori Elettronici 1
Identificatore
Nome unico
( ID )
1 VOTI 3
2 ORARIO 5
3 CORSI 6
3 80 10 2 Accessibile a tutti
4 (nulla)
8 (nulla)
Figura 10-5. Esempio di elenco simbolico dei file e di elenco basilare dei file
Si noti che la condivisione controllata di file risulta utile in quanto consente di:
1. ridurre l’occupazione di Ms
2. sincronizzare gli aggiornamenti per tutti gli utilizzatori dei file condivisi
3. ridurre l’attività di I/O e migliorare di conseguenza le prestazioni.
La verifica prevista dal modulo VCA si può attuare con diversi strumenti:
• matrice di controllo degli accessi
• parola d’ordine
• crittografia
Capitolo 10 10.6
Dispense di Calcolatori Elettronici 1
Indirizzo del
primo blocco
ID fisico Nome ID(identificatore ) Indirizzario
1 0 BIANCHI 11 Sì
2 1 ROSSI 12 Sì
5 6
ID 4
( libero )
6 12
7 10 ID 5
( ORARIO di BIANCHI )
8 15
ID 6
9 11 ( ORARIO di ROSSI )
10 4
ID 7
( COSENO di BIANCHI, COS di ROSSI )
11 5
12 9 ID 8
( SIN di BIANCHI, SIN di MATEM di ROSSI )
Elenco basilare dei file
( ID: 1 ) ID 9
( SQRT di MATEM di ROSSI)
Capitolo 10 10.7
Dispense di Calcolatori Elettronici 1
Indirizzario principale
2
BIANCHI
ROSSI
Indirizzario di Indirizzario di
BIANCHI 3 ROSSI
11 12
VOTI VOTI
ORARIO 7 ORARIO
COSENO COS
SIN MATEM
8
5 6
Indirizzario
MATEM
10 File di dati
SIN
9
SQRT File
contenente
indirizzari
Parola d’ordine
Matrice o liste occupano comunque spazio in memoria ed il loro aggiornamento è complesso.
In alternativa si può associare ad ogni file una parola d’ordine che l’utente deve fornire per
poter usare il file.
Questo metodo comporta un limitato uso di memoria ma e’ piu’ laborioso da gestire del
precedente quando si vuole cambiare la parola d’ordine.
Crittografia
Il modulo di verifica delle condizioni di accesso codifica (“trasforma”) il file usando una chiave
fornita dall’originatore del file ed occorre una chiave per decodificare il file al momento dell’uso.
Il metodo è piu’ sicuro dei due precedenti in quanto utilizza informazioni (le chiavi) che non e’
necessario memorizzare nel sistema, ma comporta il costo di codifica e decodifica.
Capitolo 10 10.8
Dispense di Calcolatori Elettronici 1
SQRT E LSE E E
L LS L Nessuno
Procedura stipendi
Se i record logici hanno lunghezza costante la trasformazione si puo’ attuare in modo molto
semplice in quanto si ha per il primo byte del record logico da trasferire
indirizzo primo bytelogico = (n° record - 1) x (lunghezza del record logico).
Nell’esempio si ottiene:
indirizzo primo bytelogico = (4 - 1) x 500 = 1500
In effetti il File System Logico puo’ trovarsi a dover gestire diverse strutture di record quali ad
es.:
1. record di lunghezza fissa, organizzati sequenzialmente (come quella presa in esame)
2. record di lunghezza variabile, organizzati sequenzialmente
3. record con chiave, organizzati sequenzialmente
4. record con più chiavi
5. record concatenati
e di conseguenza l’individuazione dell’indirizzo del primo byte logico puo’ risultare piu’
complessa.
Capitolo 10 10.9
Dispense di Calcolatori Elettronici 1
Il FSF esegue i passi 5 e 7 del procedimento generale (vedere fig. 10-3): utilizzando l’indirizzo
del primo byte logico e i dati contenuti nella AFT determina il blocco fisico che contiene la
stringa di byte richiesta e, dopo che il modulo che definisce la strategia d’uso del dispositivo ha
letto e trasferito il blocco fisico in un buffer preassegnato in Mp, estrae la stringa stessa e la
trasferisce nel buffer dell’utente.
Nell’ipotesi di allocazione contigua dei dati come quella di fig. 10-2 il numero di blocco fisico si
ricava da
Indirizzo del 1º byte logico
N° blocco fisico = + Indirizzo 1° blocco fisico
Dimensione blocco fisico
1500
+ 6 =1+6 = 7
1000
L’indirizzo iniziale della stringa di byte all’interno del blocco fisico si ricava da
Indirizzo del 1º byte logico
Scostamento nel blocco fisico = Resto di
Dimensione blocco fisico
Per poter eseguire i predetti calcoli il FSF deve conoscere la funzione usata per inserire i file e
la dimensione del blocco fisico per ogni dispositivo usato come Ms. Questa informazione
risiede solitamente sul volume stesso ed è trasferita nella tabella di organizzazione fisica,
usata dal FSF, allorché il sistema è avviato.
In presenza di una richiesta di scrittura, se il blocco fisico non è stato ancora allocato il FSF
richiama il modulo che definisce la strategia di allocazione per ottenere l’indirizzo di un blocco
fisico libero.
a. Con la tecnica dei blocchi concatenati ogni blocco fisico contiene l’indirizzo (puntatore) del
blocco fisico “logicamente contiguo”. Ne consegue una limitata riduzione della capacità dei
blocchi, ma l’impiego è efficiente solo per accesso sequenziale ai blocchi.
La fig. 10-9 riporta una possibile allocazione del file ORARIO basata su questa tecnica.
b. Con la tecnica delle mappe dei file per ogni file si costruisce una tabella di corrispondenze
tra
Indirizzo del 1ºbyte logico
Dimensione blocco fisico e indirizzi dei blocchi fisici.
La tabella è memorizzata in un blocco a parte (si veda per esempio la fig. 10-10 per il file
ORARIO) o nell’elenco basilare dei file. Allorché si inizia l’uso di un file, tutta o parte della
tabella è copiata in Mp nella AFT.
1. Nel caso di allocazione automatica il sistema attua una allocazione di spazio contiguo
tenendo traccia delle aree libere a mezzo di elementi fittizi nell’elenco basilare dei file. La fig.
10-11 riporta l’elenco basilare dei file prima e dopo l’inserimento dei file ORARIO e CORSI,
con riferimento ad un disco organizzato come in fig. 10-2.
L’allocazione automatica presenta due inconvenienti: origina frammentazione della Ms;
richiede di predefinire la dimensione di un file, cosa spesso non facile da farsi.
Capitolo 10 10.11
Dispense di Calcolatori Elettronici 1
Numero settore
0 1 2 3
0 1 2 3
0
Puntatore
4 5 6 10 7
1
1 2
Numero
traccia 8 9 14 10 9 11
2
5 6 3 4
12 13 14 -- 15
3
7
= File ORARIO
Numero settore
0 1 2 3
0 1 2 3 Mappa del
file ORARIO
0
4 5 6 7 7
10
1 9
1 2
Numero 14
traccia 8 9 10 11
2
5 6 3 4
12 13 14 15
3
7
Capitolo 10 10.12
Dispense di Calcolatori Elettronici 1
2 (nessuno) 1000 4 6 ( 6, 7, 8, 9 )
( a ) Elenco basilare dei file prima dell’inserimento dei file ORARIO e CORSI
2 ORARIO 500 7 6 ( 6, 7, 8, 9 )
( b ) Elenco basilare dei file dopo l’inserimento dei file ORARIO e CORSI
Al completamento dell’I/O fisico, il controllo torna al modulo strategia di dispositivo che verifica
il corretto completamento dell’operazione e restituisce il controllo al FSF. Il PFS a sua volta
estrae l’informazione dal buffer e la inserisce nelle posizioni richieste. Un codice di corretto
completamento è quindi inviato a ritroso ai vari moduli.
Capitolo 10 10.13
Dispense di Calcolatori Elettronici 1
1. Il segnale di completamento favorevole dell’I/O fisico non è inviato subito al FSS perché ad
ogni livello si possono rilevare errori e perché ogni livello può generare più chiamate al
livello inferiore.
Capitolo 10 10.14