FILESYSTEM Il Concetto di Filesystem Il Filesystem fornisce il supporto per la memorizzazione dei dati e dei programmi File Visione logica ed uniforme Della memorizzazione delle Informazioni. Directory Organizza l’accesso ai file Il Concetto di File La più piccola porzione di informazione logica che può essere memorizzata Programmi Dati (numerici, alfabetici, alfanumerici, binari) Il file possono avere formato libero o rigido Il Concetto di File In generale è una sequenza di bit, byte, righe o record Il File è caratterizzato da una struttura dipendente dal tipo Eseguibile (byte per il loader) File Testo (righe) File Sorgente (procedure e funzioni) File oggetto (byte per il linker) Attributi di File Identificazione univoca ed informazioni • Nome • Identificatore • Tipo • Locazione • Protezione • Tempo, Data, Id Utente Le informazioni su tutti i file sono mantenute nelle directory Operazioni sui File Il file è un tipo di dati astratto 1. 2. 3. 4. 5. 6. 7. Creazione Scrittura Lettura Posizione corrente Riposizionamento Cancellazione Troncamento Creazione Trovare spazio nel filesystem Creare descrittore nella directory (nome e locazione) Scrittura Chiamata di sistema a cui si specifica nome del file e le informazioni da scrivere Il SO cerca mediante il nome cerca nella dir la posizione fisica del file. Il SO deve mantenere informazione sulla posizione di Scrittura nel file e aggiornarla dopo ogni scrittura Lettura Chiamata di sistema a cui si specifica nome del file e il buffer in memoria destinazione Il SO cerca mediante il nome cerca nella dir la posizione fisica del file. Il SO deve mantenere informazione sulla posizione di lettura nel file e aggiornarla dopo ogni lettura Riposizionamento La posizione della operazione corrente (da effettuare) è detta posizione corrente (puntatore) Il SO cerca mediante il nome cerca nella dir la posizione fisica del file ed il puntatore alla pos. corr. Imposta il puntatore ad un valore specificato. Le info nel file non sono toccate Cancellazione Chiamata di sistema a cui si fornisce il nome Il SO cerca mediante il nome cerca nella dir la posizione fisica del file Tutto lo spazio del file viene rilasciato e cancellato l’entry nella directory Troncamento Chiamata di sistema a cui si fornisce il nome Il SO cerca mediante il nome cerca nella dir la posizione fisica del file Tutto lo spazio del file viene rilasciato ma non viene cancellato l’entry nella directory Altre Operazioni Appending Rename Get Info Gestione Tutte le operazioni richiedono ricerca nella directory Il SO tiene in memoria una lista dei file aperti nel sistema (Open-file table) Open e Close Sistemi multiprocessing OFT a 2 livelli Open-File Table 1. 2. 3. 4. Puntatore al file (posiz. corrente) Contatore Aperture del file Posizione file su disco Diritti di accesso Tipi di File Il SO deve riconoscere il tipo di dati del file Estensione del nome (.c , .jpg, .txt) (windows xp) Magic Number (Unix) Nome del programma creatore (MacOS) Struttura del File La struttura è definita dal tipo Più tipi significa SO più complesso Il SO deve trattare la struttura del file dal tipo In Unix i file sono sequenze di byte non interpretate Tutti i SO gestiscono il file eseguibile Struttura interna del File Record Logico e blocco fisico Impacchettamento = come inserire record logici in più blocchi fisici Frammentazione interna Metodi di accesso ai file Sequenziale Diretto Indicizzato Directory Partizioni del disco La Partizione contiene la volume table La directory è una struttura logica (una tabella) che traduce i nomi dei file nei descrittori della volume table Operazioni sulle directory Inserimento, cancellazione, rinominazione, listare il contenuto Schemi di definizione della struttura logica Implementazione con strutture dati (liste linkate, hashing) Struttura delle directory 1. 2. 3. 4. 5. 6. Ricerca di un file Creazione di un file Cancellare un file Elencare una directory Rinominare un file Attraversamento del filesystem Directory a singolo livello Tutti i file sono contenuti nella stessa directory Violazione del principio di unicità Directory a due livelli MFD UFD cat User1 test a pip User2 User3 User4 User5 c File Nomenclatura della ricerca Path di ricerca Directory ad albero Radice cat Spell test a pip bin c home media etc Percorsi assoluti o relativi Cancellazione directory prog copy prt exp stat Directory a grafo aciclico Radice cat Spell test c prog copy prt pip bin a home media a etc b w wor c exp stat Condivisione Cancellazione Directory a grafo generale Radice cat Spell test c prog copy prt pip bin a home media a etc b w wor c exp stat Garbage collection Montaggio del Filesystem Nome dispositivo e punto di montaggio Unix, MacOS, Windows Caso più utenti Protezione