interfaccia del file system. sistemi operativi a.a. 2007-08 10.2 interfaccia del file system...
TRANSCRIPT
Interfaccia del File SystemInterfaccia del File System
Sistemi Operativi a.a. 2007-0810.2
Interfaccia del file systemInterfaccia del file system
Concetto di file
Modalità di accesso
Struttura delle directory
Unix come caso di studio
Montaggio di un file system
Condivisione di file
Protezione
Sistemi Operativi a.a. 2007-0810.3
FileFileSpazio di indirizzi logici contigui; è un insieme di informazioni correlate e registrate nella memoria secondaria, a cui è stato assegnato un nomeDal punto di vista dell’utente...
...è la più piccola porzione di memoria secondaria indirizzabile logicamentei dati possono essere scritti nella memoria secondaria soltanto all’interno di un file
Dal punto di vista del SO......i file vengono mappati su dispositivi fisici di memorizzazione non volatili
Tipi: Dati
Numerici, alfanumerici, binariProgrammi
Sistemi Operativi a.a. 2007-0810.4
Struttura dei fileStruttura dei fileNessuna sequenza di parole o byte
Struttura a record semplice
Linee
Record a lunghezza fissa
Record a lunghezza variabile
Struttura complessa
Documento formattato
File rilocabile
Si possono simulare i tipi di file complessi con file a struttura semplice, tramite utilizzo di appropriati caratteri di controllo
Chi decide:
Il sistema operativo
Il programma
Sistemi Operativi a.a. 2007-0810.5
Attributi dei fileAttributi dei fileNomeNome: identificativo del file (unico attributo “in chiaro”)
IdentificativoIdentificativo: etichetta unica (numero progressivo) che identifica il file all’interno del file system
TipoTipo: necessario per sistemi che supportano tipi differenti
LocazioneLocazione: puntatore al dispositivo ed alla posizione del file sul dispositivo
DimensioneDimensione: dimensione attuale del file
ProtezioneProtezione: parametri di controllo per l’accesso in lettura, scrittura ed esecuzione del file
OraOra, datadata e identificazione dell’utenteidentificazione dell’utente: dati necessari alla sicurezza del sistema e per il controllo d’uso
Le informazioni sui file sono conservate nella struttura di directorydirectory, che risiede sulla memoria secondaria
Sistemi Operativi a.a. 2007-0810.6
File systemFile systemIl file systemfile system è responsabile della gestione dei file in memoria di massa
struttura i dati in file...
...li organizza in directory (o cartelle)
fornisce all’utente un insieme di funzioni di alto livello per operare su di essi, mascherando le operazioni che vengono realmente effettuate per allocare la memoria di massa e per accedervi in lettura/scrittura
Il file system garantisce una gestione dei file indipendente dalle caratteristiche fisiche dei dispositivi che costituiscono la memoria di massa: astrazione utile sia per l’utente sia per i programmi
Sistemi Operativi a.a. 2007-0810.7
Operazioni sui file Operazioni sui file 1 1
Un file è un tipo di dato astrattotipo di dato astratto su cui sono definite le operazioni di:
CreazioneCreazione
ScritturaScrittura
LetturaLettura
Posizionamento nel file Posizionamento nel file file seekfile seek
CancellazioneCancellazione
TroncamentoTroncamento
Impostazione degli attributiImpostazione degli attributi
Sistemi Operativi a.a. 2007-0810.8
Operazioni sui file Operazioni sui file 2 2
Creazione Creazione Reperire lo spazio per memorizzare il file all’interno del file system
Creare un nuovo elemento nella directory in cui registrare nome del file, posizione nel file system, altre informazioni
ScritturaScritturaChiamata al sistema con nome del file e dati da scrivere come parametri
Reperimento del file nel file system
Scrittura dei dati nella posizione indicata dal puntatore di scritturapuntatore di scrittura e aggiornamento del contatore
Sistemi Operativi a.a. 2007-0810.9
Operazioni sui file Operazioni sui file 3 3LetturaLettura
Chiamata al sistema con il nome del file come parametro
Reperimento del file nel file system
Lettura dei dati nella posizione indicata dal puntatore di letturapuntatore di lettura e aggiornamento del contatore
Di solito si mantiene un solo puntatore alla puntatore alla posizione corrente nel fileposizione corrente nel file, che serve sia per effettuare operazioni di lettura che di scrittura
Posizionamento nel filePosizionamento nel fileReperimento del file nel file system
Aggiornamento del puntatore alla posizione corrente
Nessuna operazione di I/O
Sistemi Operativi a.a. 2007-0810.10
Operazioni sui file Operazioni sui file 4 4
CancellazioneCancellazione
Reperimento del file nel file system
Si rilascia lo spazio allocato al file e si elimina il corrispondente elemento della directory
TroncamentoTroncamento
Cancellazione del contenuto del file, che mantiene immutati tutti gli attributi (esclusa la dimensione)
Si rilascia lo spazio allocato al file
Altre operazioni sui file si ottengono mediante opportune combinazioni delle operazioni di base
Sistemi Operativi a.a. 2007-0810.11
Operazioni sui file Operazioni sui file 5 5
Esempio:Esempio: operazione dioperazione di copiacopia
Creazione di un nuovo file
Lettura del file da copiare
Scrittura nel nuovo file
Quasi tutte le operazioni su file richiedono una ricerca dell’elemento associato al file all’interno della struttura delle directory Occorre “aprire” il file prima di qualsiasi accesso
Il SO mantiene in memoria centrale una tabella contenente informazioni su tutti i file aperti: la tabella dei file aperti tabella dei file aperti
Sistemi Operativi a.a. 2007-0810.12
Operazioni sui file Operazioni sui file 6 6Quando si richiede un’operazione su file, si ricercano le informazioni relative reperendole, tramite un indice, nella tabella dei file aperti
Inoltre, quando il file non è più in uso attivo deve essere chiuso ed il SO rimuove l’elemento relativo nella tabella dei file aperti
Le chiamate di sistema per aprire e chiudere i file sono:
openopen ((FFii )) ricerca nella struttura di directory sul disco l’elemento Fi , e ne copia il contenuto nella tabella dei file aperti (in memoria centrale); riporta un puntatore all’elemento nella tabella
closeclose ((FFii )) copia il contenuto dell’elemento Fi , attualmente residente in memoria principale, nella struttura di directory sul disco
Sistemi Operativi a.a. 2007-0810.13
File aperti File aperti 1 1Nei sistemi multiutente, due livelli di tabelle:
Tabella di sistemaTabella di sistemaRiferimenti a tutti i file aperti nel sistema
Posizione del file nel disco
Dimensione del file
Date di ultimo accesso/ultima modifica
Contatore di aperture
Tabella associata al processoTabella associata al processoRiferimenti a tutti i file aperti dal processo
Puntatore alla posizione corrente nel file
Diritti di accesso e informazioni di contabilizzazione
Gli elementi della tabella dei file associata al processo puntano al relativo elemento contenuto nella tabella di sistema
Sistemi Operativi a.a. 2007-0810.14
File aperti File aperti 2 2In particolare…
Puntatore a file Puntatore a file puntatore all’ultima locazione dove è stata realizzata un’operazione di lettura/scrittura per ogni processo che ha aperto il file (contenuto nella tabella dei file aperti associata al processo)
Contatore di aperture Contatore di aperture conta il numero di processi che hanno aperto il file, per rimuovere opportunamente i dati dalla tabella dei file aperti alla chiusura del file da parte dell’ultimo processo
Locazione del file su discoLocazione del file su disco cache delle informazioni di accesso ai dati permanenti
Diritti di accesso Diritti di accesso controllati dal SO per permettere o negare le operazioni di I/O richieste (contenuti nel tabella dei file aperti associata al processo)
Sistemi Operativi a.a. 2007-0810.15
Lock dei file apertiLock dei file aperti
Garantito da alcuni sistemi operativi e realizzazioni del file system
Offre una mediazione per l’accesso a file
Obbligatorio o consigliato:ObbligatorioObbligatorio l’accesso a file viene negato se il lock è già stato acquisito da altro processo
ConsigliatoConsigliato i processi trovano che lo stato di un dato file è “bloccato” e decidono sul da farsi
Se il lock è obbligatorio, il SO assicura l’integrità dei dati soggetti a lock; se il lock è consigliato, è compito del programmatore garantire la corretta acquisizione e cessione dei lock
Sistemi Operativi a.a. 2007-0810.16
Tipi di file Tipi di file nome, estensione nome, estensione
Un SO che riconosce il tipo di un file può manipolare il file in modo “ragionevole”
ESEMPI:ESEMPI:
In MS–DOSMS–DOS possono essere eseguiti solo file con estensione .COM, .EXE, .BAT
Nei sistemi Apple MacintoshApple Macintosh e nelle nuove versioni di MS MS WindowsWindows ciascun file possiede un attributo di creazione contenente il nome del programma che lo ha creato
UNIXUNIX memorizza un magic magic numbernumber per indicare il tipo di file; usa le estensioni solo come suggerimento, non vengono imposte né dipendono dal SO
Sistemi Operativi a.a. 2007-0810.17
Modalità di accessoModalità di accesso
read nextread nextwrite next write next resetresetno read after last writeno read after last write ((rewriterewrite))
Accesso sequenzialeAccesso sequenziale: È un modello di accesso a file che si “ispira” al nastro; utilizzato da compilatori e editor
Impossibilità di lettura oltre l’ultima posizione scritta; la scrittura aggiunge informazioni in fondo al file
Accesso direttoAccesso diretto: È un modello di accesso a file che si “ispira” al disco
read nread nwrite nwrite nposition to nposition to n read nextread next write next write next rewrite nrewrite nn = numero di blocco
relativo
Sistemi Operativi a.a. 2007-0810.18
Accesso sequenzialeAccesso sequenzialeFile ad accesso sequenziale
Simulazione di accesso sequenziale su file ad accesso diretto
Sistemi Operativi a.a. 2007-0810.19
Modalità di accesso (Cont.)Modalità di accesso (Cont.)Accesso indicizzatoAccesso indicizzato: può essere realizzato sulla base del metodo ad accesso diretto; implica la costruzione di un file indicefile indice per l’accesso a file
L’indice contiene puntatori ai vari blocchi; per reperire un elemento del file occorre prima cercare nell’indice l’elemento corrispondente e utilizzare il puntatore in esso contenuto per accedere ai dati
Sistemi Operativi a.a. 2007-0810.20
Struttura delle directoryStruttura delle directoryIl disco è suddiviso in partizioni o volumi; ciascuna partizione ha una directory di dispositivodirectory di dispositivo che contiene informazioni su tutti i fileSia la struttura di directory che i file risiedono su discoLa directory può essere considerata come una tabella di simboli che traduce i nomi dei file nelle modalità di accesso alle informazioni in essi contenute
F1F2 F3
F4
Fn
Directory
File
Sistemi Operativi a.a. 2007-0810.21
Tipiche organizzazioni di file Tipiche organizzazioni di file systemsystem
Partizioni multiple Partizione singola
Sistemi Operativi a.a. 2007-0810.22
Informazioni contenute in una Informazioni contenute in una directory directory
Operazioni sulle directoryOperazioni sulle directory
Informazioni Informazioni Nome
Tipo
Indirizzo
Lunghezza attuale
Lunghezza massima
Data ultimo accesso
Data ultima modifica
ID del proprietario
Informazioni di protezione
Operazioni Operazioni Ricerca di un fileCreazione di un file Cancellazione di un fileElenco dei contenuti di una directoryRidenominazione di un fileAttraversamento del file system
Sistemi Operativi a.a. 2007-0810.23
RicercaRicerca Possibilità di scorrere la directory per reperire l’elemento associato ad un particolare file
I file hanno nomi simbolici
Nomi simili possono corrispondere a relazioni logiche fra i contenuti dei file
Capacità di reperire tutti i file il cui nome soddisfi una particolare espressione
Elenco dei contenuti di una directoryElenco dei contenuti di una directory Possibilità di elencare tutti i file di una directory ed il contenuto degli elementi della directory associati ai file
Ridenominazione di fileRidenominazione di file Possibilità di modificare il nome di un file che dovrebbe essere significativo del contenuto a fronte di cambiamenti di contenuto o uso del file
Operazioni sulle directoryOperazioni sulle directory
Sistemi Operativi a.a. 2007-0810.24
L’organizzazione della struttura di directory deve garantire…
EfficienzaEfficienza capacità di reperire file rapidamente
NominazioneNominazione conveniente per gli utenti
• Due utenti possono utilizzare nomi uguali per Due utenti possono utilizzare nomi uguali per file diversifile diversi
• Lo stesso file può avere diversi nomiLo stesso file può avere diversi nomi
GroupingGrouping Raggruppamento dei file sulla base di proprietà logiche (ad esempio, tutti i programmi Java, tutti i giochi, etc.)
Come organizzare una directory?Come organizzare una directory?
Sistemi Operativi a.a. 2007-0810.25
Directory monolivelloDirectory monolivello
Una directory unica per tutti gli utenti
Problemi di nominazione: occorre scegliere un nome diverso per ogni file
Nessun raggruppamento logico
Sistemi Operativi a.a. 2007-0810.26
Directory a due livelli Directory a due livelli 1 1Directory separate per ciascun utente
Ammessi nomi uguali per file di utenti diversi
Ricerca efficiente
Nessuna capacità di raggruppamento logico (se non in base ai proprietari)
Nome di percorso permette ad un utente di vedere i file degli altri utenti
Sistemi Operativi a.a. 2007-0810.27
Directory a due livelli Directory a due livelli 2 2Quando si apre la sessione di lavoro si ricerca nella MFD (Master File Directory) l’identificativo dell’utente, che viene ammesso al sistema all’interno della propria UFD (User File Directory)
Ogni riferimento a file da parte dell’utente viene interpretato dal SO come esclusivamente correlato ai file presenti nella relativa UFD
Per riferirsi a file di altri utenti, se l’accesso è autorizzato, ogni utente deve utilizzare il pathname completo del file (nome utente, nome file)
I file di sistema vengono raccolti in opportune directory raggiungibili da tutti gli utenti
Sistemi Operativi a.a. 2007-0810.28
Directory con struttura ad albero Directory con struttura ad albero 11
Ricerca efficiente
Capacità di raggruppamento logico
Directory corrente (o directory di lavoro)
Sistemi Operativi a.a. 2007-0810.29
Pathname (percorso) assolutoassoluto o relativorelativo
La creazione di un nuovo file o la cancellazione di un file esistente viene effettuata nella directory corrente
La creazione di una nuova directory viene interpretata come la creazione di una sottodirectory della directory corrente
Cancellazione di una directory
Solo se vuota (MSDOS)
Anche se contenente file e sottodirectory (es.: rm rm –r–r, in UNIX)
Directory con struttura ad albero Directory con struttura ad albero 22
Sistemi Operativi a.a. 2007-0810.30
Directory a grafo aciclico Directory a grafo aciclico 1 1Presenza di file e sottodirectory condivisi
AliasingAliasing due o più nomi diversi possono venir utilizzati per identificare lo stesso oggetto (file o directory)
Nella di directory, la condivisione può essere implementata per mezzo di link link o per duplicazione
Se dictdict cancella ww // listlist puntatore errato
Sistemi Operativi a.a. 2007-0810.31
Soluzioni:Soluzioni:
Puntatori all’indietro che permettano il reperimento di tutti i link al file cancellato e la loro eliminazione
Conservazione del file fino a che non esistano più link
Lista dei riferimenti a file: record di lunghezza variabile
È sufficiente mantenere il numero di riferimenti: quando il contatore è 0 il file può essere cancellato
Nuovi “oggetti” contenuti nelle directory e operazioni correlate
LinkLink un nome diverso (un puntatore) per un file già esistente
Risolvere un linkRisolvere un link seguire il puntatore corrispondente per reperire il file
Directory a grafo aciclico Directory a grafo aciclico 2 2
Sistemi Operativi a.a. 2007-0810.32
Directory a grafo generale Directory a grafo generale 1 1
Sistemi Operativi a.a. 2007-0810.33
Come garantire l’assenza di cicli?
Sono ammessi link a file, ma non a sottodirectory
Garbage collectionGarbage collection si attraversa il file system, marcando i file accessibili; in un secondo passaggio, si rimuovono i file non marcati
Ogni volta che viene aggiunto un nuovo link, si verifica la presenza di cicli, mediante uso di un algoritmo di rilevamento
Directory a grafo generale Directory a grafo generale 2 2
Sistemi Operativi a.a. 2007-0810.34
UNIX UNIX 1 1
I file e le directory possono appartenere a più directory, a costituire strutture a grafo generalegrafo generale
Varie directory ospitano programmi di sistema (per es.: devdev contiene i device driver, binbin il codice eseguibile, includeinclude le librerie di sistema, etc.)
A ciascun utente è associata una directory, detta home directoryhome directory
• Le home directory sono normalmente sotto-directory della usr usr (o della home home)
• I file creati dall’utente sono contenuti nella home o in sottodirectory della home
Sistemi Operativi a.a. 2007-0810.35
UNIX UNIX 2 2
Il file system di UNIX
Sistemi Operativi a.a. 2007-0810.36
Ciascun file viene identificato da un pathnamepathname che include l’intero cammino, dalla radice dell’albero al file stesso
Tutti i file e sottodirectory presenti nella stessa directory devono avere nomi distinti ciascun pathname è unico
Il nome completo del file art.html è:
/users/jen/pers/art.html/users/jen/pers/art.html
UNIX UNIX 3 3
Sistemi Operativi a.a. 2007-0810.37
Un utente che interagisce con il file system ha un proprio contesto, cioè una specifica posizione nel file system, corrispondente ad un nodo nel grafoPer default, all’atto del collegamento al sistema, il contesto dell’utente è costituito dalla sua home directoryIl contesto può essere variato, muovendosi ovunque nell’albero delle directory (almeno in quelle accessibili all’utente)Nell’esprimere il nome di un file o di una directory si può omettere di specificare la stringa corrispondente al contesto corrente
UNIX UNIX 4 4
Sistemi Operativi a.a. 2007-0810.38
Il simbolo “.” fa riferimento al contesto corrente
Il simbolo “..” fa riferimento alla directory immediatamente superiore al contesto corrente
EsempioEsempio: se il contesto corrente è la directory usersusers, il file [...][...]/users/sniffers/private.html/users/sniffers/private.html può essere identificato con sniffers/private.htmlsniffers/private.html oppure con ./sniffers/private.html./sniffers/private.html
UNIX UNIX 5 5
Sistemi Operativi a.a. 2007-0810.39
Comandi per la manipolazione di file e directory:
chmodchmod stabilisce i parametri di protezione del file
chownchown cambia il proprietario di un file
cmpcmp confronta byte a byte due file
cpcp copia un file in un altro (situato in altra directory, o nella stessa, ma con nome diverso)
findfind trova file per nome o per altre caratteristiche
grepgrep ricerca un file attraverso una stringa in esso contenuta
lnln crea un link
moremore visualizza il contenuto di un file (su terminale, per default)
mvmv muove un file (serve anche per rinominarlo)
rmrm cancella un file
UNIX UNIX 6 6
Sistemi Operativi a.a. 2007-0810.40
Comandi per la manipolazione di file e directory:
mkdirmkdir crea una directory
cdcd cambia il contesto
lsls elenca i file e le sottodirectory contenute in una directory
pwdpwd mostra il pathname della directory corrente
rmdirrmdir rimuove una directory
mountmount monta un file system
manman per consultare l’help in linea
UNIX UNIX 7 7
Sistemi Operativi a.a. 2007-0810.41
Esempio:Esempio: se la directory corrente è /mail/mail, il comando mkdir count mkdir count
produce…
Cancellando /mail/mail viene cancellato l’intero sottoalbero che ha /mail/mail per radice
UNIX UNIX 8 8
prog copy prt exp count
Sistemi Operativi a.a. 2007-0810.42
Un hardlinkhardlink è un’etichetta o un nome assegnato ad un file
Si possono avere nomi distinti che identificano lo stesso file (per esempio in directory diverse)
I comandi eseguiti relativamente ad uno qualsiasi dei nomi di un file operano sugli stessi “contenuti”
ln oldfile newlinkln oldfile newlink
crea un nuovo elemento nella directory di lavoro, newlinknewlink, che è comunque correlato ai contenuti del file oldfileoldfile (non rappresenta una copia di oldfileoldfile)
Qualsiasi cambiamento effettuato su oldfileoldfile si manifesta anche su newlinknewlink
Il comando rmrm può essere utilizzato anche per rimuovere un hardlink
Dopo la rimozione del link il contenuto del file viene comunque mantenuto (fino a che c’è almeno un nome che si riferisce a quel file)
UNIX UNIX 9 9
Sistemi Operativi a.a. 2007-0810.43
Un link simbolico o softlinksoftlink è un tipo speciale di file che punta ad un altro file
Diversamente dagli hardlink, non contiene i dati relativi al target file, semplicemente punta ad un diverso elemento di directory da qualche parte nel file system
All’atto della cancellazione del file, i softlink divengono inutilizzabili, mentre gli hardlink preservano (fino a quando ne esiste almeno uno) il contenuto del file
Per creare un link simbolico:
ln -s source_file myfileln -s source_file myfile
UNIX UNIX 10 10
Sistemi Operativi a.a. 2007-0810.44
Protezione in UNIX Protezione in UNIX 1 1Quando crea un file, l’utente specifica la protezioneprotezione da applicare ad esso, ossia indica quali operazioni possono essere eseguite da ciascun utente sul fileIn UNIX:
Tipi di accesso: lettura, scrittura, esecuzione, append (scrittura in coda), cancellazione, lista degli attributiModo di accesso: read, write, executeTre classi di utenti: user, group, allEsempio:Esempio: il file game.exegame.exe con diritti di accesso
RWX a) accesso del proprietarioaccesso del proprietario 7 1 1 1
RWX b) accesso del gruppoaccesso del gruppo 5 1 0 1
RWX c) accesso pubblicoaccesso pubblico 1 0 0 1
user group all
chmodchmod 751 game.exe
può essere letto, scritto ed eseguito dal legittimo proprietario, letto ed eseguito dagli utenti del suo gruppo, solo eseguito da tutti gli altri utenti del sistema
Sistemi Operativi a.a. 2007-0810.45
Protezione in UNIX Protezione in UNIX 2 2Come per i file, a ciascuna directory sono associati tre campi (proprietario, gruppo e universo), ciascuno composto dai tre bit rwx
Un utente può elencare il contenuto di una directory solo se il bit r è inserito nel campo appropriato, può modificarne il contenuto solo se è impostato il bit w, e può accedervi se è impostato x
Sistemi Operativi a.a. 2007-0810.46
Montaggio di un file system Montaggio di un file system 1 1Un file system deve essere montatomontato prima di poter essere acceduto dai processi di un sistema
Un file system unmountedunmounted può essere montato ad un mount pointmount point prescelto
Procedura di montaggio
Si fornisce al SO il nome del dispositivo da montare (sotto forma di volume e pathname) e la locazione che dovrà assumere nella struttura del file system (punto di montaggiopunto di montaggio)
Di solito, il punto di montaggio è una directory vuota cui sarà agganciato il file system che deve essere montato
Sistemi Operativi a.a. 2007-0810.47
Montaggio di un file systemMontaggio di un file system 2 2Esempio: Esempio:
Se si effettua il montaggio su /users/users del file system in figura (b) identificato, per esempio, da /device/usr/device/usr, le home degli utenti billbill e fredfred (e sottodirectory) diventano inaccessibili
/users/users è il è il mount pointmount pointFile system File system unmountedunmountedFile system esistenteFile system esistente
Sistemi Operativi a.a. 2007-0810.48
Condivisione di fileCondivisione di fileLa condivisione di file è particolarmente utile nei sistemi multiutente, per permettere la collaborazione fra utenti e per ridurre le risorse richieste per raggiungere un certo obiettivo di calcolo
Tuttavia, la condivisione non può prescindere da uno schema di protezione che garantisca un controllo di accesso ai file mediato dal SO
Nei sistemi distribuiti, i file vengono condivisi attraverso una rete
Il Network File SystemNetwork File System (NFS) è un metodo molto diffuso (originariamente implementato in ambiente UNIX) per realizzare la condivisione di file in ambienti distribuiti
Sistemi Operativi a.a. 2007-0810.49
File sharing in ambiente File sharing in ambiente multiutentemultiutente
Il modello più diffuso è legato al concetto di proprietarioproprietario di un file e di gruppogruppo di utenti a cui il proprietario è “affiliato”
Il proprietario è l’utente che ha creato il file e che può cambiare gli attributi del file (o della directory)
L’attributo di gruppo si usa per definire il sottoinsieme di utenti autorizzati a condividere l’accesso a file
Gli identificatori del gruppo (GroupID) e del proprietario (UserID) di un dato file o directory sono memorizzati come attributi del file
Sistemi Operativi a.a. 2007-0810.50
File system remoti File system remoti 1 1
Uso della rete per ottenere l’accesso a file residenti su sistemi remoti
Trasferimento richiesto esplicitamente (anonimo o autenticato) via protocollo FTP
File system distribuito, che permette la visibilità e l’accesso (automatico) dal calcolatore locale di directory remote
Accesso tramite browser (semiautomatico) attraverso il World Wide Web (l’FTP anonimo non è esplicito, ma “nascosto” da un wrapperwrapper, nell’operazione di download)
Sistemi Operativi a.a. 2007-0810.51
File system remoti File system remoti 2 2Nel modello clientmodello clientserverserver, il server mette a disposizione risorse (sotto forma di directory e file) ai client che ne fanno richiesta
Modello moltiamolti: un server può gestire richieste provenienti da più client, il client può accedere a più server
Problemi di autenticazione
Protocolli insicuri che possono condurre a spoofingspoofing
Sicurezza ottenuta mediante autenticazione reciproca di client e server tramite chiavi di cifratura
Nuovi problemi:Nuovi problemi: compatibilità fra client e server (relativamente all’algoritmo di cifratura), scambio sicuro delle chiavi
Sistemi Operativi a.a. 2007-0810.52
File system remoti File system remoti 3 3NFSNFS è il protocollo clientserver standard nei sistemi UNIX
Gli UserID devono coincidere nel client e nel server
Dopo il montaggio del file system remoto, le richieste di accesso a file vengono inviate al server attraverso la rete
Il server applica i normali controlli di accesso e, qualora producano un risultato positivo, restituisce un file handlefile handle al client, che lo usa per eseguire le successive operazioni su file
CIFSCIFS (Common Internet File SystemCommon Internet File System) è invece il protocollo standard per Windows
Le chiamate di sistema locali vengono tradotte in chiamate (per gli stessi servizi) su file system remoti
Sistemi Operativi a.a. 2007-0810.53
File system remoti File system remoti 4 4
Sistemi informativi distribuitiSistemi informativi distribuiti Presuppongono un protocollo di nominazione uniforme (Domain Name SystemDomain Name System, DNSDNS) per le macchine che accedono al sistema
NISNIS, Network Information ServiceNetwork Information Service: centralizza le informazioni relative a calcolatori e utenti
Metodo di autenticazione insicuro, basato su password trasmesse in chiaro
LDAPLDAP, Lightweight DirectoryLightweight DirectoryAccess ProtocolAccess Protocol, prevede un unico punto di accesso sicuro per gli utenti che si autenticherebbero una sola volta per avere accesso a tutti i servizi distribuiti
Sistemi Operativi a.a. 2007-0810.54
Malfunzionamenti Malfunzionamenti 1 1
Nei file system locali possono verificarsi malfunzionamenti dovuti a…
Problemi hardware dei dischi che li contengono
Alterazioni dei metadatimetadati (informazioni per il reperimento dei file nelle directory)
Problemi ai controllori dei dischi
Problemi ai cavi di connessione
Errori umani
Sistemi Operativi a.a. 2007-0810.55
Malfunzionamenti Malfunzionamenti 2 2
Nei file system remoti i malfunzionamenti possono avvenire anche per cadute della rete o dei server remoti sui quali sono residenti i file
Per il ripristino da malfunzionamenti è necessario mantenere alcune informazioni di stato sia sui client che sui server
Tuttavia i protocolli attualmente più diffusi, come NFS, non mantengono informazioni di stato
NFS trasferisce tutte le informazioni nella singola richiesta che si suppone legittima con alta tolleranza ai guasti ma scarsa sicurezza
Sistemi Operativi a.a. 2007-0810.56
Semantica della coerenzaSemantica della coerenzaLa semantica della coerenzasemantica della coerenza specifica quando le modifiche apportate da un utente ai dati contenuti in un file possano essere osservate da altri utenti La semantica della coerenza è direttamente correlata agli algoritmi di sincronizzazione fra processi, anche se tende ad essere meno critica a causa delle lunghe latenze e delle basse velocità di trasferimento dei dischi e della reteLa semantica UNIX impone:
che le scritture in un file aperto da un utente siano immediatamente visibili agli altri utenti che hanno aperto contemporaneamente lo stesso filela condivisione del puntatore alla posizione corrente nel file: il file ha una singola immagine e tutti gli accessi si alternano, intercalandosi, a prescindere dalla loro origine La contesa per l’immagine fisica del file determina il differimento dei processi utente
Sistemi Operativi a.a. 2007-0810.57
Protezione Protezione 1 1
La salvaguardia delle informazioni contenute in un sistema di calcolo dai danni fisici (affidabilità) e da accessi impropri (protezione) è fondamentale per l’integrità e l’usabilità del sistema
L’affidabilità è assicurata dalla ridondanzaL’affidabilità è assicurata dalla ridondanza
La protezione si ottiene mediante controllo degli La protezione si ottiene mediante controllo degli accessiaccessi
Il proprietario/creatore del file deve essere in grado di controllare
quali tipi di accesso sono leciti sul file
chi può accedere al file
Sistemi Operativi a.a. 2007-0810.58
Protezione Protezione 2 2
Tipi di accesso a file
LetturaLettura
ScritturaScrittura
EsecuzioneEsecuzione
AppendAppend
CancellazioneCancellazione
ElencazioneElencazione
Si rende l’accesso dipendente dall’identità dell’utente
Sistemi Operativi a.a. 2007-0810.59
Esempio: Windows XPEsempio: Windows XP
Gestione della lista di controllo degli accessi
Si vieta esplicitamente Si vieta esplicitamente all’utente Guest qualsiasi all’utente Guest qualsiasi tipo di accesso al file tipo di accesso al file 10.tex10.tex