Interfaccia del file system Concetto di file Metodi di accesso Struttura delle directory Protezione Sistemi operativi
Struttura dei file File: Spazio di indirizzi logici contigui Tipi: Dati (numerico, caratteri, binario), Programmi Nessuna struttura: sequenza di parole, byte Struttura a record semplice Linee Lunghezza fissa Lunghezza variabile Strutture complesse Documento formattato File rilocabile Si possono simulare i tipi di file complessi utilizzando file costituiti da record, per mezzo di appropriati caratteri di controllo. Chi decide: Il sistema operativo Il programma Sistemi operativi
Attributi e operazioni Nome – (unica informazione conservata in formato direttamente leggibile) Tipo – (per alcuni sistemi). Posizione – puntatore alla posizione del file sul dispositivo. Dimensione – dimensione effettiva del file. Protezione – controlla chi può leggere, scrivere, o eseguire il file. Ora, data, e identificazione dell’utente – protezione, e controllo d’uso. Le informazione sui file sono mantenute nella struttura della directory, che è conservata sul disco. Operazioni: creazione lettura cancellazione apertura - open(Fi) scrittura riposizionamento nel file – file seek troncamento chiusura - close (Fi) Sistemi operativi
Tipi di file: nome, estensione Sistemi operativi
Metodi di accesso Accesso sequenziale: E’ un modello di file che si “ispira” al nastro read next write next reset la scrittura è una concatenazione in fondo al file Accesso diretto: E’ un modello di file legato al disco read n write n position to n rewrite n n = numero di blocco (record) relativo Sistemi operativi
Struttura della directory e informazioni Il disco è suddiviso in partizioni, ciascuna partizione ha una directory di dispositivo che contiene informazioni su tutti i file. F 1 F 2 F 3 F 4 F n Directory File Sia la struttura della directory che i file stanno su disco. I backup di queste strutture vengono fatte su nastri. Informazioni in una directory di dispositivo: Nome Indirizzo Massima lunghezza Data ultima modifica (per copia di backup) Informazioni di protezione Tipo Lunghezza reale Data ultimo accesso ID del possessore (chi paga) Sistemi operativi
Operazioni/organizzazione di directory Ricerca di un file Creazione di un file Cancellazione di un file Elenco dei contenuti di una directory Cambiamento di nome di un file Attraversamento del file system Organizzazione: Efficienza: trovare un file rapidamente. Nomi: convenienti per gli utenti. Due utenti possono avere nomi diversi per gli stessi file. Lo stesso file può avere diversi nomi. Raggruppamento logico dei file sulla base di alcune proprietà, (ad esempio, tutti i programmi pascal, tutti i giochi, …) Sistemi operativi
Directory a singolo livello Una singola directory per tutti gli utenti. Problema dei nomi (necessità di avere tutti nomi distinti) Problema di raggruppamento Sistemi operativi
Directory a due livelli Si ha una directory separata per ogni utente. Si può avere lo stesso nome di file per utenti diversi Ricerca efficiente Non si hanno capacità di raggruppamento Nome di percorso (permette ad un utente di vedere i file degli altri utenti) Sistemi operativi
Directory strutturate ad albero Ricerca efficiente Capacità di raggruppamento Directory corrente / Path name assoluto o relativo La creazione di un nuovo file avviene nella directory corrente. Le directory sono file speciali (la distinzione avviene per mezzo di un bit). Sistemi operativi
Directory a grafo aciclico Si hanno file e sotto–directory condivisi. Sistemi operativi
Directory a grafo aciclico Due nomi diversi per lo stesso oggetto (aliasing) Link (collegamento) o copia dei file Problema della cancellazione. Se dict cancella list puntatore errato. Soluzioni: Puntatori all’indietro, si possono cancellare tutti i puntatori. Si conserva un file fino a che non sono stati cancellati tutti i riferimenti ad esso (è sufficiente anche memorizzare il numero di riferimenti alla directory). Sistemi operativi
Directory a grafo Come garantire l’assenza di cicli? Si permettono solo collegamenti a file e non a sotto–directory. Garbage collection. Si attraversa il file system, marcando i file accessibili. In un secondo passaggio si rimuovono i file non marcati. Ogni volta che si aggiunge un link si verifica che vada bene impiegando un algoritmo di rilevazione di cicli. Sistemi operativi
Protezione Il possessore di un file deve poter controllare cosa può essere fatto e da chi. Tipi di accesso. Lettura. Scrittura. Esecuzione. Append. Cancellazione. List Modo di accesso: read, write, execute Tre classi di utenti RWX a) accesso del proprietario 7 1 1 1 RWX b) accesso del gruppo 6 1 1 0 c) accesso pubblico 1 0 0 1 Si richiede al system manager di creare un gruppo G (con nome unico) e di aggiungere alcuni utenti al gruppo. Per un particolare file (es. game) o sotto–directory, si definisce un accesso appropriato. owner group public chmod 761 game Si assegna un gruppo ad un file chgrp G game Sistemi operativi