File System - homes.dico.unimi.ithomes.dico.unimi.it/~sisop/lucidi0910/Solez23.pdf · A.A....

Post on 14-Oct-2020

6 views 0 download

transcript

File System

Sistemi Operativi Lezione 23

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi2

Necessità

• Un qualunque sistema per la gestione delle informazioni deve essere in grado di soddisfare i seguenti requisiti:

• Memorizzare grosse quantità di dati• Garantire che le informazioni memorizzate

sopravvivano al processo che le ha generate• Consentire l’accesso alle informazioni a più processi

indipendentemente dal processo che le ha generate

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi3

File System

• Le informazioni sono memorizzate permanentemente su dischi o dispositivi analoghi sotto forma di file

• I file sono gestiti dal SO che decide le modalità di gestione e d’uso

• La componente del sistema operativo dedicata alla gestione dei file è chiamata file system

• In alcune circostanze il termine file system è usato anche per indicare l’insieme dei file contenuti in un sistema

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi4

Obiettivi di un file system (lato user)

• Fornire sotto forma di syscall o comandi le necessarie primitive affinché ogni utente possa:• Creare, cancellare, leggere, e modificare un file• Eseguire le operazioni di back-up e recovery• Definire schemi per controllare chi accede ai

propri file • Strutturare i propri file in base alle proprie

necessità• Spostare dati tra file

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi5

Obiettivi di un file system (lato sistema)

• Garantire l’integrità dei dati memorizzati nei file

• Ottimizzare l’uso dello spazio su disco• Ottimizzare in termini di tempo le prestazioni

dei dispositivi• Supportare dispositivi di memorizzazione

diversi• Minimizzare o eliminare i rischi per la perdita

di dati

I Dischi

Alcune delle fotografie riportate sono riprese da: http://royal.pingdom.com/2010/02/18/amazing-facts-and-figures-about-the-evolution-of-hard-disk-drives/

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi7

Hard Disk

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi8

Disk Head

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi9

Controller (IDE)

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi10

IDE Cable

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi11

3 ISAslots

5 PCI slots Pentium CPU6 SIMMslots

2 DIMM slots

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi12

Tracce e Settori

• Ogni superficie è suddivisa in un insieme di Tracce

• Ogni traccia è suddivisa in settore

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi13

Tracce

• Struttura fisica di un disco con doppio settore sulle tracce esterne

• Struttura logica dello stesso dispositivo

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi14

Formato di una traccia

dataheadergap gap

CRC

SettoreSettore Precedente

Prossimo

Inter-blockgap

Inter-blockgap

Note:

CRC è acronimo di “cyclic redundancy check”. Un codice correttore relativo al campo data, situato alla fine di ogni settore.

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi15

Cilindri

• Tutte le tracce con lo stesso numero costituiscono un cilindro

surface 0

surface 1surface 2

surface 3surface 4

surface 5

cylinder k

spindle

platter 0

platter 1

platter 2

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi16

Cilindri

arm

Le testine si muovonoda cilindro a cilindro

spindle

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi17

Disk Hardware

Evoluzione dei dischi a partire dal dispositivo originale del PC IBM sino al modello Western Digital WD 18300

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi18

1956 – Primo HD (IBM 350)- 5MB

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi19

1979 – 250 MB

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi20

L’evoluzione

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi21

Ultima generazione (2008)

1GB, 16 mm in altezza, 16 grammi

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi22

L’evoluzione

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi23

Errori

• Nella gestione di un disco si possono verificare diverse tipologie di errore, alcune di queste possono essere risolte dal controller, nella maggior parte dei casi è il driver che deve trovare una soluzione• Errori di programmazione: invio di parametri errati (n.ro

cilindro, n.ro settore ecc.) al controller. In questi casi l’operazione va interrotta sperando che non si verifichi troppo frequentemente

• Transient checksum error: errori di lettura/scrittura a causa di tracce di polvere. In questi casi si tratta di riprovare un certo numero di volte

• Permanent checksum error: il settore viene marcato come cattivo (bad). Solo l’hw può porre rimedio a questa situazione

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi24

Errori

• Seek errors: il braccio non è ben calibrato e non si posiziona correttamente sulle tracce. È necessario avviare un’operazione per ricalibrare il braccio, quando il controller lo rende possibile

• Controller error: anche in questo caso va avviata un’operazione di reset del controller, che può comunque risultare non risolutiva

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi25

Bad Block

a. Una traccia con settore rovinatob. Sostituzione di un settore disponibile con il contenuto

del settore rovinatoc. Shifting di tutti i settori per bypassare quello rovinato

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi26

R.A.I.D. Redundant array of inexpensive disks

• Un tipo di unità dischi che utilizza una combinazione di due o più due o più drive per migliorare la resistenza ai guasti e le prestazioni

• Usata frequentemente nei sistemi server, molto meno sui PC

• Si distinguono diversi livelli di R.A.I.D.

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi27

R.A.I.D. (0 - 1)

• Livello 0• Data striping su più dischi • Nessuna ridondanza• Migliora le prestazioni ma non ha effetto sulla fault-tolerance

• Livello 1• Data mirroring: (a.k.a.: “shadowing”)• I dati sono scritti contemporaneamente su due dischi diversi• Se un disco si guasta, il sistema “si sposta” automaticamente sul

secondo senza alcuna perdita di dati o di qualità del servizio• Grosso impatto sulla fault tolerance, poco impatto sulle prestazioni

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi28

R.A.I.D. (3 - 5)

• Level 3• I dati sono gestiti come nel livello 0, in più è però

previsto un disco per contenere i dati necessari alla correzione

• Ottime prestazioni, and some level of fault tolerance

• Level 5• Data striping a livello byte, e codice di correzione a

livello stripe• Prestazioni molto buone, fault tolerance buona

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi29

R.A.I.D.

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi30

Disk Arm Scheduling

• Il tempo richiesto per leggere o scrivere un blocco del disco è determinato da tre fattori

1. Seek time2. Rotational delay3. Actual transfer time

• Il termine preponderante è il tempo di seek

• Il controllo degli errori è effettuato dal device controller

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi31

File system lato utente

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi33

Termini

• Campo• Elemento base• Contiene un singolo valore• Caratterizzato dal tipo di dato e dalla dimensione

• Record• Insieme di campi opportunamente correlati• Trattato come una singola entità logica

• Esempi: record studente, impiegato, cittadino

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi34

File

• File• Insieme di record omogenei opportunamente

correlati• Identificato da un nome logico

• Database• Collezione di record non necessariamente

omogenei e di relazioni tra loro esistenti

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi35

File naming

• Il primo problema che il file system deve risolvere è proporre agli utenti uno schema attraverso il quale identificare i propri file all’interno di un sistema• I nomi solitamente possono contenere un

qualunque carattere alfanumerico fatta eccezione per alcuni caratteri speciali

• I nomi variano in lunghezza 8-255 caratteri• Alcuni sistemi non distinguono tra maiuscole e

minuscole• È oramai prassi utilizzare una notazione postfissa

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi36

File Naming

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi37

Struttura dei file

• Ulteriore elemento che caratterizza un file system sono le modalità con cui consente ad un utente di organizzare le proprie informazioni all’interno di un file

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi38

Tipi di file

• Ogni file system può supportare diversi tipi di file che differiscono tra loro per l’uso che il sistema ne fa• Regular file: contengono informazioni degli utenti

• ASCII• Binary

• Directory: usati dal file system • Character special file: presenti sul sistema Unix,

dove sono usati per la gestione di dispositivi seriali• Block special file: presenti sul sistema Unix, dove

sono usati per la gestione di dispostivi a blocchi

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi39

Binary file

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi40

File Access

• Le modalità di accesso determinano come un’applicazione può accedere ai dati memorizzati in un file

• Accesso Sequenziale • Legge tutti i bytes/records dall’inizio• Non è possibile effettuare salti all’interno del file, è

possibile ritornare all’inizio o ripartire dall’ultima operazione di lettura

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi41

File access

• Random access• bytes/records possono essere letti in qualunque

ordine• Fondamentale per supportare data base • La read può avere due diversi formati:

• Move file marker (seek), then read (file) • Read (file, n.ro rec.), Read (file, key)

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi42

Attributi o metadata

• Sono informazioni associate al file ed usate dal sistema per svolgere attività di gestione e manutenzione del file:• Controllo degli accessi• Back-up• Gestione degli spazi• accounting

• Sono dati molto dipendenti dal sistema operativo

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi43

Attributi di un File

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi44

Operazioni su File

1. Create

2. Delete

3. Open

1. Close

2. Read

3. Write

1. Append

2. Seek

3. Get attributes

4. Set Attributes

5. Rename

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi45

File Directory• File di proprietà del sistema operativo• Di fatto costituiscono un elenco dei file

presenti sul sistema• Esistono diversi modi per organizzare le

directory all’interno di un file system

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi46

Single-Level Directory

• Un sistema con directory ad un livello• contiene 4 file• Di proprietà di 3 persone, A, B, and C• Ovviamente non possono coesistere due file con lo stesso nome

Le lettere indicano i diversiproprietari dei file

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi47

Two-level Directory

• Quando un utente accede ad un file il SO deve sapere chi è al fine di individuare il corretto file

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi48

Hierarchical Directory

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi49

Path name

• Nei casi di directory con strutture ad albero il nome dell’utente e del file non sono più sufficienti per individuare univocamente un file

• Si usano i path name:• Assoluti: che descrivono il commani a partire dalla

radice (root) iniziano sempre con / (\)• Relativi: sono computati a partire da una working

directory (ogni processo ne possiede una)

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi50

Path Name

A.A. 2009/2010 Corso: Sistemi Operativi

© Danilo Bruschi51

Operazioni su Directory

1. Create

2. Delete

3. Opendir

4. Closedir

1. Readdir

2. Rename

3. Link

4. Unlink