domenica 17 maggio 2009

Sistema Operativo File System

Le applicazioni software hanno bisogno di scrivere e caricare informazioni
in una memoria permanente di dimensioni spesso maggiori di quelle delle
memorie volatili oggi disponibili.
Inoltre spesso molte applicazioni hanno bisogni di accedere gli stessi dati
contemporaneamente e questo è difficile da ottenere in un sistema in cui
i dati sono memorizzati solo nello spazio di indirizzamento virtuale dei
processi.
...dunque abbiamo 3 requisiti fondamentali
non soddisfatti dalla memoria centrale...
Possibilità di memorizzare grandi quantità di informazioni ,
Persistenza delle informazioni tra diverse istanze di un'applicazione,
Capacità delle applicazioni di accedere ai dati in concorrenza.
Il componente del sistema operativo che fornisce una soluzione ai tre requisiti
prima menzionati è chiamato
File System
Un file system è un sottosistema complesso e fornisce agli sviluppatori
un'interfaccia di programmazione per le loro applicazioni molto estesa che
consente ad essi di implementare logiche di creazione e di fruizione delle
informazioni molto articolate.
Da un punto di vista dell'utente però l'aspetto più importante di un file system
è come appare alla sua vista, e cioè:
- gli oggetti elementari che definisce e con cui l'utente può interagire,
- le caratteristiche di tali oggetti,
- le operazioni che l'utente può effettuare su tali oggetti.
Il file system per dare una risposta ai requisiti fondamentali prima evidenziati,
organizza le informazioni in unità chiamate file che rappresentano gli oggetti
elementari gestiti da un file system.
Un file è un meccanismo di astrazione grazie al quale è possibile scrivere
informazioni su un supporto di memorizzazione per poterle leggere e/o
modificare in momenti successivi. L'astrazione mediante file da inoltre la
possibilità all'utilizzatore di ignorare i dettagli e le modalità con cui le
informazioni sono effettivamente scritte sul disco ed il funzionamento di
quest'ultimo.
E' importante allora fornire il quadro delle caratteristiche e delle operazioni
tipicamente associate ai files. Daremo un veloce sguardo ai seguenti punti:
- Nomi di file
- Struttura dei file
- Tipi di file
- Operazioni effettuabili sui file.
La caratteristica più importante di un file è indubbiamente il nome.
Mediante il nome è possibile identificare un file e compiere su di esso tutte
le operazioni possibili( che in seguito analizzeremo ).
In quasi tutti i sistemi operativi i nomi di file legali sono stringhe di caratteri.
Tuttavia in dipendenza del sistema operativo vi possono essere limiti sulla
lunghezza della stringa e sul formato.
Un famigerato esempio è il S.O. MS-DOS che obbliga i nomi dei file a
rientrare in cui il nome è una stringa di 8 caratteri al
massimo seguita da un'altra stringa di massimo 3 caratteri che ne esplicita il
tipo.
Alcuni file systems sono “case sensitive” nel senso che lettere maiuscole e
minuscole vengono considerate diverse.
Esempi di file system reali sono:
- FAT16,FAT32 ed NTFS (in ambiente Windows) sono case insensitive,
- EXT3,ReiserFS,XFS ed altri (in ambiente UNIX) sono case sensitive.
Un file ha una struttura interna che può essere più o meno complessa.
In a) il file è visto come una sequenza di bytes(non strutturato)
In b) invece il file è organizzato in una sequenza di records.
In c) il file è rappresentato con un albero di records non omogenei.
La maggior parte dei sistemi general purpose ha scelto di lasciare la massima
flessibilità alle applicazioni utente:
...solitamente il Sistema Operativo considera il file una sequenza di bytes
ed è l'applicazione utente che lo crea a definirne la struttura interna...
I File 
I file possono essere di svariati tipi in dipendenza dei dati che contengono.
Il tipo di file determina la struttura interna del file.
Solitamente l'estensione del file è un modo per evidenziare di che tipo è un
certo file.
Una distinzione fondamentale è sicuramente tra :
file di testo (ASCII) : file composto da una sequenza di caratteri ASCII (clicca per la definizione)
file binari: file composto da sequenza di byte
eseguibili: file di programmi
non eseguibili:dati non testuali prodotti da applicazioni utente
Vi sono tutta una serie di dati che forniscono informazioni aggiuntive sui
file che vengono chiamati attributi del file. Essi dipendono fortemente dal
sistema operativo e dal file system. Alcuni dei possibili attributi sono:
- creatore
- proprietario
- flag read only , che indica se il file è leggibile o anche scrivibile.
- flag che indica se il file è nascosto
- flag che indica se il file è binario o di testo
- statistiche di accesso(tempo di creazione,ultimi tempi di lettura e modifica)
- dimensione
- dimensione massima
Il file system mette a disposizione dell'utente una serie di operazioni
elementari che è possibile eseguire sui file.
In generale, è sicuramente possibile effettuare le seguenti operazioni:
- creazione
- cancellazione
- accesso
- copia / spostamento
- condivisione / protezione
Ogni file system definisce le sue politiche per la definizione di tali ed
altre operazioni.
Il Catalogo ( Directory o Cartella)
I file sono organizzati in cataloghi detti anche Drectory o cartelle
Un Raccoglitore dove sono memorizzati  tutti  i Nomi dei File più una serie di Informazioni Ausiliarie :      data e ora di creazione/ultima modifica/dimensioni/autore ecc
I file sono organizzati in archivazione come un cassetto dell'ufficio:



Nessun commento: