





Studia grazie alle numerose risorse presenti su Docsity
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Prepara i tuoi esami
Studia grazie alle numerose risorse presenti su Docsity
Prepara i tuoi esami con i documenti condivisi da studenti come te su Docsity
Trova i documenti specifici per gli esami della tua università
Preparati con lezioni e prove svolte basate sui programmi universitari!
Rispondi a reali domande d’esame e scopri la tua preparazione
Riassumi i tuoi documenti, fagli domande, convertili in quiz e mappe concettuali
Studia con prove svolte, tesine e consigli utili
Togliti ogni dubbio leggendo le risposte alle domande fatte da altri studenti come te
Esplora i documenti più scaricati per gli argomenti di studio più popolari
Ottieni i punti per scaricare
Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium
Una panoramica completa della gestione dei file e dei file system, esplorando le loro strutture, i metodi di allocazione dei file (allocazione contigua, per blocchi e indicizzata) e le tecniche di gestione dello spazio libero (vettore di bit e lista linkata). I vantaggi e gli svantaggi di ogni metodo, fornendo una comprensione approfondita dei principi fondamentali alla base della gestione dei file e dei file system.
Tipologia: Appunti
1 / 9
Questa pagina non è visibile nell’anteprima
Non perderti parti importanti!






Con il termine file system ci riferiamo all’insieme di tutti quei meccanismi necessari per la memoriz- zazione e l’accesso ai dati di un sistema operativo. Esso `e strutturato secondo queste specifiche:
Un file non e altro che un’unita di memorizzazione logica che dispone di una collezione di informazioni correlate, memorizzate su memoria non volatile. Possono contenere: dati (numeri, caratteri, dati binari) e/o programmi (file sorgenti, file linkabili, file eseguibili).
Tipologie di file
Ad ogni file sono associate delle specifiche informazioni (attributi) che possono variare a seconda del sistema operativo utilizzato:
Tutte le operazioni sopracitate necessitano di un’operazione di apertura del file e di ricerca della sua entry in una directory. Operazione di lettura di un file: Per evitare una continua ricerca di una entry all’interno di una specifica directory, molti sistemi operativi richiedono l’impiego della chiamata di sistema open() prima che un file possa essere utilizzato. Poich´e molti sistemi fanno uso di tavole di memorizza- zione dei file aperti (process-table-entry), la ricerca di uno specifico file e minimizzata. Ogni entry, rappresentante un singolo file,e associata alle seguenti informazioni:
Figura 1: Esempio di struttura di una directory
Una directory puo essere vista come un file contenente le informazioni sui file che la compongono. Vie pero una differenza sostanziale tra file e directory: un generico file puo essere aperto e modificato a piacere dal possessore del file (eventualmente anche facendo qualche pasticcio); al contrario, nemmeno il possessore di una directory pu`o modificarla a piacimento, ma solo attraverso operazioni messe a disposizione dal sistema operativo.
Le directory a singolo livello sono adatte in casi in cui:
e ridotto e non c’e bisogno di organizzare i dati in modo complesso.Le directory a singolo livello sono una soluzione semplice e veloce per organizzare pochi file, ma possono diventare rapidamente inefficienti e difficili da gestire quando il numero dei file aumenta o quando e necessario un sistema piu complesso di categorizzazione e archiviazione.
Le directory a due livelli consistono in una cartella principale che contiene diverse sottodirectory. Ogni sottodirectory pu`o contenere file, consentendo una semplice organizzazione gerarchica.
Vantaggi
a limitata: piu file possono essere gestiti senza diventare disordinati.Svantaggi
Le directory ad albero sono una struttura gerarchica in cui ogni directory puo contenere altre directory (sottodirectory), formando una struttura ramificata simile a un albero. Questo modello permette di organizzare i file in modo logico e gerarchico, facilitando la navigazione e la gestione dei dati. Ogni directory puo contenere file o altre sottodirectory, creando una struttura a pi`u livelli che consente una gestione flessibile e scalabile dei dati.
Vantaggi
a: facilita la gestione di grandi quantita di file e directory.Le directory a grafo aciclico sono una struttura in cui le directory sono organizzate in un grafo, ma senza cicli, ovvero senza che una directory possa puntare a se stessa indirettamente. Ogni directory puo contenere altre directory e file, ma non ci sono riferimenti circolari tra di esse. Questo modello consente di creare relazioni piu flessibili tra file e directory rispetto alla struttura ad albero, mantenendo per`o l’assenza di cicli.
Vantaggi
o essere referenziato da piu directory senza duplicazioni.L’allocazione indicizzata risolve alcuni dei problemi dei metodi precedenti, utilizzando un indice (una tabella) che contiene i puntatori a ciascun blocco del file. Ogni file ha una struttura di indice che tiene traccia dei blocchi in cui i dati sono memorizzati. Questo approccio consente ai file di non essere limitati dalla contiguit`a dei blocchi.
La gestione dello spazio libero `e un componente cruciale di un file system. Un file system deve essere in grado di allocare lo spazio su un dispositivo di memorizzazione in modo efficiente e tenere traccia dei blocchi liberi. Quando un file viene creato o eliminato, il file system deve aggiornare le informazioni relative allo spazio libero disponibile. Esistono diversi metodi per gestire lo spazio libero, tra cui:
Questi due metodi sono tra i piu comuni per tenere traccia dei blocchi liberi e sono scelti in base alle esigenze specifiche del sistema, come la velocita di accesso e la gestione della memoria.
Il metodo del vettore di bit utilizza un array di bit per rappresentare lo spazio libero in un file system. Ogni bit nell’array corrisponde a un blocco del dispositivo di memorizzazione: un bit con valore 0 indica che il blocco e libero, mentre un bit con valore 1 indica che il bloccoe occupato.
a: Il vettore di bite semplice da implementare e da comprendere.e veloce, il che consente di determinare rapidamente se un bloccoe libero o occupato.a di memoria proporzionale al numero di blocchi, chee generalmente una piccola quantit`a rispetto ad altri metodi.a: Se il numero di blocchie molto grande, il vettore di bit pu`o diventare inefficiente in termini di memoria.Il metodo della lista linkata utilizza una lista di blocchi liberi, dove ogni blocco della lista contiene il puntatore al successivo blocco libero. Ogni volta che un blocco viene liberato, il sistema aggiunge il blocco alla lista; quando un blocco deve essere allocato, viene rimosso dalla lista.
a: La lista linkatae molto flessibile e non richiede la gestione di grandi array o vettori.e sufficiente aggiungere o rimuovere un puntatore nella lista, senza la necessita di modificare una grande struttura.e necessario scorrere la lista, il che puo essere pi`u lento rispetto al vettore di bit.