L’organizzazione logica dei file system
Il maggior problema nella gestione della memoria secondaria e’ la necessita’ di fare riferimenti alla organizzazione fisica dei dispositivi.
Esempio:
Nome — unica informazione conservata in formato direttamente leggibile.
Tipo — descrizione dell’utilizzo del file.
Locazione — puntatore alla posizione del file sul dispositivo.
Dimensione — dimensione attuale del file.
Protezione — controlla l’accesso in lettura, scrittura ed esecuzione del file.
Ora, data, e identificazione dell’utente — dati necessari alla protezione e sicurezza del sistema, e per il controllo d’uso.
Creazione — crea una associazione tra un nome di un file e un insieme di blocchi del disco
Posizionamento — spostamento all’interno del file system
Distruzione — elimina l’associazione nome-blocchi e libera lo spazio assegnato al file
Apertura — rende disponibile il file ad un programma in esecuzione.
Chiusura — evita ulteriori referenze al file
Elenco — stampa o mostra il contenuto
Copia — copia il contenuto di un file in un altro file
Scrittura – copia dati dall’area dati di un processo nel file
Lettura – copia dati dal file nell’area dati di un processo
Modifica – modifica di dati in un file
Cancellazione – rimozione di dati dal file
Per le operazioni sugli elementi di un file e’ necessario conoscere la posizione dell’elemento sui cui operare = puntatore al file (file pointer)
Possibilita’ di numerosi riferimenti ad uno stesso file
Per motivi di efficienza il sistema operativo definisce
una tabella dei file aperti
open → crea una entry nella tabella dei file aperti
read/write → il file viene individuato in base all’indice della tabella
close → viene rimossa la entry nella tabella dei file aperti
Un file e’ costituito da sequenze di dati piu’ o meno strutturati (byte, sequenze o record)
Tali dati (record logici) devono essere impacchettati nei blocchi fisici del disco
Esempio:
Un sistema operativo puo’ gestire milioni
Necessita’ di organizzare logicamente i file
L’organizzazione logica dei file di un sistema operativo e’ chiamata FILE SYSTEM
L’organizzazione del file system deve garantire…
Efficienza — capacità di reperire file rapidamente.
Nominazione — conveniente per gli utenti.
Due utenti possono utilizzare nomi uguali per file diversi.
Lo stesso file può avere diversi nomi.
Raggruppamento — organizzazione dei file sulla base di proprietà logiche, (ad esempio, tutti i programmi Java, tutti i giochi, etc.).
Strumento piu’ comune usato per realizzare un file system è un file
Un elemento di una directory conserva gli attributi di un file
Poiche’ una directory e’ un file, sui suoi elementi e’ possibile fare le stesse operazioni che e’ possibile fare sugli elementi di un file
Una directory principale (root directory, master file directory) indica la radice dell’albero dalla quale partono le directory di secondo livello
L’unicita’ dei nomi di file e’ realizzata mediante il “pathname assoluto” costituito dai nomi delle directory incontrate dalla radice fino al file
Esempi:
Un problema comune nei file system in ambiente multiutente e’ la condivisione dei file
Stabilito chi e come puo’ accedere ai file sono necessarie delle regole di sincronizzazione alle risorse (semantica della consistenza)
Esempio tipo: problema lettori/scrittori
Unix file system (UFS)
Andrews file system (AFS)
Strumento per condividere file in un f.s.
Il S.O. gestisce le directory montate con una “mount tables”:
Modalita’
Mount point
Possibilita’
Il possessore deve poter controllare gli accessi al file.
Cosa puo’ essere fatto e Da chi puo’ essere fatto:
Soluzione 1: associare ad ogni file un elenco con i nomi degli utenti e le operazioni consentite (access control list)
Implementato nel s.o. VMS
Inconvenienti:
Soluzione 2: divisione Tre classi di utenti e tre tipi di accesso definiti mediante bit (es. UNIX)
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.