FILE SYSTEM

FILE SYSTEM

notion image
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
      • Il comando file determina il tipo di file esaminandone il contenuto
        COME? → pattern matching
        1. 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.
        1. Se i byte confrontati non contengono un'identificazione chiara legge anche l'estensione
Struttura Interna
notion image
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.
notion image
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 Seek e Write)
 
  • 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.