parte 3 modulo 4: gestore del file system (memoria secondaria) · ♦le fotografie digitali sono un...
TRANSCRIPT
1
Parte 3
Modulo 4:Gestore del File System (Memoria secondaria)
Componenti
Interfaccia utente
Gestore dell’I/O Gestore del File System
Informatica - A.A. 2009/2010 - Sistemi operativi 3.50
*KERNEL
Gestore dei Processi Gestore della Memoria Centrale
2
Gestore del File System
• Il gestore del file system è quel modulo del sistema operativo incaricato di gestire le informazioni memorizzate sui dispositivi diinformazioni memorizzate sui dispositivi di memoria secondaria DISCO e altri dispositivi di memoria di massa
• Il gestore del file system deve garantire:l tt
Informatica - A.A. 2009/2010 - Sistemi operativi 3.51
– la correttezza– la coerenza– il recupero efficiente
delle informazioni memorizzate
Gestore del File System
• Si occupa di:– Associare un nome di file ad una parte dello spazio
del discodel 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’organizzazione fisica)
Informatica - A.A. 2009/2010 - Sistemi operativi 3.52
file (che astrae dall organizzazione fisica)– Fisica gestire i file nella memoria secondaria
(dischi) e ottimizzare l’utilizzo dello spazio disponibile
3
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)
Informatica - A.A. 2009/2010 - Sistemi operativi 3.53
)– proteggere i propri file (da accessi non
desiderati)
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
4
Altre funzioni
• Nei sistemi multi-utente, il Sistema Operativo deve mettere a disposizione dei meccanismi dideve 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
Informatica - A.A. 2009/2010 - Sistemi operativi 3.56
• Tutti i dati vengono suddivisi in file• I file vengono memorizzati nelle memorie di
massa
5
File
• Un insieme di informazioni (dati, documenti) memorizzate su supporti di memoria secondaria sotto forma di una sequenza di bit byte recordsotto forma di una sequenza di bit, byte, record logici, record fisici
file Disco
Informatica - A.A. 2009/2010 - Sistemi operativi 3.57
Tipo di file
• Ogni file è composto tipicamente da:– Nome: stringa arbitraria decisa dall’utente
E t i i i (fi t ) di tt i h– Estensione: insieme (fissato) di caratteri che definiscono il TIPO di un file
Esempifile.doc file.zip file.wavfile txt file gif file mpeg
Informatica - A.A. 2009/2010 - Sistemi operativi 3.58
file.txt file.gif file.mpegfile.jpg file.xls …file.pdf file.exefile.ppt file.mp3
6
Operazioni su file
• Creazione• Apertura
Chi• Chiusura• Cancellazione• Copia • Rinomina• Visualizzazione
Informatica - A.A. 2009/2010 - Sistemi operativi 3.59
• Lettura• Scrittura• Modifica• …
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
Informatica - A.A. 2009/2010 - Sistemi operativi 3.60
stessa posizione
• Salva come: scrive l’istanza corrente sul disco con un nuovo nome e/o una posizione differente
7
Nuova istanza di file• Il comando Nuovo crea una
istanza “vuota”
• Cos’è una “informazione vuota”?Cos è una informazione 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
Informatica - A.A. 2009/2010 - Sistemi operativi 3.61
♦ 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
Organizzazione di più file: directory
• Quasi tutti i sistemi operativi utilizzano un’organizzazione gerarchica del File Systemun 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
Informatica - A.A. 2009/2010 - Sistemi operativi 3.62
può essere rappresentato attraverso una rappresentazione grafica: albero delle directory
8
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?
Informatica - A.A. 2009/2010 - Sistemi operativi 3.63
Organizzazione gerarchica: logica o fisica?
Organizzazione solo logica: non c’è alcunarelazione con la posizione fisica dei file di una
directory (cartella) sul disco
Organizzazione ad albero
• Albero rovesciato (come genealogico)• Nodi e collegamenti padre-figlio tra nodi
Nodo: file o directory• Nodo: file o directory• Nodi divisi per livelli• Collegamenti tra nodi di livelli vicini:
– nodo sopra = padre– nodo sotto = figlio
• Ogni nodo ha un solo padre
directoryfile
Informatica - A.A. 2009/2010 - Sistemi operativi 3.64
Ogni nodo ha un solo padre• Padre più in alto = radice• I nodi file non hanno figli• Cammino assoluto o relativo (per file)
9
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 particolare file
Informatica - A.A. 2009/2010 - Sistemi operativi 3.66
p• di tutti i file che soddisfano una particolare relazione
• Operazioni più complesse: backup, …
10
Esempio: Albero delle directory in Unix
• La directory principale è "/"
• Lo stesso• Lo stesso carattere / viene usato per separare i nomi delle directory
• Ad esempio /usr/bin/ indica
Informatica - A.A. 2009/2010 - Sistemi operativi 3.67
la directory bincontenuta nella directory usrcontenuta nella root (/)
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
11
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
12
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
tà ( d i bl k t) i lmetà (ad esempio per un blackout) viene persa solo 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 modifica cancellazione e altri)(lettura, scrittura, 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
13
Ext3
• Extended File System 3 - diffuso su sistemi GNU/Linuxintrod ce il jo rnaling del file s stem• introduce il journaling del file system.
• 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 chiudere il sistema operativo) possano p ) pdanneggiare 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 separatofunziona 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
ti i l t h à llpartizione come vuole e non toccherà quella dell'altro
– Senza le partizioni ci sarebbe voluto un disco per ciascun sistema operativo
Informatica - A.A. 2009/2010 - Sistemi operativi 3.74
14
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 primaprimo 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 d l hi iquando la macchina viene 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 è attivapartizioni, controlla quale partizione è attiva (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 specialestatus 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
15
Parte 3
Modulo 5:Gestore dei processi
Componenti
Interfaccia utente
Gestore dell’I/O Gestore del File System
Informatica - A.A. 2009/2010 - Sistemi operativi 3.78
*KERNEL
Gestore dei Processi Gestore della Memoria Centrale
16
Gestore dei processi
• Un sistema operativo con supporto per il multitasking (multiprocessualità) permette di eseguire più programmi contemporaneamenteeseguire 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 sharingCPU attuerà un meccanismo di time-sharingeseguirà 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 contestoviceversa viene definito cambio di contesto (context switch)
Informatica - A.A. 2009/2010 - Sistemi operativi 3.80
17
Scheduler
• Le decisioni riguardanti l'esecuzione di un cambio di contesto tra due programmi
i t d t d lvengono intraprese da un componente del 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 sistesso 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 efficientefunzionamento del calcolatorefunzionamento del calcolatore
• Consente di eseguire più programmi concorrentemente
• Consente di migliorare l'utilizzo del processore• Possibile uso di preemption (o pre-rilascio):
i i i ioperazione in cui un processo viene 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
18
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 altriindicati 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 minimo i possibili tempi morti)p 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 esecuzioneed 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 tt i i d l l' tt i tla sottomissione del processo e l'ottenimento della prima risposta
Informatica - A.A. 2009/2010 - Sistemi operativi 3.84
19
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 inesegue 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 attesaprocesso in attesa
• Assegna ‘a turno’ un quanto di tempo di CPU ai processi in attesa
Informatica - A.A. 2009/2010 - Sistemi operativi 3.86
20
Esempio
• Ipotesi: i seguenti processi siano in coda con relativa durata in millisecondi, e quanto di tempo stabilito di 20 ms: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
i 25) 1 (t i héms, ne rimangono 25) → p1 (termina perché 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
21
Shortest Next Process First
• SNPF prevede che venga eseguito sempre il processo con il tempo di esecuzione più breve tra quelli in attesaquelli 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: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
Informatica - A.A. 2009/2010 - Sistemi operativi 3.89
[(15-15)+(45-30)+(90-45)+(150-60)]/4 = 37,5 ms
SNPF
• Si può dimostrare che questo algoritmo è ottimale, in quanto consente di ottenere sempre il valore più basso di tempo d'attesasempre il valore più basso di tempo d'attesa medio
• Sfortunatamente non è possibile applicarlo, in quanto non è possibile conoscere anticipatamente quanto durerà l'esecuzione del processodel processo
• Potrebbe essere possibile predirlo
Informatica - A.A. 2009/2010 - Sistemi operativi 3.90
22
Scheduling con priorità• Una priorità (numero intero) è assegnata ad
ogni processo• La CPU è assegnata al processo con più alta• 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ù bassaProblema: 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
23
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 centralememoria centrale
la memoria centrale diventa una risorsa unica, in generale scarsa, da suddividere tra i vari programmi
• Il gestore della memoria applica tecniche per ti il flitt t di i d llgestire il conflitto tra dimensione della
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
24
Gestione della memoria centrale
• Strategia seguita:– Mantenere in memoria soltanto una porzione dei
programmi e dei dati (la porzione necessaria in quel p g ( p qmomento)
– 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: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 incontenuto 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” e “pronti per l’esecuzione”stato di attesa e pronti per l esecuzione– Ok per quelli in attesa – Quasi ok per quelli pronti
Informatica - A.A. 2009/2010 - Sistemi operativi 3.96
25
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 l l t è h’ di i i icalcolatore è anch’esso diviso in pagine
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
26
Idea di base della paginazione
• Si basa sul concetto di località spazio-temporale– 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 rieseguitaP i i i d l 10 90 il 10% d l di– Principio del 10-90: il 10% del codice 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 esecuzionedel 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
27
Memoria virtuale
• Sia nel caso della paginazione, sia in quello della segmentazione, il gestore della memoria offre al programma applicativo la visione dioffre 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 caricaticontemporaneamente 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)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
28
Processi e memoria
• La gestione della memoria deve essere coordinata con la gestione dei processi:
le pagine di programma che sono attualmente in– 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 di input da memoria di massa delladopo 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