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



Documenti analoghi
Il Software. Il software del PC. Il BIOS

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

Il Sistema Operativo: il File System

Sistemi Operativi Il Sistema Operativo Windows (parte 3)

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

Il File System. Il file system

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Il file system. meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate. in memoria di massa

Gestione del file system

Interfaccia del file system

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

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

Il sistema operativo: interazione con l utente

PARTE 4 La Macchina Software

Capitolo Silberschatz

12. Implementazione di un File System Struttura a livelli Allocazione contigua

Il software impiegato su un computer si distingue in: Sistema Operativo Compilatori per produrre programmi

Le Infrastrutture Software ed il Sistema Operativo

In un modello a strati il SO si pone come un guscio (shell) tra la macchina reale (HW) e le applicazioni 1 :

Organizzazione della memoria

Materiali per il modulo 1 ECDL. Autore: M. Lanino

L informatica INTRODUZIONE. L informatica. Tassonomia: criteri. È la disciplina scientifica che studia

Software di base. Corso di Fondamenti di Informatica

Sistemi Operativi. Organizzazione logica ed implementazione di un File System

Laboratorio di Informatica

Informatica e Bioinformatica: Sistemi Operativi

Il software: Istruzioni per il computer. I tre tipi di software di sistema. Compiti del sistema operativo

Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera

Software di sistema e software applicativo. I programmi che fanno funzionare il computer e quelli che gli permettono di svolgere attività specifiche

Il Sistema Operativo. Funzionalità. Sistema operativo. Sistema Operativo (Software di base)

File system II. Sistemi Operativi Lez. 20

Link e permessi. Corso di Laurea Triennale in Ingegneria delle TLC e dell Automazione. Corso di Sistemi Operativi A. A

Concetti base. Avviare e spegnere il computer. Muoversi tra il menù dei programmi installati

Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)

Sistemi Operativi. 11 LEZIONE INTERFACCIA DEL FILE SYSTEM CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08

IL SISTEMA OPERATIVO IL SISTEMA OPERATIVO INTERFACCE TESTUALI INTERFACCE TESTUALI FUNZIONI DEL SISTEMA OPERATIVO INTERFACCE GRAFICHE

PROGETTAZIONE FISICA

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

. A primi passi con microsoft a.ccepss SommarIo: i S 1. aprire e chiudere microsoft access Start (o avvio) l i b tutti i pro- grammi

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Strutturazione logica dei dati: i file

Sistemi operativi. Esempi di sistemi operativi

Il Sistema Operativo (1)

Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

Laboratorio di Informatica

Corso di Informatica

Introduzione alle basi di dati. Gestione delle informazioni. Gestione delle informazioni. Sistema informatico

Architettura hardware

Il Sistema Operativo

Cosa è un foglio elettronico

5.3 TABELLE RECORD Inserire, eliminare record in una tabella Aggiungere record Eliminare record

Access. P a r t e p r i m a

Introduzione ai Sistemi Operativi

Sistemi Operativi STRUTTURA DEI SISTEMI OPERATIVI 3.1. Sistemi Operativi. D. Talia - UNICAL

Sistemi Operativi (modulo di Informatica II)

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Funzioni del Sistema Operativo

Varie tipologie di memoria

Architettura dei computer

Approccio stratificato

Organizzazione degli archivi

Database. Si ringrazia Marco Bertini per le slides

11 Realizzazione del File System Struttura a livelli (fig. 11.1) 11.4 Allocazione dei file

Appunti di informatica. Lezione 6 anno accademico Mario Verdicchio

GLI ARCHIVI DI DATI. File Un File è una sequenza di informazioni che costituisce una unità logica. Un file è un un contenitore di di informazioni

Automatizzare i compiti ripetitivi. I file batch. File batch (1) File batch (2) Visualizzazione (2) Visualizzazione

Corso di Sistemi di Elaborazione delle informazioni

Architettura di un sistema operativo

Memoria secondaria. Architettura dell elaboratore. Memoria secondaria. Memoria secondaria. Memoria secondaria

LA GESTIONE DELLE VISITE CLIENTI VIA WEB

Definizione Parte del software che gestisce I programmi applicativi L interfaccia tra il calcolatore e i programmi applicativi Le funzionalità di base

Sistemi Operativi. 12 LEZIONE REALIZZAZIONE DEL FILE SYSTEM CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08

Dispensa di Informatica I.1

IL SOFTWARE. Giada Agostinacchio Classe 2^ Beat ISIS G.Meroni Lissone Anno Scolastico 2007/2008

STRUTTURE DEI SISTEMI DI CALCOLO

Dispensa di Fondamenti di Informatica. Architettura di un calcolatore

Indice. settembre 2008 Il File System 2

Capitolo 4 Pianificazione e Sviluppo di Web Part

Architettura hardware

SISTEMI OPERATIVI DISTRIBUITI

Nozioni di Informatica di base. dott. Andrea Mazzini

Automazione Industriale (scheduling+mms) scheduling+mms.

LaCie Ethernet Disk mini Domande frequenti (FAQ)

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Architettura dei calcolatori II parte Memorie

Il sistema operativo

DATABASE. A cura di Massimiliano Buschi

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco

Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

Introduzione al data base

Alcune estensioni comuni Tipo del file Estensione corrispondente..wav,.mid,.voc Grafica.bmp,.jpg,.gif,.tif Documenti web.htm,.html

IL SOFTWARE TIPI DI SOFTWARE. MACCHINE VIRTUALI Vengono definite così perché sono SIMULATE DAL SOFTWARE, UNIFORMANO L ACCESSO SISTEMA OPERATIVO

INTERAZIONE CON L UTENTEL

Corso di Amministrazione di Reti A.A. 2002/2003

Transcript:

Lezione 11 system Sistemi operativi 12 maggio 2015 System Programming Research Group Università degli Studi di Roma Tor Vergata SO 15 11.1

Di cosa parliamo in questa lezione? L interfaccia : system 1 Il sistema di archiviazione 2 I file e la loro gestione 3 Le directory SO 15 11.2

La 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 uso di coprocessori dedicati all I/O system Le caratteristiche hardware della memoria secondaria impongono al SO l utilizzo di determinati meccanismi e politiche di gestione SO 15 11.3

Tipologie di memoria secondaria 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) system È compito del SO: gestire in modo specifico ciascuna tipologia di hardware offrire ai programmi applicativi una visione astratta ed unificata della memoria secondaria SO 15 11.4

system 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 system Ciascun SO definisce un proprio sistema di archiviazione nativo, ma è generalmente in grado di utilizzare anche dispositivi basati su file system di SO differenti SO 15 11.5

I file 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 system SO 15 11.6

Tipo e contenuto di un file Talvolta si fa un po di confusione tra tipo e contenuto di un file 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 system Spesso il kernel di un SO gestisce allo stesso modo tutte le operazioni sui file di tipo regolare, a prescindere dal contenuto Nei file system della famiglia Unix il contenuto non è memorizzato tra gli attributi del file SO 15 11.7

Esempio: l estensione del nome del file In alcuni SO il nome del file è utilizzato anche per codificare il suo contenuto Caso tipico: l estensione del file nei file system FAT (MS DOS) e NTFS (Windows NT).exe,.com.obj.c,.pas.bat.txt.dll.zip file eseguibile file oggetto file sorgente script per la shell di comandi file di testo libreria dinamica archivio compresso. system L estensione determina come il SO gestisce il file (tipicamente quale applicazione eseguire per manipolarlo) Nei SO della famiglia Unix l estensione del file non ha un formato fisso ed è usata unicamente come ausilio per gli utenti SO 15 11.8

Attributi dei file Oltre al nome, il file system può memorizzare una serie di attributi per ciascun file: 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 Utente proprietario e diritti di accesso per proteggere il file Timestamp (data e ora) per la creazione, ultima modifica ed ultimo accesso al file system 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 SO 15 11.9

Struttura dei file Generalmente le informazioni all interno di un file possono essere: 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 file eseguibili immagini grafiche system La struttura di un file di tipo regolare è legata al suo contenuto 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 15 11.10

Esempio: i file in Mac OS X Il file system HFS+ utilizzato nei SO della famiglia Mac OS X permette di definire diversi flussi di dati all interno di un 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 system Il campo identificatore dell applicazione permette al SO di lanciare l applicazione quando l utente fa un doppio click sull icona del file 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 SO 15 11.11

Operazioni sui file Ogni SO deve consentire alcune operazioni fondamentali relative ai 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) system Altre operazioni possono essere definite in base alle precedenti, ad esempio: Copia di un file Rinomina di un file SO 15 11.12

Gestione dei file in un SO 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: system 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,... SO 15 11.13

Esempio di strutture di dati per i file Processo 1 aperti Cache voci dir. fd1 fd2 Processo 2 F1 F2 D1 D2 D3 system fd1 F3 fd2 F4 Processo 3 fd1 fd2 Disco 1 A Disco 2 B SO 15 11.14

Esempio di strutture di dati per i file (2) 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 system Le voci F2 e F4 della tabella dei file aperti fanno riferimento alla stessa voce di directory D2 Lo stesso nome di file è stato aperto due volte, tipicamente da processi e con modalità d accesso differenti Le voci di directory D1 e D3 fanno riferimento allo stesso file su disco Lo stesso file è accessibile per mezzo di due nomi differenti SO 15 11.15

Accesso sequenziale 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 system Quali sono i vantaggi dell accesso sequenziale? Semplicità: non è necessario indicare la posizione nelle chiamate di sistema per accedere al file Efficienza: il SO può predire le successive richieste di accesso e programmare in anticipo il trasferimento dei dati SO 15 11.16

Accesso diretto 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 Esempio: lseek() nei sistemi Unix system Quali sono i vantaggi dell accesso diretto? È indispensabile per accedere rapidamente a singoli dati contenuti in file molto grandi (ad es.: basi di dati) Permette la creazione di file sparsi, logicamente molto grandi ma con ridotta occupazione su disco SO 15 11.17

Accesso indicizzato 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 system 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 Comune sui mainframe e per l implementazione delle basi di dati Esempio: ISAM (Indexed Sequential Access Method) SO 15 11.18

Nei primi SO le directory non esistevano: tutti i file erano identificati da un semplice nome alfanumerico Quali svantaggi comporta non avere directory? Tutti i nomi dei file debbono essere differenti, anche quelli di utenti diversi 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 system 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 SO 15 11.19

Sistema a due livelli di directory Il livello superiore è chiamato directory principale o MFD (Master ) All interno della directory principale è definita una directory secondaria per ciascun utente del sistema Quali sono gli svantaggi di questo approccio? 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 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 system SO 15 11.20

Sistema di directory con struttura ad albero 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 system 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 ) È possibile anche utilizzare nomi di percorso relativi alla directory corrente (../fileb ) SO 15 11.21

Sistema di directory con struttura a grafo aciclico 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 system 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 Nei SO della famiglia Unix i file system hanno una struttura a grafo orientato aciclico SO 15 11.22

Gestione dei nomi di file multipli 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 La chiamata di sistema link() Il comando di sistema ln system Ciascun file dispone di un contatore di riferimento: 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 SO 15 11.23

Sistema di directory con struttura a grafo generale Perché in Unix si è scelto di non permettere cicli nella struttura di directory? Per motivi di efficienza il SO deve poter riconoscere quando si attraversa più volte la stessa directory per risolvere un nome di percorso system Il codice è più lento e complesso 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 15 11.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 system 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 15 11.25