File Management in Operating Systems
Naming Files
CARATTERISTICHE GENERALI DENOMINAZIONE FILES
- possono essere composti da stringhe di 1-8 caratteri
- Alcuni sistemi, come UNIX, sono case sensitive, mentre altri
- nome + estenzione (separati dal punto)
- UNIX: non impone l’uso delle estensioni, lasciandole a discrezione dell’utente. Tuttavia, programmi specifici, come compilatori, possono richiedere estensioni specifiche per funzionare correttamente.
- Windows: le estensioni sono convenienti pk riconosciute dal sistema velocemente
A COSA SERVE LA DENOMINAZIONE
- recupero files
- lato utente: estensioni
- lato sistema operativo: utilizza altri meccanismi per interpretare i dati all'interno di un file
- confronta i dati (che può essere di qs tipo, ad esempio una stringa, una sequenza di byte o una struttura più complessa) con una serie di modelli (pattern) predefiniti, al fine di individuare una corrispondenza o classificare il dato.
- Se i byte confrontati non contengono un'identificazione chiara legge anche l'estensione
Il comando file determina il tipo di file esaminandone il contenuto
COME? → pattern matching
Struttura Interna
File come sequenza non strutturata di byte (usato dal Sistema Operativo)
- le operazioni sul file avvengono a livello di byte → maggior flessibilità
Responsabilità del Sistema Operativo
- Fornire operazioni di base come leggere, scrivere, aprire e chiudere file.
- Non interpreta il significato dei byte contenuti nel file.
File come Sequenza di Record
- COSA è: struttura logica per organizzare dati in un file o database.
- le operazioni sul file avvengono a livello di record.
Responsabilità del Livello Applicativo:
- Definire la struttura logica dei dati nel file system: come record, campi, o altri schemi personalizzati.
- Implementare la logica per leggere e scrivere i record, gestendo le loro dimensioni e posizioni all'interno del file.
File Organizzati in Alberi di record (usato dai programmi)
- Accesso veloce: ad esempio, nel file illustrato, è possibile cercare direttamente il record associato alla chiave "pony" senza conoscerne la posizione (ordine alfabetico in questo caso).
- Tipi di File: qui
5. Attributi dei File
Il file system associa a ciascun file una serie di attributi che definiscono sue proprietà e modalità di accesso del file
- informazioni ulteriori rispetto all’header
Gli attributi di un file sono metadati, ossia informazioni che descrivono o identificano il file. Non sono interni al contenuto del file, ma vengono gestiti dal file system per fornire dettagli sul file e controllarne l'accesso e la gestione.
Attributi principali
Permessi di Accesso:
- Indicano chi può accedere al file e quali operazioni può eseguire.
- In un sistema Unix/Linux, i permessi sono rappresentati da tre categorie:
- Proprietario (owner).
- Gruppo (group).
- Altri utenti (others).
- Le operazioni principali sono:
- Lettura (r): Permesso di leggere il contenuto.
- Scrittura (w): Permesso di modificare il contenuto.
- Esecuzione (x): Permesso di eseguire il file (se è un programma o uno script).
Dimensione:
- Indica la quantità di spazio occupato dal file in byte.
- Utile per monitorare lo spazio di archiviazione.
Ultimo Accesso:
- Registra la data e l'ora in cui il file è stato aperto o letto l'ultima volta.
Ultima Modifica:
- Indica quando il contenuto del file è stato modificato l'ultima volta.
Numero di I-node:
- L'i-node è una struttura dati del file system che contiene tutte le informazioni sul file (ad esempio, i suoi attributi e il puntatore ai dati).
- Ogni file ha un numero di i-node univoco all'interno del file system, che funge da identificativo del file.
Dispositivo (Disco):
- Indica su quale disco o partizione si trova fisicamente il file.
- Questo è particolarmente utile in sistemi con più dischi o partizioni.
6. Operazioni sui File
Operazioni di Base:
- Create (Creare): Creazione di un nuovo file.
- Delete (Eliminare): Rimozione di un file.
- Open (Aprire): Preparazione di un file per la lettura o la scrittura.
- Close (Chiudere): Termine dell'accesso a un file.
- Read (Leggere): Lettura dei dati da un file.
- Write (Scrivere): Scrittura di dati su un file.
- Seek (Posizionamento): Spostamento a una posizione specifica all'interno di un file.
- Append (Aggiungere): Aggiunta di dati alla fine di un file (può essere ottenuta con
SeekeWrite)
- Get Attributes (Ottenere Attributi): Recupero dei metadati di un file.
- Set Attributes (Impostare Attributi): Modifica dei metadati di un file.
- Rename (Rinominare): Cambiamento del nome di un file.
Operazioni che Modificano la Directory e non il file:
- Rename e Delete:
- Queste operazioni modificano le voci di directory piuttosto che il contenuto del file stesso.
- Eliminare un file rimuove la sua voce dalla directory, rendendolo inaccessibile tramite qualsiasi percorso.
- Storicamente, questo ha permesso il recupero (undelete) di file ricostruendo le voci di directory, poiché i dati rimangono sul disco finché non vengono sovrascritti.
DIRECTORY = file creato per tracciare le posizioni dei file
4.2.1 Single-Level Directory Systems
- Un’unica directory che contiene tutti i file
- utilizzato in dispositivi semplici come fotocamere digitali e lettori musicali portatili, dove la gestione dei file è meno complessa.
4.2.2 Hierarchical Directory Systems
- Necessità di una Gerarchia → uso di sottodirectory per raggruppare i file in base alla loro natura o funzione.
- root directory
Vantaggi delle Directory Gerarchiche
- Organizzazione Flessibile
- Facilità di Gestione
- Compatibilità Multiutente
Questa struttura è ampiamente usata nei sistemi operativi di oggi.