File System
A. Ferrari
File System
Il file system è la parte del Sistema Operativo che
permette la gestione delle informazioni memorizzate
in modo permanente (i file sui vari sistemi di
memorizzazione di massa).
I file system possono essere rappresentati sia
graficamente tramite file browser sia testualmente
tramite shell testuale. Nella rappresentazione grafica
(GUI) è generalmente utilizzata la metafora delle
cartelle che contengono documenti (i file) ed altre
sottocartelle.
Hard disk
Un disco rigido, anche chiamato disco fisso o hard
disk drive (abbreviazioni comuni: "hard disk",
"HDD"), è un dispositivo di memoria di massa che
utilizza uno o più dischi magnetici per l'archiviazione
dei dati.
Il disco rigido è una delle tipologie di dispositivi di
memoria di massa attualmente più utilizzate. È infatti
presente nella maggior parte dei computer.
L’Hard disk ha una velocità di un milione di volte
inferiore a quella della memoria principale.
Disco a stato solido
Un'unità a stato solido o drive a stato solido, in sigla SSD (Solid-State Drive),
talvolta impropriamente chiamata disco a stato solido, è una tipologia di
dispositivo di memoria di massa che utilizza memoria a stato solido (in
particolare memoria flash) per l'archiviazione dei dati.
La totale assenza di parti meccaniche in movimento porta diversi vantaggi,
di cui i principali sono:
rumorosità assente;
minore possibilità di rottura;
minori consumi durante le operazioni di lettura e scrittura;
tempo di accesso ridotto: si lavora nell'ordine dei decimi di millisecondo; il
tempo di accesso dei dischi magnetici è circa 50 volte maggiore, attestandosi
invece sui 5 millisecondi;
maggiore resistenza agli urti;
maggiore durata: i dischi a stato solido hanno mediamente un tasso di rottura
inferiore a quelli degli hard disk.
minore produzione di calore;
Altre memorie di massa
Dischi RAID
RAID (Redundant Array of Independent Disks, in italiano insieme
ridondante di dischi indipendenti), è un sistema informatico che usa un
gruppo di dischi rigidi per condividere o replicare le informazioni.
I benefici del RAID sono di aumentare l'integrità dei dati, la tolleranza ai
guasti e le prestazioni, rispetto all'uso di un disco singolo.
Nel suo livello più semplice, il sistema RAID permette di combinare un
insieme di dischi in una sola unità logica. In questo modo il sistema
operativo gestisce i differenti dischi come un unico volume.
RAID è tipicamente usato nei server, e di solito è implementato con dischi di
identica capacità. Con il calo del costo dei dischi rigidi e con il diffondersi
della tecnologia RAID nei chipset delle schede madri, il RAID è spesso
offerto come opzione sia sui computer di fascia alta sia su quelli usati da
utenti domestici, specialmente se dedicati a compiti che richiedono un
grande immagazzinamento di dati, come il montaggio audio e video.
file e directory
Organizzazione del file
system come albero: la
directory di livello più alto è
la radice, i file sono le
foglie.
Ogni singolo file è
univocamente individuato
dal percorso (pathname)
che lo connette alla radice.
Operare coi file
Operazioni:
navigazione nell’albero delle directory
ricerca
elencazione
eliminazione
ridenominazione
copia o spostamento
Per il SO i file sono semplici sequenze di byte (byte
stream) che vengono poi opportunamente interpretate
dai programmi applicativi.
Sicurezza
Il Sistema Operativo deve garantire la il controllo
dell’accesso ai file e alle directory.
Gli utenti privi di specifici privilegi non hanno la
possibilità di leggere, scrivere, creare, eliminare,
rinominare i file.
Tipi di file
Estensione
(caratteri che seguono l’ultimo . nel nome del file)
Formato
(codice identificativo – magic number – memorizzato
nei primi byte del file)
Magic number
I magic number sono nati negli ambienti Unix per identificare il
formato dei file.
Oggi la maggior parte dei formati del file hanno un magic number,
costituito da un numero di byte variabile (solitamente da 2 a 10).
Esempi
I file immagine GIF cominciano sempre con la stringa ASCII GIF87a o GIF89a
Le classi Java compilate hanno il magic number CAFEBABE, espresso in
notazione esadecimale. Probabilmente è un altro riferimento al caffè che di
Java è simbolo e nome e all'ipotetica cameriera che lo serve.
I file ZIP cominciano tutti per PK (in esadecimale 50 4B), dalle iniziali del
nome dell'ideatore Phil Katz.
Hard disk
I dischi fissi magnetici hanno una superfice
magnetizzata ed una testina magnetica collegata al
sistema mediante un braccio mobile ad alta velocità
che si posiziona sul disco nelle operazioni di scrittura,
lettura e cancellazione.
La superficie del disco viene sottoposta ad operazioni
di smagnetizzazione e rimagnetizzazione, tramite
impulsi elettrici, per creare blocchi negativi/positivi
per la memorizzazione dei dati in codice binario.
Storia
L'hard disk è stato inventato
nel 1956 dall'IBM. Il primo
prototipo era costituito da 50
dischi del diametro di 24
pollici (circa 60 cm) e poteva
immagazzinare circa 5
megabyte di dati. Era grande
quanto un frigorifero, con un
peso di oltre una tonnellata.
Il primo modello per personal
computer fu il Seagate ST506 prodotto da Seagate
Technology nel 1980, aveva
una capacità di 5 MB,
diametro di 5,25 pollici
File-system su disco
I dischi attuali sono formati da
più piatti impilato sullo stesso
asse e sono presenti più testine
di lettura/scrittura
l disco è suddiviso in tracce che a
loro volta sono divise in settori
Il settore è la più piccola unità di
memorizzazione fisica presente
sul disco
La dimensione dei dati di un
settore è sempre una potenza di
due, ed è quasi sempre 512 byte
Cluster
I settori vengono
raggruppati logicamente in
cluster (blocchi di dati) per
favorire la memorizzazione
dei file di grandi dimensioni
Ogni operazione di
lettura/scrittura interessa
un intero cluster
Memorizzazione dei file
su disco
Per evitare grossi problemi di frammentazione non è
necessario che i file siano memorizzati in blocchi
contigui
L’elevato numero di blocchi per file di grande
dimensione rende impossibile memorizzare tabelle di
allocazione per ogni file
Blocchi concatenati
Una prima soluzione (ora non più implementata)
consisteva nel collegare i blocchi in sequenza: alla
fine di ogni blocco veniva memorizzato il riferimento
al blocco successivo.
Altamente inefficiente per file di grandi dimensioni
Indicizzazione ad albero
Compromesso tra l’impraticabilità di indicizzazione di
tutti i blocchi e l’inefficienza della concatenazione dei
blocchi
Nella tabella che rappresenta la directory per ogni
file sono memorizzati i riferimenti a un numero
limitato di blocchi
Per file di grandi dimensioni gli ultimi blocchi
conterranno riferimenti a blocchi “indice”
Indicizzazione
file piccoli
file grandi
File molto grandi
Blocchi liberi
Per la gestione dei blocchi
liberi è possibile utilizzare la
concatenazione
Non è necessario accedere
ad uno specifico blocco, si
deve gestire l’allocazione di
un nuovo blocco o la
deallocazione
Movimento testina
L’esecuzione
contemporanea di più
processi fa sì che gli
indirizzi dei blocchi siano
praticamente casuali
Per ottimizzare i movimenti
della testina si servono le
richieste alternando lo
spostamento della testina
nei due sensi (algoritmo
dell’ascensore)
Dimensione cluster
Cluster di grandi dimensioni
diminuiscono il numero di
accessi al disco
Ma non ottimizzano
l’utilizzo dello spazio
(spreco per cluster solo
parzialmente utilizzati)
Bufferizzazione
Per ridurre il numero di
accessi al disco vengono
letti più blocchi consecutivi
e memorizzati in un buffer
nella RAM
Le operazioni di lettura
scrittura possono operare
direttamente sul buffer ed
essere “salvate” su disco
solo al termine
dell’esecuzione
Integrità dei dati
Journaling
In un file di log vengono memorizzate le operazioni da
effettuare sul file e quelle effettivamente concluse
In caso di malfunzionamento è possibile sapere quali
operazioni non hanno avuto successo e ripristinare
uno stato consistente
File-system DOS e
Windows
File Allocation Table (FAT) è il file
system primario per diversi
sistemi operativi DOS e Windows
fino alla versione Windows ME.
FAT è relativamente semplice ed
è supportata da moltissimi
sistemi operativi.
E’ utilizzata soprattutto su
memory card e USB device per
condividere dati tra sistemi
operativi diversi.
Il più grande problema del File
System FAT è la
frammentazione.
FAT32
Dimensione massima file = 4Gb
Dimensione max. volume = 2Tb
File-system di Windows
NTFS (New Technologies FileSystem) sistema proprietario
Contiene una Master File Table
(MFT) che contiene le
informazioni di ogni
file/directory presente nel filesystem
Albero degli indici dei blocchi
bilanciato
E’ di tipo journaling
Permette di cifrare e
comprimere i file in modo
trasparente agli applicativi
File-system Linux
Linux implementa un filesystem virtuale che
consente l’integrazione di
diverso tipo
Il più utilizzato è ext4
E’ di tipo journaling
Le unità di memorizzazione
sono “montate” in un unico
albero
Scarica

ppt - Alberto Ferrari