Vai alla Home Page About me Courseware Federica Living Library Federica Virtual Campus 3D Le Miniguide all'orientamento Gli eBook di Federica
 
I corsi di Scienze Matematiche Fisiche e Naturali
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Marco Lapegna » 17.L'organizzazione logica dei file system


Sistemi operativi

L’organizzazione logica dei file system

File

Il maggior problema nella gestione della memoria secondaria e’ la necessita’ di fare riferimenti alla organizzazione fisica dei dispositivi.

Esempio:

  • Un programma in linguaggio macchina puo’ risiedere nei blocchi 45, 51, 68, 73 e 99 di un disco
  • Una modifica al codice puo’ produrre una diversa memorizzazione
  • Necessita’ di fare riferimento ai blocchi fisici anche se l’entita’ logica (il programma) e’ sempre la stessa

File

  • Una raccolta di dati associata ad un nome, residente in memoria secondaria e manipolabile come una unica entita’
  • Dal punto di vista dell’utente, il file e’ la piu’ piccola unita’ di memoria secondaria utilizzabile
  • Tutti i dati presenti nella memoria secondaria devono essere organizzati in file

Attributi dei file

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.

Operazioni definite sui file

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

Operazioni sugli elementi di un 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)

Tabella dei file aperti

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

Struttura interna dei file

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 file di 1949 byte richiede 4 blocchi di 512 byte per un totale di 2048 byte
  • I 99 byte dell’ultimo blocco non utilizzati costituiscono la frammentazione interna del disco

Il file system

Un sistema operativo puo’ gestire milioni

  • di file,
  • di differenti utenti,
  • di tipi differente

Necessita’ di organizzare logicamente i file

L’organizzazione logica dei file di un sistema operativo e’ chiamata FILE SYSTEM

Il file system:

  • Organizza i file e gestisce l’accesso ai dati
  • Responsabile della integrita’ dei file, della gestione dei metodi di accesso (lettura/scrittura)
  • Visione dei file indipendente dai dispositivi fisici !!!

Organizzazione del 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.).

Directory

Strumento piu’ comune usato per realizzare un file system è un file

  • che contiene nomi e locazioni di file presenti nel file system
  • non contiene dati utente

Un elemento di una directory conserva gli attributi di un file

Esempio: Unix

Il comando Unix ls elenca le caratteristiche degli elementi di una directory


Operazioni sulle directory

Poiche’ una directory e’ un file, sui suoi elementi e’ possibile fare le stesse operazioni che e’ possibile fare sugli elementi di un file

  • Ricerca di un file
  • Creazione di un file
  • Cancellazione di un file
  • Elenco dei contenuti di una directory
  • Ridenominazione di un file
  • Attraversamento del file system

File system monolivello

  • Gli elementi di una directory sono solamente file
  • Una directory unica per tutti i file.

File system monolivello

  • Problemi di nominazione: occorre scegliere un nome diverso per ogni file.
  • Problemi di performance: ricerca lineare nella directory.
  • Nessun raggruppamento logico.
  • Raramente implementato.

File system gerarchico (ad albero)

Gli elementi possono essere file o directory


File system gerarchico (ad albero)

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:

  • Unix: /home/lapegna/.cshrc
  • Windows: C:\IBMTOOLS\utils\spi\crm.exe

File system gerarchico (ad albero)

  • I nomi dei file possono essere unici solo all’interno della stessa directory (pathname relativo) _ nominazione
  • Ricerca solo nella directory corrente → efficienza
  • Possibilita’ di raggruppamenti logici → grouping
  • Implementato nella quasi totalita’ dei s.o.

Possibili soluzioni intermedie

  • File system a due livelli
  • Directory separate per ciascun utente

Condivisione di file

Un problema comune nei file system in ambiente multiutente e’ la condivisione dei file

  • Condivisione all’interno di uno stesso file system
  • Condivisione in un Network File System (file system di rete)

Stabilito chi e come puo’ accedere ai file sono necessarie delle regole di sincronizzazione alle risorse (semantica della consistenza)

Esempio tipo: problema lettori/scrittori

Semantica della consistenza: Esempi

Unix file system (UFS)

  • Scritture su un file aperto sono visibili immediatamente ad altri utenti che hanno aperto lo stesso file
  • Realizzato mediante la condivisione del puntatore alla stessa area dati
  • Sincronizzazione a carico del s.o.
  • Possibile inefficienza a causa delle sincronizzazioni

Semantica della consistenza: Esempi

Andrews file system (AFS)

  • Le scritture sono visibili agli altri utenti solo dopo la chiusura del file
  • Sincronizzazione a carico dei processi che accedono ai file
  • Maggiore efficienza soprattutto in ambienti distribuiti

Link

Strumento per condividere file in un f.s.

  • Soft link: collegamento al nome di un file
    • Link simbolico (Unix); Alias (MacOS); collegamento (Windows)
  • Hard link: collegamento diretto ai dati di un file

Montaggio di un file system

  • Combina piu’ file system in un singolo file system, in maniera che possono essere referenziati da una singola root directory
  • Assegna una directory (mount point) del file system nativo alla root del file system da montare

Il S.O. gestisce le directory montate con una “mount tables”:

  • Contiene informazioni sulla posizione del mount point e il dispositivo che memorizza il file system montato

Semantica per il montaggio

Modalita’

  • Automatico quando il sistema rileva un nuovo dispositivo (Macintosh, Windows)
  • Esplicito mediante comando (Unix-like)

Mount point

  • accessibile mediante etichetta (Windows)
  • a livello di root (Macintosh)
  • Directory qualunque (Unix)

Possibilita’

  • Vietare il montaggio su directory piene
  • Nascondere temporaneamente il contenuto di directory piene

Protezione

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:

  • Elenco lungo e di difficile gestione
  • Campo della directory relativo al file di dimensione variabile

Protezione

Soluzione 2: divisione Tre classi di utenti e tre tipi di accesso definiti mediante bit (es. UNIX)


Prossima lezione

L’organizzazione fisica dei file system

  • allocazione dei file
  • gestione dello spazio libero
  • Contenuti protetti da Creative Commons
  • Feed RSS
  • Condividi su FriendFeed
  • Condividi su Facebook
  • Segnala su Twitter
  • Condividi su LinkedIn
Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion