Interfaccia del file system. Marco Cesati. Schema della lezione. Directory 1 SO Interfaccia del file system. Marco Cesati

Documenti analoghi
Lezione 11. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata.

Il Sistema Operativo Gestione del File System

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.

Il file È un insieme di informazioni: programmi. Il File System. Il file system

I file utente sistema operativo nome

Sistema Operativo (Software di base)

Il Sistema Operativo

Il file system. Il File System. Attributi del file. File

Architettura degli elaboratori Docente:

File System. Capitolo Silberschatz

Il software: Istruzioni per il computer

Sistema operativo. Interazione con il SO

Il Sistema Operativo. Informatica Sistema Operativo 1

File: definizione. Il file è la più piccola unità logica manipolabie Un file è caratterizzato principalmente da:

INDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso

I sistemi operativi. Prof. Daniele Contarino

Sistema operativo & file system 1

Il Sistema Operativo

Ogni PC, per iniziare a lavorare, ha bisogno di un sistema operativo. Infatti questo è il primo programma che viene eseguito e che permette

Parte II. Introduzione ai sistemi operativi e WindowsX. Parte II 1

Un file system nasconde la complessità dei diversi media proponendone una astrazione.

Struttura Logica del S.O:

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

Sistemi Operativi: Concetti Introduttivi

Elementi di Informatica

File System ext2. Struttura del filesystem ext2.

File e cartelle File system Software di utilità Il S.O. e le periferiche Il S.O. e la memoria

Interfaccia del file system

Realizzazione del file system. Fabio Buttussi HCI Lab Dipart. Di Matematica ed Informatica Università degli studi di Udine

IL SOFTWARE DI SISTEMA

14 Struttura della memoria secondaria Struttura del disco Struttura del disco

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO

Lena Cota Guido Corso di Informatica - II livello. File System. File e Cartelle

Sistemi di Elaborazione delle Informazioni 6 CFU. Il software di sistema

Sistemi Operativi ed interazione con HW e CAD

IL SISTEMA OPERATIVO

Architettura dei calcolatori e Software di sistema

Elena Baralis 2007 Politecnico di Torino 1

La memoria-gerarchia. Laboratorio di Informatica - Lezione 3 - parte I La memoria - La rappresentazione delle informazioni

Fondamenti di GNU/Linux

Linguaggio C: i file

Linux la gestione dei dischi

Definizione di file. Directory e file File binari e file di testo

Il sistema operativo

Stru3ura del file system

Il computer P R O F. L O R E N Z O P A R I S I

Il software di sistema

Tecnologia dell Informazione

LA MEMORIA NEL CALCOLATORE

Struttura dell elaboratore elettronico

I THREAD O PROCESSI LEGGERI

Informatica WINDOWS. Francesco Tura F. Tura

Sistema Operativo. Alma Mater Studiorum Università di Bologna - Fondamenti di Informatica T (a-k)

A confronto Linux e Microsoft. d i A g n e s e D a i d o n e

Il Sistema Operativo

Gestione risorse (Windows)

Capitolo 6 Le infrastrutture SoftWare

Informatica 10. appunti dalla lezione del 16/11/2010

Corso Propedeutico di Informatica (S.T.I.) docente: Paolo Franciosa

Informatica e Informatica di Base

File System. Sistemi operativi- AA 2015/16 1 1

Windows. La prima realizzazione di un ambiente grafico si deve alla Apple (1984) per il suo Macintosh. La gestione dei file conserva la logica del DOS

Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema

Com è fatto un computer (seconda puntata) Appunti per le classi 1 A cura del prof. Ing. Mario Catalano

Informatica di Base

Livelli del sottosistema di I/O

FILE E INDICI Architettura DBMS

Architettura hardware

Sistemi operativi. Motivazione. Tipi di software. Sistemi operativi. Un sistema operativo (SO) e un insieme di programmi che gestiscono le funzioni

Strutture dati e loro organizzazione. Gabriella Trucco

2. Strutture dei Sistemi Operativi. 2.2 Interfaccia col Sistema Operativo Interprete dei comandi

Architettura di Von Neumann

Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.

Introduzione all uso dei laboratori aka Linux basics. October 23, 2013

(1) (2) (3) (4) 11 nessuno/a (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B

Sistemi Di Elaborazione Dell informazione

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Lezione 16. Il Software di base

Il computer P R O F. L O R E N Z O P A R I S I

L hardware da solo non è sufficiente per il funzionamento dell elaboratore È necessario introdurre il software:

Computer. Com è fatto un Personal Computer.

Informatica. Informazione L Informazione è un dato, o un insieme di dati, interpretati in un determinato contesto.

3.5.1 PREPARAZ1ONE I documenti che si possono creare con la stampa unione sono: lettere, messaggi di posta elettronica, o etichette.

IL SISTEMA OPERATIVO

Fondamenti di Informatica Laurea in Ingegneria Civile e Ingegneria per l ambiente e il territorio

Informatica e Bioinformatica: Basi di Dati

I SISTEMI OPERATIVI. Insieme di programmi che implementano funzioni essenziali per l uso di un sistema elaboratore.

CORSO DI FOTOGRAFIA DIGITALE LIVELLO BASE

PROGRAMMI UTENTE INTERPRETE COMANDI FILE SYSTEM GESTIONE DELLE PERIFERICHE GESTIONE DELLA MEMORIA GESTIONE DEI PROCESSI (NUCLEO) HARDWARE

Gestione dei file. Stefano Ferrari. Università degli Studi di Milano Programmazione. anno accademico

INFORMATICA. L informatica comprende:

Il Software. Il software del PC. Il BIOS

CURRICOLO DIPARTIMENTO INFORMATICA PRIMO BIENNIO

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Costanti e Variabili

LA GESTIONE DELLA I/O

GESTIONE DELLE PERIFERICHE D INGRESSO/USCITA ARGOMENTI

Organizzazione di un SO monolitico

Il file system e l architettura delle informazioni

Dal sistema operativo all' hardware

Transcript:

Di cosa parliamo in questa lezione? Lezione 10 L interfaccia : Sistemi operativi 1 Il sistema di archiviazione 2 I file e la loro gestione 3 Le directory 12 maggio 2016 System Programming Research Group Università degli Studi di Roma Tor Vergata SO 16 10.1 SO 16 10.2 La memoria secondaria Tipologie di memoria secondaria La memoria secondaria è un sistema di memorizzazione presente nella maggior parte dei calcolatori elettronici Principali differenze rispetto alla memoria primaria: Maggiore capacità migliaia di GB contro decine di GB Persistenza dati conservati in assenza di alimentazione elettrica Prestazioni inferiori tempi di accesso e trasferimento più alti Assenza di istruzioni macchina per l accesso ai dati Dischi magnetici di grande capacità (hard disk) Dischi magnetici di piccola capacità (floppy disk) Memoria di tipo flash (tipicamente su bus USB) Dischi a stato solido (SSD) Nastri magnetici Dischi ottici (CD-ROM, DVD, Blu-ray) Sistemi di memorizzazione ridondante (RAID, Redundant Array of Independent Disks) Sistemi di memorizzazione su rete (SAN, Storage Area Network) uso di coprocessori dedicati all I/O È compito del SO: gestire in modo specifico ciascuna tipologia di hardware Le caratteristiche hardware della memoria secondaria impongono al SO l utilizzo di determinati meccanismi e politiche di gestione offrire ai programmi applicativi una visione astratta ed unificata della memoria secondaria SO 16 10.3 SO 16 10.4

I file I SO tipicamente includono un insieme di programmi dedicati alla gestione della memoria secondaria: I sistemi di archiviazione o file system semplificano la programmazione degli accessi al disco tramite astrazioni quali file e directory consentono l accesso trasparente a file di tipo predefinito gestiscono i dispositivi di memoria secondaria assegnando e rilasciando spazio disco sulla base delle operazioni richieste dalle applicazioni in esecuzione implementano meccanismi di protezione e sicurezza per l accesso ai file da parte degli utenti realizzano in modo automatico e trasparente copie di sicurezza (backup) dei dati Ciascun SO definisce un proprio sistema di archiviazione nativo, ma è generalmente in grado di utilizzare anche dispositivi basati su file system di SO differenti Un file (archivio) è un insieme di informazioni correlate tra loro individuato da un nome unico all interno del sistema Un file è tipicamente (ma non necessariamente) registrato in memoria secondaria persistente Il nome del file è una sequenza di caratteri alfanumerici, con caratteristiche che dipendono dal file system: Insieme di caratteri utilizzabili Equivalenza o meno di lettere maiuscole e minuscole Lunghezza massima Esistono diversi tipi di file: regolari Alias o link simbolici associati a dispositivi hardware per canali di comunicazione tra processi Socket (derivati da Unix BSD) Pipe con nome (o FIFO) nei sistemi della famiglia Unix SO 16 10.5 SO 16 10.6 Tipo e contenuto di un file Esempio: l estensione del nome del file Talvolta si fa un po di confusione tra tipo e contenuto di un file In alcuni SO il nome del file è utilizzato anche per codificare il suo contenuto Il tipo di file rappresenta essenzialmente lo scopo per il quale il file esiste, e dunque la modalità con cui il kernel del SO lo gestisce Il contenuto di un file (di tipo regolare) rappresenta la tipologia dei dati memorizzati In alcuni SO il contenuto determina l applicazione che il SO esegue in risposta ad una azione dell utente sul file Caso tipico: l estensione del file nei file system FAT (MS DOS) e NTFS (Windows NT).exe,.com.obj.c,.py.bat.txt.dll.zip file eseguibile file oggetto file sorgente script per la shell di comandi file di testo libreria dinamica archivio compresso Spesso il kernel di un SO gestisce allo stesso modo tutte le operazioni sui file di tipo regolare, a prescindere dal contenuto L estensione determina come il SO gestisce il file (tipicamente quale applicazione eseguire per manipolarlo). Nei file system della famiglia Unix il contenuto non è memorizzato tra gli attributi del file Nei SO della famiglia Unix l estensione del file non ha un formato fisso ed è usata unicamente come ausilio per gli utenti SO 16 10.7 SO 16 10.8

Attributi dei file Struttura dei file Oltre al nome, il file system può memorizzare una serie di attributi per ciascun file: Generalmente le informazioni all interno di un file possono essere: Identificatore unico all interno (generalmente un numero) Tipo di file e eventualmente contenuto del file Dimensione del file, ossia numero di byte o record che lo compongono Posizione dei dati corrispondenti al file sul supporto di memorizzazione Non strutturate: sequenza di caratteri o valori numerici Sequenza di record: linee di caratteri vettori scalari di lunghezza fissa o variabile record di lunghezza fissa o variabile Struttura gerarchica, con sezioni in diverso formato archivi di file Utente proprietario e diritti di accesso per proteggere il file file eseguibili Timestamp (data e ora) per la creazione, ultima modifica ed ultimo accesso al file immagini grafiche La struttura di un file di tipo regolare è legata al suo contenuto Perché si usa un identificatore oltre al nome? Il nome consente di identificare un file in modo non ambiguo, tuttavia lo stesso file potrebbe essere associato a più nomi Nelle applicazioni commerciali spesso non esiste una netta distinzione tra i dati memorizzati e la struttura (ossia il formato) dei file che memorizzano tali dati SO 16 10.9 SO 16 10.10 Esempio: i file in Mac OS X Operazioni sui file Il file system HFS+ utilizzato nei SO della famiglia Mac OS X permette di definire diversi flussi di dati all interno di un file: Ogni SO deve consentire alcune operazioni fondamentali relative ai file: data fork: i dati principali del file resource fork: codice macchina, icone grafiche, immagini, layout delle finestre, messaggi di testo,... info: gli attributi del file, tra cui il tipo ed un identificatore dell applicazione che ha creato il file Il campo identificatore dell applicazione permette al SO di lanciare l applicazione quando l utente fa un doppio click sull icona del file Creazione del file Assegnazione di un tipo, nome e identificatore Allocazione dello spazio sul dispositivo di memorizzazione Apertura e chiusura del file Scrittura e lettura del file Con accesso sequenziale, aggiornamento della posizione corrente del file Ricerca o riposizionamento per l accesso diretto al file Cancellazione del file Ridimensionamento del file (modifica della lunghezza) In effetti HFS+ consente di avere un numero arbitrario di fork per un singolo file, ma questa caratteristica non è molto utilizzata per problemi di compatibilità con i comandi di sistema che operano sui file Altre operazioni possono essere definite in base alle precedenti, ad esempio: Copia di un file Rinomina di un file SO 16 10.11 SO 16 10.12

Gestione dei file in un SO Esempio di strutture di dati per i file Poiché gli accessi alla memoria secondaria sono costosi, il kernel del SO non può ricostruire la posizione di un file a partire dal suo nome per ogni operazione eseguita su di esso L apertura del file consente di salvare in una struttura di dati del kernel la posizione sul disco e le altre informazioni necessarie per operare sul file Tipicamente viene utilizzato uno schema con una struttura di dati a più livelli, che include: La tabella dei file aperti, definita per l intero sistema, contiene una voce per ciascun file aperto nel sistema Per ogni processo, una tabella di descrittori di file contenente una voce per ciascun file aperto dal processo In pratica le strutture di dati per gestire i file aperti sono sofisticate perché debbono tenere in considerazione la condivisione dei file aperti, la memorizzazione dei risultati delle ricerche dei file, la duplicazione dei descrittori,... Processo 1 fd1 fd2 Processo 2 fd1 fd2 Processo 3 fd1 fd2 aperti F1 F2 F3 F4 Disco 1 A Cache voci dir. D1 D2 D3 Disco 2 B SO 16 10.13 SO 16 10.14 Esempio di strutture di dati per i file (2) Accesso sequenziale Il descrittore fd2 del processo P1 ed il descrittore fd1 del processo P2 fanno riferimento allo stesso file aperto F2 I processi P1 e P2 accedono al file B con la stessa modalità e con un unico puntatore alla posizione corrente I descrittori fd1 e fd2 del processo P3 fanno riferimento allo stesso file aperto F4 Tipicamente un descrittore di file è stato rediretto sull altro Le voci F2 e F4 della tabella dei file aperti fanno riferimento alla stessa voce di directory D2 Per ciascun file aperto il SO mantiene un puntatore alla posizione corrente all interno del file Alcuni SO mantengono due posizioni, una per le letture e l altra per le scritture Gli accessi al file sono relativi alla posizione corrente ed aggiornano automaticamente la posizione corrente È possibile modificare esplicitamente la posizione corrente Talvolta è possibile solo ritornare all inizio del file È l unica modalità di accesso ai file consentita per i dispositivi di memoria a nastro magnetico Lo stesso nome di file è stato aperto due volte, tipicamente da processi e con modalità d accesso differenti Quali sono i vantaggi dell accesso sequenziale? Le voci di directory D1 e D3 fanno riferimento allo stesso file su disco Semplicità: non è necessario indicare la posizione nelle chiamate di sistema per accedere al file Lo stesso file è accessibile per mezzo di due nomi differenti Efficienza: il SO può predire le successive richieste di accesso e programmare in anticipo il trasferimento dei dati SO 16 10.15 SO 16 10.16

Accesso diretto Accesso indicizzato Il file viene considerato come una sequenza numerata di elementi (blocchi o record) Per motivi di efficienza gli elementi contengono almeno qualche centinaio di byte Ciascuna richiesta di accesso al file contiene il numero dell elemento Assoluto: indice rispetto all inizio del file Relativo: indice rispetto all ultimo elemento acceduto Realizzabile anche con API ottimizzate per l accesso sequenziale eseguendo prima di ogni accesso una chiamata di sistema che modifica la posizione corrente Realizzato combinando tra loro l accesso diretto con quello sequenziale Viene costruito un indice contenente le posizioni dei vari elementi di un file rispondenti ad un determinato criterio Ad esempio: elementi caratterizzati da una chiave alfanumerica, ricerca sulla chiave resa efficiente dall indice Ogni richiesta di accesso al file contiene una chiave che permette di analizzare rapidamente l indice e determinare il numero dell elemento contenente le informazioni volute Esempio: lseek() nei sistemi Unix Quali sono i vantaggi dell accesso diretto? Talvolta si utilizzano due indici gerarchici: il principale (in memoria centrale) dà la posizione in quello secondario (su disco), che a sua volta dà il numero dell elemento del file È indispensabile per accedere rapidamente a singoli dati contenuti in file molto grandi (ad es.: basi di dati) Comune sui mainframe e per l implementazione delle basi di dati Permette la creazione di file sparsi, logicamente molto grandi ma con ridotta occupazione su disco Esempio: ISAM (Indexed Sequential Access Method) SO 16 10.17 SO 16 10.18 Sistema a due livelli di directory Nei primi SO le directory non esistevano: tutti i file erano identificati da un semplice nome alfanumerico Il livello superiore è chiamato directory principale o MFD (Master ) Quali svantaggi comporta non avere directory? All interno della directory principale è definita una directory secondaria per ciascun utente del sistema Tutti i nomi dei file debbono essere differenti, anche quelli di utenti diversi Quali sono gli svantaggi di questo approccio? Per cercare il nome di un file l utente è costretto a navigare tra migliaia di nomi La procedura per aprire un file è lenta e costosa Utilizzare supporti di memorizzazione esterni come CD-ROM, DVD o memorie flash è scomodo ed inefficiente Due soli livelli non sono sufficienti: Gli utenti sono completamente isolati e non possono condividere file Tutti i file di sistema debbono essere duplicati entro ogni directory utente La directory è un file di tipo particolare che consente di raggruppare ed organizzare i file in modo gerarchico Nel sistema Unix originale la directory era un file di testo regolare che elencava i nomi dei file in essa contenuti In alternativa, si deve complicare la procedura di ricerca dei file per includere anche una directory predefinita di sistema È difficile od impossibile gestire i dispositivi di memorizzazione esterni Ogni singolo utente non ha la possibilità di organizzare gerarchicamente i propri file SO 16 10.19 SO 16 10.20

Sistema di directory con struttura ad albero Sistema di directory con struttura a grafo aciclico Le directory sono organizzate gerarchicamente in una struttura ad albero La directory radice (root) contiene file ed altre directory Ciascuna directory può contenere altri file e altre directory Il nome completo del file (o percorso assoluto) è costituito dal nome di tutte le directory nel percorso dalla radice alla directory contenente il file, e dal nome del file stesso Il separatore dei vari nomi è un carattere predefinito, ad esempio / (Unix) oppure \ (MS-DOS, Windows) Ogni processo memorizza la posizione di una directory di lavoro detta directory corrente È generalmente possibile accedere ai file nella directory corrente utilizzando soltanto il nome del file ( filea ) In generale il nome completo di un file permette di identificare senza ambiguità un file Nei SO della famiglia Unix, la corrispondenza tra nomi e file non è biunivoca: ad uno stesso file possono corrispondere più nomi (ma non viceversa!) Un file può quindi apparire in due diverse directory del sistema Se rappresentiamo con una freccia la relazione di inclusione (dalla directory al file contenuto), la presenza di file con più nomi porta alla creazione di grafi orientati A cosa è dovuta la creazione di un ciclo nel grafo orientato? Poiché per definizione la directory radice non è inclusa in nessun altra directory, un ciclo è dovuto ad una directory con almeno due nomi (posizioni) nell albero È possibile anche utilizzare nomi di percorso relativi alla directory corrente (../fileb ) Nei SO della famiglia Unix i file system hanno una struttura a grafo orientato aciclico SO 16 10.21 SO 16 10.22 Gestione dei nomi di file multipli Sistema di directory con struttura a grafo generale Nei SO della famiglia Unix, il nome di un file è detto hard link Si può creare un nuovo hard link per un file già esistente con Perché in Unix si è scelto di non permettere cicli nella struttura di directory? La chiamata di sistema link() Il comando di sistema ln Per motivi di efficienza il SO deve poter riconoscere quando si attraversa più volte la stessa directory per risolvere un nome di percorso Ciascun file dispone di un contatore di riferimento: Il codice è più lento e complesso Creando un nuovo nome per un file si incrementa il contatore Cancellando un (nome di) file, si decrementa il contatore Il file viene rimosso dal file system soltanto quando il contatore di riferimento si azzera Cancellando (il nome di) una directory, non è più possibile utilizzare il contatore di riferimento per decidere quando rimuoverla dal file system Il SO deve eseguire una visita completa del grafo per determinare le cartelle non più raggiungibili dalla radice (garbage collection) SO 16 10.23 SO 16 10.24

Soft link Un soft link è un particolare tipo di file dei SO della famiglia Unix il cui contenuto è un nome di percorso di un altro file Quando un soft link appare come componente di un nome di percorso, il SO automaticamente sostituisce il soft link con il percorso equivalente Ad esempio: se b in /a è un soft link il cui contenuto è /c/d, il percorso /a/b/e viene risolto in /c/d/e Qual è lo svantaggio dei soft link? A differenza degli hard link, risolvendo un percorso con soft link si possono incontrare cicli infiniti: ad es.: b c e c b In pratica il SO pone un limite al numero di soft link attraversati per ciascun componente di un percorso SO 16 10.25