Uno degli aspetti che più interessano lutente di un SO è
la possibilità di memorizzare permanentemente (anche per decenni)
le proprie informazioni e che sia possibile reperirle facilmente
in un secondo momento.
A tal riguardo, i requisiti essenziali che vengono richiesti ad
un SO sono tre:
1. possibilità di memorizzare grandi quantità di informazioni;
2. conservazione i dati anche dopo la terminazione del processo
che li ha creati;
3. possibilità per più processi di accedere concorrentemente a tali
informazioni.
Per raggiungere questi obiettivi la soluzione comune adottata da
tutti i SO è quella di registrare i dati su dischi e altri supporti
esterni, in unità dette file (termine inglese che vuol dire
archivio).
Il sottosistema del SO che si occupa della gestione dei file è detto
File Management System (FMS).
I file di un sistema, inclusi quelli che servono al suo stesso funzionamento,
sono raccolti in una struttura detta file system, che ha
il compito di presentare agli utenti uninterfaccia semplice
e immediata per accedere ai dati.
Le caratteristiche e lorganizzazione di un file system variano
da un sistema ad un altro, ma presentano, complessivamente, dei
punti in comune:
- I file sono un meccanismo di astrazione, cioè offrono un
modo per memorizzare e recuperare dati su un disco, senza che lutente
debba preoccuparsi del modo in cui tale servizio viene realizzato.
- Un processo che crea un nuovo file gli assegna un nome,
permettendo ad altri processi di utilizzare quel nome per accedere
alle informazioni che esso contiene.
- Ad ogni file è associato un gruppo di attributi, come il
nome del file, la data e lora di creazione, la data e lora
dellultimo accesso, la data e lora dellultima
modifica, la dimensione, il proprietario, un flag di sola lettura
(per indicare se è possibile leggere/scrivere il file o se è consentita
la sola lettura), un flag di sistema (per indicare se è un file
utente normale o un file di sistema), un flag nascosto
(per indicare se è un file da non visualizzare nel listato del file
system), campi di protezione e tanti altri.
- Il file system viene generalmente organizzato in una struttura
ad albero, per mezzo di opportuni contenitori chiamati directory,
che possono raccogliere al loro interno file e altre directory.
- Vengono fornite dal SO una serie di operazioni per creare, cancellare,
leggere, scrivere e rinominare file e directory, nonché operazioni
per leggerne e/o scriverne gli attributi.
Sebbene questi ed altri meccanismi siano forniti da tutti i sistemi
operativi, vi sono delle differenze significative.
Alcuni sistemi, come MS-DOS, nominano i file mediante un meccanismo
di estensione, cioè dividono il nome del file in due parti
separate da un punto, dando un significato particolare alla parte
del nome che segue il punto.
Ad es. un file chiamato prog.c rappresenta, per sistemi
che adottano questa convenzione, un programma sorgente scritto in
linguaggio C.
Altri sistemi, come UNIX, lasciano allutente piena libertà
sul nome da assegnare, permettendo che il nome di un file abbia
più estensioni; ad es. prog.c.tgz può essere utilizzato per
nominare un file sorgente C compresso.
Inoltre il numero ed il tipo di attributi che un file può avere
dipendono fortemente dal SO.
Ad es. i sistemi Windows 9x e Me, che adottano un file system basato
su MS-DOS, noto come FAT, non associano dei campi di protezione
ai file, che così possono essere acceduti da chiunque.
Invece i sistemi Windows NT e 2000 (che adottano il file system
denominato NTFS) e quelli basati su UNIX, come Linux, FreeBSD,
Solaris e altri, associano ad ogni file dei bit di protezione,
ad es. distinguendo tra lutente proprietario, il gruppo di
utenti del proprietario e tutti gli altri utenti del sistema (questi
concetti verrano chiariti nelle lezioni successive).
Altra importante differenza è limplementazione delle directory.
Tipicamente una directory contiene un certo numero di elementi,
uno per ogni file e directory in essa contenuti.
Prima che un utente possa accedere ad un file, il SO deve esaminarne
gli attributi per decidere se rendere possibile o meno laccesso
e per aggiornarne alcuni, come ad es. la data e lora dellultimo
accesso.

Il progettista di un SO può scegliere di memorizzare gli attributi
del file nellelemento corrispondente della directory oppure
in altre strutture indirizzate da quellelemento (v. figura).
Nella prossima puntata vedremo come un SO gestisce la memoria secondaria.
Torna all'indice Generale del corso di Corso di Sistemi Operativi di Software Planet