I file l I File sono l unità base di informazione nellinterazione tra utente e sistema operativo l Un file e costituito da un insieme di byte attinenti ad ununica entità logica –fino a un po di tempo fa i dati nel file dovevano essere omogenei (un testo, unimmagine, un programma, una serie di numeri,.....) –Oggi sono comuni file complessi (documenti complessi) che incoroporano informazioni eterogenee. l Un file è identificabile in maniera univoca mediante un nome
l I file sono memorizzati su dispositivi di memoria secondaria (hard disk, floppy, CD) l Lutente deve solo preoccuparsi di dare un nome ad un file (al momento della creazione) ed usarlo per le operazioni da eseguire su di esso
Nome di un file Il nome è generalmente composto da due parti: l il nome vero e proprio (si possono usare caratteri alfanumerici in numero dipendente dal S.O.) l lestensione (una sequenza di caratteri che aiuta ad identificare il tipo di contenuto del file) Nome ed estensione sono separati dal carattere punto (.) Il nome è obbligatorio mentre lestensione è opzionale (ma fortemente consigliata)
Regola pratica: usare sempre nomi ed estensioni significativi (ovvero, che evocano il contenuto dei file) l es. se ho creato un documento che contiene il primo capitolo della tesi di laurea posso salvare il documento WORD (operazione che crea un file) con il nome capitolo1.doc
Il File System Il sistema operativo deve fornire una visione astratta dei file su disco e l'utente deve avere la possibilità di: l identificare ogni file con un nome astraendo completamente dalla sua memorizzazione fisica l avere un insieme di operazioni per lavorare sui file: creare o rimuovere un file, copiarlo, cambiargli nome, visualizzare il contenuto di un file l avere la possibilità di strutturare un insieme di file, organizzandoli in sottoinsiemi
l in un sistema multi-utente, inoltre lutente deve avere dei meccanismi per proteggere i propri file, ossia per impedire ad altri di leggerli, scriverli o cancellarli l I moderni sistemi operativi (es. Windows) forniscono supporto per queste attività l La parte di S.O. che fornisce queste funzionalità è detta FILE SYSTEM
Operazioni sui File Un insieme di operazioni minimale, presente in tutti i sistemi, è il seguente: l creazione di un file l cancellazione (rimozione) di un file l copia di un file l visualizzazione del contenuto di un file ad esempio sul video o in una finestra sul video l stampa di un file l lettura e modifica del contenuto di un file l ridenomina di un file, per cambiare il nome ad un file l visualizzazione delle caratteristiche di un insieme di file (dimensione, data di creazione e dellultima modifica, vincoli di protezione, ecc.)
l Un unico contenitore di file è improponible – problemi se ho centinaia di file – non si possono avere due file diversi con lo stesso nome l Bisogna raggruppare i file in sottoinsiemi secondo qualche criterio semantico (raggruppa in un contenitore file correlati) l I SO supportano una organizzazione gerarchica di insiemi di file Strutturazione dei file
l I sottoinsiemi (aree, contenitori) di file sono detti direttori (o directory, o cartelle) l Contengono la lista dei file appartenenti alla directory stessa, con le caratteristiche (dimensioni, tipologia,....) di ogni file l Contengono la lista di eventuali altre directory presenti Le directory
Struttura ad albero l La struttura gerarchica che i S.O realizzano per organizzare i file è detta ad albero l Lalbero ha ununica directory radice (o root directory); viene simbolicamente indicata con il simbolo \ (backslash) l Ogni dispositivo di memoria secondaria può avere associato un suo albero di directory, i dispositivi sono identificati con le lettere: –a: e b: per i floppy disk –c: per lhard disk –d: oppure e: per il CD-ROM o dischi aggiuntivi
Il sistema operativo: il file system Floppy a: Applicazioni Biblioteca Indice Utenti Elab_imm Elab_suoni Elab_testi Narrativa-Fra Narrativa-Ing Narrativa-Ita Bianchi Photoshop.exe Premiere.exe Winword.exe Pautasso Rossi libro1 libro2 libro1 libro2 libro3 libro1 libro2 libro3 ROOT
Organizzazione Gerarchica dei file
Identificazione dei file nell albero l Se non ci fosse la strutturazione in directory, tutti i file potrebbero essere identificati mediante il loro nome l Nel caso di unorganizzazione gerarchica a più livelli il nome non è più sufficiente ad identificare il file (nellesempio precedente esistono diversi file con lo stesso nome) Per individuare un file o una directory in modo univoco si deve allora specificare l'intera sequenza di directory che lo contengono, a partire dalla radice dell'albero
l Ad esempio il file libro1 di narrativa italiana è univocamente identificato dalla sequenza: A:\Biblioteca\Narrativa-Ita\libro1 l La directory Pautasso di Utenti è identificata dalla sequenza: A:\Utenti\Pautasso il carattere \viene usato come separatore. l Una sequenza di questo tipo può essere vista come il cammino che si deve compiere per raggiungere un determinato file a partire dalla radice dell'albero, ed è chiamata path
Path corrente l Si dice path corrente il path della cartella (directory) su cui si sta lavorando l Un altro modo di individuare un file (o una directory) è basato sul concetto di posizione corrente l In questo caso per individuare un file o una directory in modo univoco si deve specificare l'intera sequenza di directory che lo contengono, a partire dalla posizione (path) corrente
Floppy a: Applicazioni Biblioteca Indice Utenti Elab_imm Elab_suoni Elab_testi Narrativa-Fra Narrativa-Ing Narrativa-Ita Bianchi Photoshop.exe Premiere.exe Winword.exe Pautasso Rossi libro1 libro2 libro1 libro2 libro3 libro1 libro2 libro3 Posizione corrente
l Se la posizione corrente è A:\Biblioteca, il file libro1 di narrativa italiana è univocamente identificato dalla sequenza: Narrativa-Ita\libro1 l Se la posizione corrente è A:\Utenti, la directory Pautasso è identificata dalla sequenza: Pautasso l Per raggiungere un determinato file a partire dalla posizione corrente si utilizza il path relativo
Operazioni sulle directory Per organizzare gerarchicamente i file, il sistema operativo fornisce un insieme di operazioni sulle directory, per esempio: l creare una nuova directory l rimuovere una directory l ridenominare una directory l elencare il contenuto (l'insieme di file e sotto- directory) di una directory l copiare o spostare i file da una directory ad un'altra
Gestione fisica dei file su disco l Il SO mantiene per ogni file un insieme di informazioni (file descriptor): –nome –data creazione e ultima modifica –dimensione –proprietario –tipo –dove il file è memorizzato du disco –(In Windows queste informazioni sono contenute in una tabella detta File Allocation Table) l Simili informazioni sono mantenute anche per le directory (in aggiunta mantiene lnformazione di quali file contiene e sotto-directory)
Allocazione dei file su disco fisso Due tipi di allocazione: l Allocazione contigua: un file viene memorizzato come ununità indivisibile l Allocazione sparsa (La più usata): I file vengono allocati sul disco in blocchi (delle dimensioni dei blocchi del disco) e i blocchi di uno stesso file sono allocati in modo non necessariamente contiguo l Frammentazione: ci sono tanti blocchi di memoria, liberi (non più in uso) sparsi sul disco: ciò rende più inefficiente le operazioni di lettura dei file e scrittura di file l Deframmentazione: compattare in modo contiguo i blocchi di uno stesso file (operazione costosa)