Sistema operativo - File System

File

Un file è una raccolta denominata di informazioni correlate che viene registrata su una memoria secondaria come dischi magnetici, nastri magnetici e dischi ottici. In generale, un file è una sequenza di bit, byte, righe o record il cui significato è definito dal creatore del file e dall'utente.

Struttura dei file

Una struttura di file dovrebbe essere conforme a un formato richiesto che il sistema operativo possa comprendere.

  • Un file ha una certa struttura definita in base al suo tipo.

  • Un file di testo è una sequenza di caratteri organizzata in righe.

  • Un file sorgente è una sequenza di procedure e funzioni.

  • Un file oggetto è una sequenza di byte organizzata in blocchi comprensibili dalla macchina.

  • Quando il sistema operativo definisce diverse strutture di file, contiene anche il codice per supportare queste strutture di file. Unix, MS-DOS supportano un numero minimo di strutture di file.

Tipo di file

Il tipo di file si riferisce alla capacità del sistema operativo di distinguere diversi tipi di file come file di testo, file di origine e file binari, ecc. Molti sistemi operativi supportano molti tipi di file. Il sistema operativo come MS-DOS e UNIX ha i seguenti tipi di file:

File ordinari

  • Questi sono i file che contengono le informazioni sull'utente.
  • Questi possono contenere testo, database o programmi eseguibili.
  • L'utente può applicare varie operazioni su tali file come aggiungere, modificare, eliminare o persino rimuovere l'intero file.

File di directory

  • Questi file contengono un elenco di nomi di file e altre informazioni relative a questi file.

File speciali

  • Questi file sono noti anche come file di dispositivo.
  • Questi file rappresentano dispositivi fisici come dischi, terminali, stampanti, reti, unità a nastro, ecc.

Questi file sono di due tipi:

  • Character special files - i dati vengono gestiti carattere per carattere come nel caso di terminali o stampanti.

  • Block special files - i dati vengono gestiti in blocchi come nel caso di dischi e nastri.

Meccanismi di accesso ai file

Il meccanismo di accesso ai file si riferisce al modo in cui è possibile accedere ai record di un file. Esistono diversi modi per accedere ai file:

  • Accesso sequenziale
  • Accesso diretto / casuale
  • Accesso sequenziale indicizzato

Accesso sequenziale

Un accesso sequenziale è quello in cui si accede ai record in una certa sequenza, ovvero le informazioni nel file vengono elaborate in ordine, un record dopo l'altro. Questo metodo di accesso è il più primitivo. Esempio: i compilatori di solito accedono ai file in questo modo.

Accesso diretto / casuale

  • Fornisce organizzazione di file ad accesso casuale, accedendo direttamente ai record.

  • Ogni record ha il proprio indirizzo sul file con l'aiuto del quale è possibile accedervi direttamente per la lettura o la scrittura.

  • I record non devono essere in alcuna sequenza all'interno del file e non devono essere in posizioni adiacenti sul supporto di memorizzazione.

Accesso sequenziale indicizzato

  • Questo meccanismo è costruito sulla base dell'accesso sequenziale.
  • Per ogni file viene creato un indice che contiene puntatori a vari blocchi.
  • L'indice viene cercato in sequenza e il suo puntatore viene utilizzato per accedere direttamente al file.

Allocazione dello spazio

I file vengono assegnati agli spazi su disco in base al sistema operativo. I sistemi operativi vengono distribuiti seguendo tre modi principali per allocare lo spazio su disco ai file.

  • Allocazione contigua
  • Allocazione collegata
  • Allocazione indicizzata

Allocazione contigua

  • Ogni file occupa uno spazio di indirizzi contiguo su disco.
  • L'indirizzo del disco assegnato è in ordine lineare.
  • Facile da implementare.
  • La frammentazione esterna è un problema importante con questo tipo di tecnica di allocazione.

Allocazione collegata

  • Ogni file contiene un elenco di collegamenti ai blocchi del disco.
  • La directory contiene un collegamento / puntatore al primo blocco di un file.
  • Nessuna frammentazione esterna
  • Utilizzato efficacemente nel file ad accesso sequenziale.
  • Inefficiente in caso di file ad accesso diretto.

Allocazione indicizzata

  • Fornisce soluzioni ai problemi di allocazione contigua e collegata.
  • Viene creato un blocco indice con tutti i puntatori ai file.
  • Ogni file ha il proprio blocco indice che memorizza gli indirizzi dello spazio su disco occupato dal file.
  • Directory contiene gli indirizzi dei blocchi indice dei file.