Torna alla pagina di Sistemi Operativi
:: Appunti caotici ::
Lezione 3 Realizzazione dei file: gestione dell'astrazione dei file
...
La definizione ufficiale del file, da un punto di vista logico, è: sequenza di elementi omogenei (record logici) in numero non limitato. Identifichiamo gli elementi del file con un indice che va da 0 ad N.
Il tipo base è il costruttore che ci permette di creare l'oggetto con cui rappresentare l'informazione. Grazie ad esso il compilatore sa quanti byte occupa ogni elemento, e conoscendo anche il numero N di elementi, il sistema operativo avrà vita facile per scandire e manipolare il file.
Da un punto di vista fisico il file è un insieme ordinato di elementi fisici (blocchi fisici) del supporto di memoria di massa. Non è importante dove si trovino fisicamente i blocchi su disco, il gestore del file system provvederà a mettermeli nell'ordine logico corretto per essere usato. La dimensione F in byte dei singoli blocchi fisici dipende dalla formattazione fisica del disco.
I Record logici tipizzati hanno dimensione di L byte che può essere calcolata dall'analisi del tipo; mentre i Blocchi fisici uniformi per supporto di memoria di massa hanno dimensione di F byte.
Il mappaggio per la memorizzazione può essere fatto in diversi modi, e nessuno di quelli che stiamo per elencare vanno bene (quindi che cazzo li dicidiamo a fare?):
Il concetto di byte stream parte dalla considerazione che tolta l'interpretazione applicativa il file non è altro che una sequenza di byte, e come tale potrebbe essere trattato. Se viene considerato il byte come tipo base non ho più bisogno di avere una gestione specifica per ogni tipo base del file system (cosa che avverrà poi a livello interpretativo, successivamente).
Col mappaggio della visione logica nella visione fisica attraverso la visione logica a byte stream, risolvo i due problemi visti due slide fa:
...
Per realizzare l'interpretazione del record logico su un byte stream, utilizzo delle finestre di L bytes attraverso cui guardarlo. Questa finestra si sposta di un numero di bytes pari alla sua dimensione.
...
...
L'apertura predispone l'ambiente per le operazioni successive.
...
...