Gestore del File System (Memoria secondaria)

Parte 3
Modulo 4:
Gestore del File System
(Memoria secondaria)
Componenti
Interfaccia utente
Gestore dell’I/O
Gestore dei Processi
Gestore del File System
Gestore della
Memoria Centrale
*KERNEL
Informatica - A.A. 2009/2010 - Sistemi operativi
3.50
1
Gestore del File System
• Il gestore del file system è quel modulo del
sistema operativo incaricato di gestire le
informazioni memorizzate sui dispositivi di
memoria secondaria Æ DISCO e altri
dispositivi di memoria di massa
• Il gestore del file system deve garantire:
– la
l correttezza
tt
– la coerenza
– il recupero efficiente
delle informazioni memorizzate
Informatica - A.A. 2009/2010 - Sistemi operativi
3.51
Gestore del File System
• Si occupa di:
– Associare un nome di file ad una parte dello spazio
del disco
– Fornire metodi per accedere ai file
– Rendere trasparente la struttura fisica del disco
• Insieme di programmi per l’organizzazione
– Logica Æ Fornire all’utente una visione logica dei
file (che astrae dall
dall’organizzazione
organizzazione fisica)
– Fisica Æ gestire i file nella memoria secondaria
(dischi) e ottimizzare l’utilizzo dello spazio
disponibile
Informatica - A.A. 2009/2010 - Sistemi operativi
3.52
2
Organizzazione logica
• L’utente deve poter
– organizzare le proprie informazioni in file e
insiemi di file
– accedere ai dati
– identificare ogni file con un nome logico
– operare sui file (creare, eliminare, cambiare
nome, modificare))
– proteggere i propri file (da accessi non
desiderati)
Informatica - A.A. 2009/2010 - Sistemi operativi
3.53
Organizzazione fisica
• Il Sistema Operativo deve:
– tener traccia dei file memorizzati e della loro
posizione fisica sui dischi
– ottimizzare l’utilizzo dello spazio su disco
– gestire le comunicazioni tra la memoria
principale e la memoria secondaria (disco)
Informatica - A.A. 2009/2010 - Sistemi operativi
3.54
3
Altre funzioni
• Nei sistemi multi-utente, il Sistema Operativo
deve mettere a disposizione dei meccanismi di
protezione in modo tale da consentire agli
utenti di proteggere i propri dati dall’accesso
da parte di altri utenti non autorizzati
Informatica - A.A. 2009/2010 - Sistemi operativi
3.55
File
• Unica unità logica di informazione usata dal
Sistema Operativo
• Fisicamente:
– Sequenza di byte che contiene informazioni
omogenee
– Es., programma, testo, dati simili, …
– Byte = 8 bit
• Tutti i dati vengono suddivisi in file
• I file vengono memorizzati nelle memorie di
massa
Informatica - A.A. 2009/2010 - Sistemi operativi
3.56
4
File
• Un insieme di informazioni (dati, documenti)
memorizzate su supporti di memoria secondaria
sotto forma di una sequenza di bit
bit, byte
byte, record
logici, record fisici
Disco
file
Informatica - A.A. 2009/2010 - Sistemi operativi
3.57
Tipo di file
• Ogni file è composto tipicamente da:
– Nome: stringa arbitraria decisa dall’utente
– Estensione:
E t
i
i i
insieme
(fi
(fissato)
t ) di caratteri
tt i che
h
definiscono il TIPO di un file
Esempi
file.doc
file txt
file.txt
file.jpg
file.pdf
file.ppt
Informatica - A.A. 2009/2010 - Sistemi operativi
file.zip
file gif
file.gif
file.xls
file.exe
file.mp3
file.wav
file mpeg
file.mpeg
…
3.58
5
Operazioni su file
•
•
•
•
•
•
•
•
•
•
•
Creazione
Apertura
Chi
Chiusura
Cancellazione
Copia
Rinomina
Visualizzazione
Lettura
Scrittura
Modifica
…
Informatica - A.A. 2009/2010 - Sistemi operativi
3.59
Operazioni sui file
• Nuovo:
crea una nuova istanza di file
• Apri:
localizza un file sul disco e lo apre
• Chiudi:
termina l’elaborazione dell’istanza
corrente dell’informazione e chiude
la finestra, ma tiene il programma
aperto per elaborare altre istanze
• Salva:
scrive l’istanza corrente sul disco,
usando lo stesso nome e la
stessa posizione
• Salva come:
scrive l’istanza corrente sul disco
con un nuovo nome e/o una
posizione differente
Informatica - A.A. 2009/2010 - Sistemi operativi
3.60
6
Nuova istanza di file
• Il comando Nuovo crea una
istanza “vuota”
• Cos’è
Cos è una “informazione
informazione vuota”?
vuota ?
– l’informazione è suddivisa in tipi
basati su caratteristiche. Es.,
♦
le fotografie digitali sono un tipo di
informazione; la lunghezza e la
larghezza sono due delle sue
proprietà
♦ i documenti di testo sono un tipo di
informazione; il numero di caratteri è
una delle sue proprietà
– Un’istanza vuota è una
struttura vuota, senza alcuna
caratteristica se non per
quanto riguarda il formato
Istanza di una rubrica
Informatica - A.A. 2009/2010 - Sistemi operativi
3.61
Organizzazione di più file: directory
• Quasi tutti i sistemi operativi utilizzano
un’organizzazione
un
organizzazione gerarchica del File System
• L’elemento utilizzato per raggruppare più file
insieme è la directory
• L’insieme gerarchico delle directory e dei file
può essere rappresentato attraverso una
rappresentazione grafica: albero delle directory
Informatica - A.A. 2009/2010 - Sistemi operativi
3.62
7
Organizzazione dei file
• Possibilità di organizzare i file in Directory
(dette anche Cartelle), ovvero come insiemi di:
– file
– altre directory
• Il tutto arricchito da un elenco dei contenuti
• Organizzazione gerarchica: logica o fisica?
Organizzazione solo logica: non c’è alcuna
relazione con la posizione fisica dei file di una
directory (cartella) sul disco
Informatica - A.A. 2009/2010 - Sistemi operativi
3.63
Organizzazione ad albero
•
•
•
•
•
•
•
•
•
Albero rovesciato (come genealogico)
Nodi e collegamenti padre-figlio tra nodi
Nodo: file o directory
directory
Nodi divisi per livelli
file
Collegamenti tra nodi di livelli vicini:
– nodo sopra = padre
– nodo sotto = figlio
Ogni nodo ha un solo padre
Padre più in alto = radice
I nodi file non hanno figli
Cammino assoluto o relativo (per file)
Informatica - A.A. 2009/2010 - Sistemi operativi
3.64
8
Albero delle Directory
Directory
File
Informatica - A.A. 2009/2010 - Sistemi operativi
3.65
Operazioni su directory
• Organizzazione di file in strutture chiamate
cartelle (directory)
• Creazione directory
• Eliminazione directory
• Elenco file di una directory
• Ricerca
• di un p
particolare file
• di tutti i file che soddisfano una particolare relazione
• Operazioni più complesse: backup, …
Informatica - A.A. 2009/2010 - Sistemi operativi
3.66
9
Esempio: Albero delle directory in Unix
• La directory
principale è "/"
• Lo stesso
carattere / viene
usato per
separare i nomi
delle directory
• Ad esempio
/usr/bin/ indica
la directory bin
contenuta nella
directory usr
contenuta nella
root (/)
Informatica - A.A. 2009/2010 - Sistemi operativi
3.67
Path assoluto e relativo
• Un path assoluto avrà un simile aspetto:
/usr/local/bin
– sarà funzionante in qualsiasi directory in cui ci si
trova
• Un path relativo ha aspetto simile a local/bin
– indica directory diverse a seconda della
directory in cui ci si trova
• In questo caso local/bin coincide con
/usr/local/bin solo se ci si trova in /usr/
Informatica - A.A. 2009/2010 - Sistemi operativi
3.68
10
Tipi di file system esistenti
• Nel corso della storia informatica è stata
ideata una miriade di file system
• I sistemi operativi moderni sono spesso in
grado di accedere a diversi file system, spesso
semplicemente installando un apposito
modulo o driver
• File system più diffusi:
– Fat
– NTFS
– Ext3
Informatica - A.A. 2009/2010 - Sistemi operativi
3.69
FAT
• FAT - File Allocation Table
• E’ il file system primario per i sistemi operativi
Microsoft Windows fino alla versione Windows
ME
• Windows NT e le successive versioni hanno
introdotto l'NTFS e mantenuto la compatibilità
con la FAT
• File system piuttosto semplice da gestire Æ
adatto per dispositivi come memory card
Informatica - A.A. 2009/2010 - Sistemi operativi
3.70
11
NTFS
• NTFS - New Technology File System
• File system dei sistemi operativi basati su
kernel NT
• Notevole passo avanti rispetto a FAT
• Principali caratteristiche:
– Affidabilità - sistema transazionale (o "Journaled”);
questo vuol dire che se un'operazione è interrotta a
metà
tà ((ad
d esempio
i per un bl
blackout)
k t) viene
i
persa solo
l
quell'operazione ma non è compromessa l'integrità del
file system il quale resta comunque leggibile dal
computer.
Informatica - A.A. 2009/2010 - Sistemi operativi
3.71
NTFS
– Permessi e Controllo d'Accesso - a ciascun file o
cartella è possibile assegnare dei diritti di accesso
(lettura scrittura
(lettura,
scrittura, modifica
modifica, cancellazione e altri)
– Nomi lunghi e Unicode - i nomi dei file e delle cartelle
possono essere lunghi fino a 255 caratteri e possono
contenere caratteri di tutte le lingue del mondo grazie
alla codifica Unicode
– Dimensioni e Flessibilità – La dimensione e il massimo
numero di file sono praticamente illimitati; la dimensione
massima di un singolo file è di 16 Terabytes, contro i 4
GigaBytes di FAT
Informatica - A.A. 2009/2010 - Sistemi operativi
3.72
12
Ext3
• Extended File System 3 - diffuso su sistemi
GNU/Linux
• introduce
introd ce il journaling
jo rnaling del file s
system.
stem
• Il journaling, presente anche nelle ultime versioni
di NTFS, è una caratteristica che permette di
evitare che errori e malfunzionamenti hardware (o
anche semplici spegnimenti del PC senza
p
) possano
p
chiudere il sistema operativo)
danneggiare i dati scritti sull'unità, creando un
"diario" (journal) che elenca le modifiche da
effettuare sul filesystem
Informatica - A.A. 2009/2010 - Sistemi operativi
3.73
Partizioni di un disco
• Un singolo hard disk può essere diviso in
diverse partizioni, ciascuna delle quali
funziona come se fosse un disco separato
• L'idea è che se avete un hard disk e si
vogliono avere due sistemi operativi, si può
suddividere il disco in due partizioni
– ciascun sistema operativo userà la sua
partizione
ti i
come vuole
l e non ttoccherà
h à quella
ll
dell'altro
– Senza le partizioni ci sarebbe voluto un disco
per ciascun sistema operativo
Informatica - A.A. 2009/2010 - Sistemi operativi
3.74
13
Master Boot Record
• Le informazioni sul partizionamento di un hard
disk si trovano nel suo primo settore (cioè, il
primo settore della prima traccia della prima
superficie del disco)
• Questo settore si chiama master boot record
(MBR) del disco
• MBR è il settore che il BIOS legge ed avvia
quando
d la
l macchina
hi viene
i
accesa
Informatica - A.A. 2009/2010 - Sistemi operativi
3.75
Master Boot Record
• Il master boot record contiene un piccolo
programma che legge la tabella delle
partizioni controlla quale partizione è attiva
partizioni,
(cioè quale è contrassegnata come avviabile) e
legge il primo settore di quella partizione, il
boot sector (settore di avvio) della partizione
• Anche l'MBR è un settore di avvio, ma ha uno
status speciale e quindi un nome speciale
• Il boot sector contiene un altro programmino
che legge la prima parte del sistema operativo
contenuto in quella partizione (sempre che sia
avviabile) e lo avvia
Informatica - A.A. 2009/2010 - Sistemi operativi
3.76
14
Parte 3
Modulo 5:
Gestore dei processi
Componenti
Interfaccia utente
Gestore dell’I/O
Gestore dei Processi
Gestore del File System
Gestore della
Memoria Centrale
*KERNEL
Informatica - A.A. 2009/2010 - Sistemi operativi
3.78
15
Gestore dei processi
• Un sistema operativo con supporto per il
multitasking (multiprocessualità) permette di
eseguire più programmi contemporaneamente
• SO in time sharing
• Permette la condivisione della CPU tra più
processi
• Il tempo di esecuzione del processore è
condiviso tra più processi / utenti
• Ogni processo in esecuzione ha a disposizione
dei quanti di tempo della CPU
Informatica - A.A. 2009/2010 - Sistemi operativi
3.79
Time sharing
• Se viene chiesto al sistema di eseguire
contemporaneamente due processi A e B, la
CPU attuerà un meccanismo di time-sharing
time sharing Æ
eseguirà per qualche istante il processo A, poi
per qualche istante il processo B, poi tornerà
ad eseguire il processo A e così via
• Il passaggio dal processo A al processo B e
viceversa viene definito cambio di contesto
(context switch)
Informatica - A.A. 2009/2010 - Sistemi operativi
3.80
16
Scheduler
• Le decisioni riguardanti l'esecuzione di un
cambio di contesto tra due programmi
vengono intraprese
i t
da
d un componente
t del
d l
sistema operativo detto scheduler
• Lo scheduler controlla lo scheduling, ossia la
ripartizione del tempo di CPU tra tutti i
processi concorrenti (i processi attivi nello
stesso momento sul calcolatore che si
contendono l’uso della CPU)
Informatica - A.A. 2009/2010 - Sistemi operativi
3.81
Scheduling
• Lo scheduling è un'operazione molto
importante per il corretto ed efficiente
funzionamento del calcolatore
• Consente di eseguire più programmi
concorrentemente
• Consente di migliorare l'utilizzo del processore
• Possibile uso di preemption (o pre-rilascio):
operazione
i
iin cuii un processo viene
i
temporaneamente interrotto, con l'intenzione
di ripristinarlo in un secondo momento, per
dare spazio ad un altro processo a priorità più
alta
Informatica - A.A. 2009/2010 - Sistemi operativi
3.82
17
Algoritmi di scheduling
• Esistono vari algoritmi di scheduling che tengono
conto di varie esigenze e che possono essere più
indicati in alcuni contesti piuttosto che in altri
• La scelta dell'algoritmo da usare dipende da
cinque principali criteri:
1. Utilizzo del processore: la CPU deve essere attiva
il più possibile (ovvero devono essere ridotti al
possibili tempi
p morti))
minimo i p
2. Produttività (throughput): il numero di processi
completati in una determinata quantità di tempo
Informatica - A.A. 2009/2010 - Sistemi operativi
3.83
Algoritmi di scheduling
3. Tempo di completamento: il tempo che
intercorre tra la sottomissione di un processo
ed il completamento della sua esecuzione
4. Tempo d'attesa: il tempo in cui un processo
pronto per l'esecuzione rimane in attesa della
CPU (wait time)
5. Tempo di risposta: il tempo che trascorre tra
l sottomissione
la
tt i i
del
d l processo e l'ottenimento
l' tt i
t
della prima risposta
Informatica - A.A. 2009/2010 - Sistemi operativi
3.84
18
Criteri di ottimizzazione
CRITERI da ottimizzare:
• Massimizzare l’utilizzo del processore
• Massimizzare la produttività
• Minimizzare il tempo di completamento
• Minimizzare il tempo di attesa
• Minimizzare il tempo di risposta
• NOTA: generalmente si tende ad ottimizzare i
valori medi
Informatica - A.A. 2009/2010 - Sistemi operativi
3.85
Round Robin
• L'algoritmo di scheduling RR (Round Robin)
esegue i processi nell'ordine d'arrivo, ma
esegue la preemption del processo in
esecuzione, ponendolo alla fine della coda dei
processi in attesa, qualora l'esecuzione duri
più del quanto di tempo stabilito, e facendo
proseguire l'esecuzione al successivo
processo in attesa
• Assegna ‘a turno’ un quanto di tempo di CPU
ai processi in attesa
Informatica - A.A. 2009/2010 - Sistemi operativi
3.86
19
Esempio
• Ipotesi: i seguenti processi siano in coda con
relativa durata in millisecondi, e quanto di
tempo stabilito di 20 ms:
p1 30 → p2 15 → p3 60 → p4 45
• p1 (20 ms, ne rimangono 10) → p2 (termina la
propria esecuzione perché dura meno di 20
ms) → p3 (20 ms, ne rimangono 40) → p4 (20
ms, ne rimangono
i
25) → p1
1 (t
(termina
i perché
hé
necessitava di meno di 20 ms) → p3 (20 ms, ne
rimangono 20) → p4 (20 ms, ne rimangono 5)
→ p3 (termina perché necessitava di
esattamente 20 ms) → p4 (termina)
Informatica - A.A. 2009/2010 - Sistemi operativi
3.87
Criterio di ottimizzazione
• Per valutare l’algoritmo di scheduling facciamo
riferimento al tempo medio di attesa
• Tempo di attesa = istante finale di esecuzione –
durata del processo
• p1 termina all’istante 85, p2 a 35, p3 a 145,
p4 a 150
• Tempo medio di attesa:
[(85-30)+(35-15)+(145-60)+(150-45)]/4 = 66,25 ms
Informatica - A.A. 2009/2010 - Sistemi operativi
3.88
20
Shortest Next Process First
• SNPF prevede che venga eseguito sempre il
processo con il tempo di esecuzione più breve tra
quelli in attesa
• Esempio: siano sottomessi contemporaneamente i
seguenti processi, con la rispettiva durata di
esecuzione in ms:
p1 30 → p2 15 → p3 60 → p4 45
• I processi vengono eseguiti nel seguente ordine:
p2 → p1 → p4 → p3
• p2 termina all’istante 15, p1 a 45, p4 a 90, p3 a 150
[(15-15)+(45-30)+(90-45)+(150-60)]/4 = 37,5 ms
Informatica - A.A. 2009/2010 - Sistemi operativi
3.89
SNPF
• Si può dimostrare che questo algoritmo è
ottimale, in quanto consente di ottenere
sempre il valore più basso di tempo d'attesa
medio
• Sfortunatamente non è possibile applicarlo, in
quanto non è possibile conoscere
anticipatamente quanto durerà l'esecuzione
del processo
• Potrebbe essere possibile predirlo
Informatica - A.A. 2009/2010 - Sistemi operativi
3.90
21
Scheduling con priorità
• Una priorità (numero intero) è assegnata ad
ogni processo
• La CPU è assegnata al processo con più alta
priorità (es: il più piccolo intero = la più alta
priorità)
– Preemptive
– Non preemptive
• Problema: Starvation – i processi a più bassa
priorità potrebbero non essere mai eseguiti
• Soluzione: Aging – al trascorrere del tempo di
attesa si incrementa la priorità di un processo
che attende
Informatica - A.A. 2009/2010 - Sistemi operativi
3.91
Scheduling per multiprocessori
• Lo scheduling nei sistemi multiprocessore è
più complesso
• Si possono avere processori omogenei (tutti
uguali) o disomogenei (processori diversi)
• Problema del bilanciamento del carico (load
balancing)
Informatica - A.A. 2009/2010 - Sistemi operativi
3.92
22
Parte 3
Modulo 6:
Gestore della memoria
centrale
Gestione della memoria centrale
• La gestione concorrente di molti processi
comporta la presenza di molti programmi in
memoria centrale
Æ la memoria centrale diventa una risorsa
unica, in generale scarsa, da suddividere tra i
vari programmi
• Il gestore della memoria applica tecniche per
gestire
ti il conflitto
flitt ttra di
dimensione
i
della
d ll
memoria fisica e spazio complessivamente
richiesto dai programmi che devono essere
gestiti in modo concorrente e dai relativi dati
Informatica - A.A. 2009/2010 - Sistemi operativi
3.94
23
Gestione della memoria centrale
• Strategia seguita:
– Mantenere in memoria soltanto una porzione dei
programmi
p
g
e dei dati ((la p
porzione necessaria in q
quel
momento)
– Alternare le porzioni dei programmi mantenute in
memoria: i programmi (o le loro porzioni) possono
essere ‘caricati’ e ‘scaricati’ dalla memoria centrale
durante l’esecuzione a seconda della necessità
• Due spazi di indirizzamento:
– Fisico: lo spazio di memoria centrale in cui risiede
effettivamente il codice
– Logico: intervallo di celle contigue che partono
dall’indirizzo 0 in cui si immagina siano state collocate le
istruzioni
Informatica - A.A. 2009/2010 - Sistemi operativi
3.95
Swapping
• Un modo tipico di ovviare a questo problema
consiste nell’abilitare il s.o. a trasferire il
contenuto di un’area della memoria centrale in
un’area della memoria di massa, detta “area di
swap”
• Lo swapping viene applicato trasferendo su
disco le informazioni relative ai processi in
stato di “attesa”
attesa e “pronti
pronti per ll’esecuzione”
esecuzione
– Ok per quelli in attesa
– Quasi ok per quelli pronti
Informatica - A.A. 2009/2010 - Sistemi operativi
3.96
24
Paginazione
• Frammentazione della memoria in blocchi di
dimensione prefissata detti pagine
• Lo spazio di indirizzamento logico del
programma è suddiviso in sezioni, di
dimensioni fisse e uguali tra loro, dette pagine
logiche
• Lo spazio fisico di indirizzamento presente nel
calcolatore
l l t
è anch’esso
h’
diviso
di i in
i pagine
i
fisiche, della stessa dimensione delle pagine
logiche
Informatica - A.A. 2009/2010 - Sistemi operativi
3.97
Vantaggi
• Grazie alla paginazione è possibile:
– Estendere la dimensione di un processo
utilizzando spazi di memoria non
necessariamente contigui
– Tenere in memoria solo la porzione ridotta del
programma che si sta utilizzando
Informatica - A.A. 2009/2010 - Sistemi operativi
3.98
25
Idea di base della paginazione
• Si basa sul concetto di località spaziotemporale
– Non vale la pena di caricare in memoria
centrale tutto il codice di un programma perché
l’esecuzione in un dato istante si limita ad una
porzione del codice stesso, che spesso viene
rieseguita
– Principio
Pi i i d
dell 10
10-90:
90 il 10% d
dell codice
di spesso
copre il 90% dell’esecuzione
Informatica - A.A. 2009/2010 - Sistemi operativi
3.99
Meccanismo
• Vengono caricate in alcune pagine fisiche della
memoria centrale solo alcune pagine logiche
del programma in esecuzione
• Le pagine logiche necessarie vengono caricate
di volta in volta in base all’esigenza
• Quante pagine caricare e quante/quali pagine
sostituire dipende dalla politica adottata
Informatica - A.A. 2009/2010 - Sistemi operativi
3.100
26
Memoria virtuale
• Sia nel caso della paginazione, sia in quello
della segmentazione, il gestore della memoria
offre al programma applicativo la visione di
una memoria virtuale
• La memoria virtuale v può essere maggiore di
quella fisica p: è sufficiente allocare più pagine
o segmenti di quelli che possono stare
contemporaneamente in p (quelli non caricati
in memoria centrale rimangono disponibili in
memoria di massa dove i programmi con i
relativi dati sono organizzati in file)
Informatica - A.A. 2009/2010 - Sistemi operativi
3.101
Conseguenza
• I programmi con dimensione s>p (spazio fisico
di memoria centrale) possono essere eseguiti
se s<v (spazio di memoria virtuale)
• In questo caso gli indirizzi di s sono riferiti a v
quindi:
– il gestore della memoria converte gli indirizzi
Informatica - A.A. 2009/2010 - Sistemi operativi
3.102
27
Processi e memoria
• La gestione della memoria deve essere
coordinata con la gestione dei processi:
– le pagine di programma che sono attualmente in
esecuzione o che contengono dati attualmente
indirizzati devono risiedere in memoria centrale
– se una pagina necessaria ad un processo in esecuzione
non si trovano in memoria centrale (page fault), il
processo viene sospeso e passa in stato di attesa
– dopo l’operazione
l operazione di input da memoria di massa della
pagina il processo torna ad essere pronto
Informatica - A.A. 2009/2010 - Sistemi operativi
3.103
28