4.5 La struttura del filesystem

L’insieme delle informazioni memorizzate sulla memoria di massa è organizzato secondo una struttura che va sotto il nome di filesystem. È necessario distinguere tra la struttura logica e quella fisica delle informazioni memorizzate: la struttura fisica è il modo in cui le informazioni sono scritte fisicamente sulla memoria di massa in modo tale che il sistema possa ritrovarle per poterle leggere e/o modificare; la struttura logica è il modo in cui l’organizzazione delle informazioni è presentata all’utente.

La struttura fisica dipende pesantemente dal filesystem considerato, mentre tutti i filesystem Unix-like hanno una struttura logica analoga.

I sistemi Unix-like utilizzano i concetti comuni di file e directory. Un file è un insieme di informazioni che possono rappresentare dei dati (un testo, un’immagine, una canzone, un film, ...) o anche le istruzioni di un programma. Una directory è una sorta di contenitore che può contenere sia file che altre directory.

Poiché le directory possono contenere sia file che altre directory, si viene a delineare una struttura gerarchica ad albero (v. fig. 4.1) dell’organizzazione dei file e delle directory, detto directory tree o albero delle directory, ovvero un particolare grafo orientato in cui i nodi (elementi del grafo) sono connessi tra loro da frecce che rappresentano la relazione di contenimento (una freccia che va dal nodo A al nodo B indica che il nodo A contiene il nodo B - in genere si dice che il nodo B è figlio del nodo A), in modo tale che dal nodo radice (che è l’unico nodo che non è figlio di nessun altro nodo) è possibile raggiungere qualsiasi altro nodo ognuno secondo un percorso univoco.


pict
Figura 4.1: Esempio di albero.

Generalmente, in un albero le frecce possono essere omesse, in quanto la discendenza degli elementi (gerarchia), dall’alto verso il basso, è sottintesa.

Un filesystem è formato quindi dall’insieme dei file e delle directory e dalla loro organizzazione, ovvero è il meccanismo che collega la struttura logica, cioè l’albero delle directory, con quella fisica, cioè i settori sul disco e la metodologia di accesso agli stessi. Un disco senza filesystem è solo un’insieme ordinato di settori a partire dal primo: le informazioni in esso contenute non sono suddivise in file e directory. Il filesystem permette inoltre l’accesso diretto alle informazioni memorizzate sulla memoria di massa (se questa è realizzata da un dispositivo che lo consente, come i dischi magnetici), ovvero mette a disposizione i meccanismi per accedere ad una determinata informazione, in modo che non sia necessario accedere a tutte quelle precedenti.


pict
Figura 4.2: Accesso sequenziale e accesso diretto.

Infatti, come illustrato nella fig. 4.2, se il sistema di accesso al supporto di memorizzazione ha un solo grado di libertà, come può essere ad esempio un lettore di nastro magnetico, la testina di lettura/scrittura può accedere all’n-esima informazione passando prima per tutte le precedenti n- 1. Così, il tempo di accesso all’informazione, ovvero il tempo necessario affinché la testina di lettura/scrittura riesca a posizionarsi sull’informazione desiderata, è proporzionale alla posizione dell’informazione sul supporto magnetico. Si parla in tal caso di accesso sequenziale alle informazioni. Nel caso in cui il meccanismo di accesso al supporto abbia ulteriori gradi di libertà, si riduce la dipendenza del tempo di accesso alla posizione dell’informazione. In un disco magnetico, infatti, la testina di lettura/scrittura muovendosi radialmente rispetto al supporto circolare, può accedere più velocemente ad un numero più elevato di informazioni con spostamenti meccanici minori (il supporto di memorizzazione ruota intorno al proprio asse con una velocità costante). Per ontrapposizione al tipo precedentemente descritto, si parla di accesso diretto alle informazioni. È evidente che non si può parlare di accesso diretto vero e proprio, poiché il tempo di accesso all’informazione non è del tutto indipendente dalla posizione che l’informazione occupa sul supporto.


  4.5.1 La struttura logica
  4.5.2 La struttura fisica
   4.5.2.1 Gli extent