Introduzione al File-System File-System Concetto di File Struttura

File-System!
Dal punto di vista dell’utente!
!
  File !
  Directory!
Introduzione al File-System!
!
Metodi e strutture per garantire!
!
  accesso!
  organizzazione!
  condivisione!
  protezione!
!
su/ai dati memorizzati !
Operating System Concepts – 7th Edition!
10.2!
Concetto di File!
Struttura dei File!
  Record !
  Unità fondamentale di memorizzazione!
 
 
Ogni dato deve appartenere ad un file!
 
una parola o byte!
una linea !
  Lunghezza
  Collezione di dati correlati!
  Lunghezza
 
  Tipi: !
 
fissa!
variabile!
Struttura complessa!
 
Documenti formattati!
Dati!
  numerico!
 
Silberschatz, Galvin and Gagne ©2005!
  Chi decide?!
  alfanumerico!
 
SO!
  binario!
 
Programma creante!
  Strutture rigide (es. tipizzazione)  poco versatili!
Programmi!
  Struttura semplice (es. stream di byte o caratteri)  minor controllo !
Operating System Concepts – 7th Edition!
10.3!
Silberschatz, Galvin and Gagne ©2005!
Operating System Concepts – 7th Edition!
!!
10.4!
Silberschatz, Galvin and Gagne ©2005!
Tipi di File – Nome, Estensione!
Attributi di un File!
  Nome –informazioni in formato leggibile!
  Identificatore – numero che identifica univocamente il file nel
sistema!
  Tipo – necessario se il sistema usa tipi di file differenti!
  Locazione – puntatore alla posizione del file nel dispositivo su cui
risiede!
  Taglia – dimensione attuale del file!
  Protezione – per controllare chi puo’ leggere scrivere o eseguire il
file!
  Tempi di accesso e identificativi utente – dati necessari per la
protezione ed il monitoraggio!
!
Informazioni collegate alla struttura delle directory!
Operating System Concepts – 7th Edition!
10.5!
Silberschatz, Galvin and Gagne ©2005!
Operating System Concepts – 7th Edition!
Operazioni sui File!
10.6!
Silberschatz, Galvin and Gagne ©2005!
Strutture dati per un file aperto!
  File: tipo di dato astratto!
!
  Creazione!
!!
!
  Scrittura!
 
Tavole dei file aperti (livello di Processo e di Sistema)!
 
Puntatore al File (offset): posizione dell’ultima scrittura/lettura !
 
Contatore delle aperture: volte che il file è stato aperto nella
sessione di lavoro. !
 
Posizione del file su disco: informazioni per I/O!
 
Permessi di accesso (per ogni processo che apre il file)!
  Lettura!
  Spostarsi all’interno di un file!
  Cancellazione!
  Troncamento!
  Open(Fi) – cerca nella struttura delle directory per l’elemento Fi, e
ne sposta il contenuto in memoria!
  Se
  Close (Fi) – muove I dati relativi all’elemento Fi dalla memoria al
disco, compatibilmente alla struttura delle directory!
Operating System Concepts – 7th Edition!
10.7!
Silberschatz, Galvin and Gagne ©2005!
0 può essere eliminato dalla tavola dei file aperti!
Operating System Concepts – 7th Edition!
10.8!
Silberschatz, Galvin and Gagne ©2005!
File Locking!
Metodi di Accesso!
  Operazione fornita da alcuni SO e file system!
  Accesso Sequenziale!
  Gestisce l’accesso ai file!
  Puo’ essere obbligatorio o consigliato:!
 
 
obbligatorio – l’accesso viene negato se il file e’ stato
bloccato (locked)!
consigliato – I processi possono verificare lo stato del lock
prima di procedere all’accesso!
Operating System Concepts – 7th Edition!
10.9!
Silberschatz, Galvin and Gagne ©2005!
Accesso Sequenziale!
!
!
!
!
!read next!
!write next !
!reset!
!!
!
Accesso Diretto (random)!
!
!read n!
!
!write n!
!
!position to n!
!
!
!read next!
!
!
!write next !
!
!rewrite n!
!n = numero di blocchi, relativo alla posizione attuale!
Operating System Concepts – 7th Edition!
10.10!
Silberschatz, Galvin and Gagne ©2005!
Simulazione di Accesso Sequenziale su un file ad
Accesso Diretto!
Simulazione di accesso diretto con accesso sequenziale!
!
!possibile ma inefficiente!
!
Operating System Concepts – 7th Edition!
10.11!
Silberschatz, Galvin and Gagne ©2005!
Operating System Concepts – 7th Edition!
10.12!
Silberschatz, Galvin and Gagne ©2005!
Accesso mediante Indicizzazione!
I File sono organizzati in Directory!
  Una collezione di nodi contenenti informazioni su tutti i file!
Directory!
File!
F 1!
F 2!
F 3!
F 4!
F n!
Operating System Concepts – 7th Edition!
10.13!
Silberschatz, Galvin and Gagne ©2005!
Tipica Organizzazione del File-system!
Operating System Concepts – 7th Edition!
10.14!
Silberschatz, Galvin and Gagne ©2005!
Operazioni sulle Directory!
  Ricercare un file per nome!
  Creare di un nuovo nome e/o file!
  Cancellare di un nome e/o file!
  Ottenere la lista dei file nella directory!
  Cambiare nome/riferimento ad un file!
  Attraversare il file system!
Operating System Concepts – 7th Edition!
10.15!
Silberschatz, Galvin and Gagne ©2005!
Operating System Concepts – 7th Edition!
10.16!
Silberschatz, Galvin and Gagne ©2005!
L’Organizzazione delle directory determina!
Directory a livello singolo!
  Un’unica directory per tutti gli utenti!
!
  Efficienza – localizzazione veloce dei file!
  Regole sui nomi – convenienza per gli utenti!
 
Due utenti possono usare lo stesso nome di file!
 
Lo stesso file puo’ avere diversi nomi!
  Condivisione e Protezione dei file!
Problemi:!
!nomi devono essere univoci
!organizzazione in gruppi omogenei!
Operating System Concepts – 7th Edition!
10.17!
Silberschatz, Galvin and Gagne ©2005!
Directory a 2 livelli!
Operating System Concepts – 7th Edition!
10.18!
Silberschatz, Galvin and Gagne ©2005!
Directory con struttura ad albero!
  Una directory per ogni utente!
  Ogni utente ha una directory mono-livello privata!
  E’ possibile avere lo stesso nome usato da piu’ utenti!
  Ricerca piu’ efficiente!
  Gestione della condivisione poco agevole!
Operating System Concepts – 7th Edition!
10.19!
Silberschatz, Galvin and Gagne ©2005!
Operating System Concepts – 7th Edition!
10.20!
Silberschatz, Galvin and Gagne ©2005!
Directory con struttura ad albero (Cont)!
  Ricerca Efficiente
Directory a grafo aciclico!
  Possibilità di sottodirectory e file condivisi!
!
  Univocità dei pathname e libertà di denominazione
!
  Directory Corrente (directory di lavoro)!
 
cd /spell/mail/prog!
 
cd mail!
  Path name assoluto e relativo!
Operating System Concepts – 7th Edition!
10.21!
Silberschatz, Galvin and Gagne ©2005!
Directory a grafo aciclico (Cont.)!
Operating System Concepts – 7th Edition!
10.22!
Silberschatz, Galvin and Gagne ©2005!
Directory a grafo generico!
  Due nomi diversi allo stesso elemento !
  Se si cancella dict/w/list ⇒ puntatori morti!
!Solutions:!
 
Puntatori all’indietro, così da cancellare tutti i puntatori ad un
elemento eliminato
Tali puntatori avrebbero dimensione variabile!
 
Soluzione: mantenere semplicemente un contatore!
  Nuovo tipo di elemento della directory!
 
Link – un nuovo nome (puntatore) per un file già esistente!
 
Risoluzione del link – seguire il puntatore per localizzare il file!
Operating System Concepts – 7th Edition!
10.23!
Silberschatz, Galvin and Gagne ©2005!
Operating System Concepts – 7th Edition!
10.24!
Silberschatz, Galvin and Gagne ©2005!
Directory a grafo generico (Cont.)!
  Come garantire l’assenza di cicli?!
 
Montaggio del File System!
  Un sistema può avere più file system nella struttura
delle directory!
Permettere solo link a file e non a directory!
 
Garbage collection!
  Un file system deve essere montato (collegato) prima
 
Ad ogni aggiunta di un nuovo link usa un algoritmo di
identificazione dei cicli!
  La locazione dove un file system viene collegato alla
Operating System Concepts – 7th Edition!
10.25!
Silberschatz, Galvin and Gagne ©2005!
che sia possibile accedervi!
struttura delle directory prende il nome di mount point!
Operating System Concepts – 7th Edition!
(a) Esistente. (b) Partizione non montata!
Operating System Concepts – 7th Edition!
10.27!
Silberschatz, Galvin and Gagne ©2005!
10.26!
Silberschatz, Galvin and Gagne ©2005!
Mount Point!
Operating System Concepts – 7th Edition!
10.28!
Silberschatz, Galvin and Gagne ©2005!
Protezione!
Liste di Accesso e Gruppi!
  Il creatore/possessore del File dovrebbe poter decidere:!
 
Le azioni possibili sul file!
 
E da chi esse sono effettuabili!
  Modalita’ di accesso: lettura (Read), scrittura (Write), esecuzione
(eXecute)!
  3 classi di utenti!
!
!
!
!a) owner/user access
!
!b) group access
!
!c) public/others access
!
!
!
  Tipi di accesso ad un file!
 
lettura!
 
Scrittura!
 
esecuzione!
 
aggiunta in calce!
 
Cancellazione!
 
lista del contenuto (tipico per file di tipo directory)!
!
!⇒
!
!⇒
!
!⇒
!RWX!
!1 1 1
!RWX!
!1 1 0!
!RWX!
!0 0 1!
  Possibilità di creare gruppi (con nome univoco), es. G, e aggiungervi utenti.!
  Per un dato file (es. game) o subdirectory, si puo’ definire l’accesso per un
dato gruppo di utenti.!
owner!
group!
chmod! 761!
Collegare un gruppo ad un file
chgrp
Operating System Concepts – 7th Edition!
!
!7
!
!6
!
!1
10.29!
Silberschatz, Galvin and Gagne ©2005!
Operating System Concepts – 7th Edition!
UNIX Directory - Ls!
G
public!
game!
game
Silberschatz, Galvin and Gagne ©2005!
10.30!
Regole di accesso per i processi!
  Identificativi per un processo P (es. UNIX)!
 
 
Real User/Group ID uid(P) !
Effective User/Group euid(P)!
  Identificativi per un file F!
 
 
Utente proprietario
Gruppo principale
own(F)!
grp(F)
!!
!
Operating System Concepts – 7th Edition!
10.31!
Silberschatz, Galvin and Gagne ©2005!
Un processo P accede al file F in lettura se !
!
!a) euid(P) = own(F) !
!b) F ha i permessi di lettura per il proprietario!
!
!
L’esistenza di Effective UID permette ad utenti di eseguire comandi
con permessi di accesso da superutente!
!
Silberschatz, Galvin and Gagne ©2005!
Operating System Concepts – 7 Edition!
10.32!
!
th
Directory con struttura ad albero (Cont)!
Fine
Prossima lezione: implementazione del
file system!
  Path name assoluto e relativo!
  Creazione di un nuovo file avviene nella directory corrente!
  Cancellazione!
!
!rm <file-name>!
  Creazione di una nuova directory avviene in quella corrente!
!
!mkdir <dir-name>!
!Example: directory corrente /mail!
!
!mkdir count!
mail!
prog! copy! prt! exp! count!
Cancellando “mail” ⇒ cancella l’intero sottoalbero con radice
in “mail”!
Operating System Concepts – 7th Edition!
10.33!
Silberschatz, Galvin and Gagne ©2005!
Operating System Concepts – 7th Edition!
10.34!
Silberschatz, Galvin and Gagne ©2005!