Upload
vuque
View
216
Download
0
Embed Size (px)
Citation preview
La Gestionedelle risorse
Renato Agati
Schedulazione dei processi
Gestione della memoria
Gestione delle periferiche
File system
GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE
Schedulazione dei processi
Gestione della memoria
Gestione delle periferiche
File system
GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE
Mono programmazioneMono programmazione
Multi programmazioneMulti programmazione
Schedulazione dei processi
GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE
Stati di un processoStati di un processo
New
Waiting
Ready Running
Terminated
Schedulazione dei processi
GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE
Mono programmazioneMono programmazione
F. L. F. S.F. L. F. S.
S. J. F.S. J. F.
PrioritàPriorità
Round RobinRound Robin
Algoritmi di schedulazioneAlgoritmi di schedulazione
Schedulazione dei processi
GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE
Multi programmazioneMulti programmazione
indipendentiindipendenti
cooperazionecooperazione
dipendentidipendenti
competizionecompetizione
Processi paralleliProcessi paralleli
stallostallo
condivisionecondivisione
comunicazionecomunicazione
rischirischi
MutuaesclusioneMutuaesclusione
sincronizzazionesincronizzazione
Schedulazione dei processi
Gestione della memoria
Gestione delle periferiche
File system
GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE
Ogni programma eseguibile occupa uno spazio logicoOgni programma eseguibile occupa uno spazio logico
Il Gestore della memoria:Consente il caricamento di più programmiControlla che ogni processo acceda solo all’area di memoria assegnata
Il Gestore della memoria:Consente il caricamento di più programmiControlla che ogni processo acceda solo all’area di memoria assegnata
Per essere eseguito il programma deve essere caricato(totalmente o parzialmente) in memoria, occupando uno spazio fisico
Per essere eseguito il programma deve essere caricato(totalmente o parzialmente) in memoria, occupando uno spazio fisico
Lo spazio fisico viene assegnato e gestito dal Gestore della memoria (memory manager)Lo spazio fisico viene assegnato e gestito dal Gestore della memoria (memory manager)
Schedulazione dei processi
Gestione della memoria
Gestione delle periferiche
File system
GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE
Caricamento staticoCaricamento statico
Programma caricato per intero;risiede sempre in memoriaper tutto il tempo dell’esecuzione
Programma caricato per intero;risiede sempre in memoriaper tutto il tempo dell’esecuzione
Caricamento dinamicoCaricamento dinamico
Programma caricato per intero o porzioni;Programma caricato e scaricato più volte;Lo spazio fisico può essere ridefinito più volte
Programma caricato per intero o porzioni;Programma caricato e scaricato più volte;Lo spazio fisico può essere ridefinito più volte
Schedulazione dei processi
Gestione della memoria
Gestione delle periferiche
File system
GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE
Caricamento staticoCaricamento statico
Partizioni fisse
Partizioni variabili
Segmentazione
Paginazione
Caricamento dinamicoCaricamento dinamico
Memoria virtuale
Paginazione dinamica
Segmentazione dinamica
Segmentazione con Paginazione
Gestione della memoria
GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE
Caricamento staticoCaricamento statico Partizioni fisse
Processo 1
Processo 2
Libera
Libera
Partizione 1
Partizione 2
Partizione 3
Partizione 4
SistemaOperativo Partizioni di dimensioni diverse, ma fisse
Ogni programma viene caricato in una partizione,dove rimane per tutta l’esecuzione
Se le partizioni sono molto grandi, si spreca spazio
E’ bene che ogni processo occupi la partizione più piccola disponibile
Se le partizioni sono più piccole del processo da caricare,esso non può essere caricato
Esiste una tabella di descrittori di partizioni
Gestione della memoria
GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE
Caricamento staticoCaricamento statico Partizioni fisse
N. Partizione Dimensione Indirizzo iniziale Stato
1 8 MB 312 MB In uso
2 32 MB 320 MB In uso
3 32 MB 352 MB Non in uso
4 120 MB 384 MB Non in uso
5 520 MB 504 MB In uso
NOTA: si suppone che i primo 312 MB siano usati dal sistema operativo
Gestione della memoria
GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE
Caricamento staticoCaricamento statico Partizioni fisse
N. Partizione Dimensione Dimensione processo
Spazio sprecato
1 8 MB 1 MB 7 MB
2 32 MB 9 MB 23 MB
3 32 MB 9 MB 23 MB
4 120 MB 33 MB 87 MB
5 520 MB 121 MB 399 MB
TOTALE 712 MB 173 MB 539 MB
NOTA: si suppone che i primo 312 MB siano usati dal sistema operativo
Gestione della memoria
GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE
Caricamento staticoCaricamento statico Partizioni variabili
Processo 1
Processo 2
Libera
Libera
Partizione 1
Partizione 2
Partizione 3
Partizione 4
SistemaOperativo Le partizioni vengono create man mano che deve essere
caricato un processo
Viene comunque creata una partizione libera tra due partizioni occupate
Esistono due tabelle di descrittori, una per le partizioni, una per le aree libere
Gestione della memoria
GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE
Caricamento staticoCaricamento statico Partizioni variabili
Processo 1
Processo 2
Libera
Libera
Partizione 1
Partizione 2
Partizione 3
Partizione 4
SistemaOperativo Le partizioni create rimangono tali anche quando il
processo è terminato.
Quando un nuovo processo non trova una partizione adatta, viene eseguito il compattamento, ovvero la ridefinizione e riallocazione delle partizioni di memoria.
Gestione della memoria
GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE
Caricamento staticoCaricamento statico Segmentazione
Segmento 1
Segmento 2
Libera
Libera
Partizione 1
Partizione 2
Partizione 3
Partizione 4
SistemaOperativo Lo spazio logico del programma non è uno spazio
lineare ma viene suddiviso in segmenti
Ogni segmento viene caricato in una partizione con il metodo delle partizioni variabili
La frammentazione dei processi viene ridotta perché è più facile adattare i segmenti alle partizioni.
Esistono tabelle dei descrittori di partizioni e di segmento.
Gestione della memoria
GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE
Caricamento staticoCaricamento statico Paginazione
La memoria viene suddivisa in blocchi tutti di uguale dimensione
Lo spazio logico del programma viene suddiviso in pagine della stessa dimensione dei blocchiOgni pagina viene memorizzata in blocchi qualsiasi, contigui o non contigui
Esiste tabella di descrittori dei blocchi e del loro stato.
Esiste tabella di mappa di pagina per sapere in quali blocchi sono memorizzate le pagine di un programma
Blocco 1
Blocco 3
Blocco 2
- - - - -
- - - - -
Blocco n
- - - - -
Pagina1
Pagina3
Pagina2
Gestione della memoria
GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE
Caricamento dinamicoCaricamento dinamico Memoria virtuale
Nel caricamento dinamico un programma viene caricato per intero o porzioni
Il programma (o porzione) può essere caricato e scaricato più volte (swapping)
Lo spazio fisico può essere ridefinito più volte
Oltre allo spazio fisico deve essere assegnato al processo anche uno spazio su disco in un’apposita area (area di swap)
Caricamenti e scaricamenti, totali o parziali, durante l’esecuzione, consistono in trasferimenti dall’area di swap alla memoria principale e viceversa.
La memoria reale e l’area di swap su disco costituiscono la memoria virtuale
Gestione della memoria
GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE
Caricamento dinamicoCaricamento dinamico Memoria virtuale
I processi permanenti del sistema operativo non vengono mai caricati dinamicamente
I processi che possono essere scaricati sono:
• I processi in stato di attesa (a meno che non devono usare il DMA)
• I processi che esauriscono il time-slice
Gestione della memoria
GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE
Caricamento dinamicoCaricamento dinamico Paginazione dinamica
Lo spazio logico del programma viene suddiviso in pagine
Alcune pagine vengono caricate in memoria, altre pagine rimangono nell’area di swap e vengono caricate all’occorenza.
Le pagine caricate in memoria sono dette accessibili; quando il programma fa riferimento ad una istruzione di una pagina inaccessibile :• si verifica un’interruzione (page fault)• Il processo viene sospeso (passa in stato di attesa)• Il sistema operativo provvede a caricare la pagina• Il processo viene riattivato solo quando la pagina è stata caricata
Esistono algoritmi per la gestione dei blocchi e delle pagine (quali pagine inaccessibili devono essere caricate, liberazione di blocchi scaricando le pagine accessibili, ecc.)
Gestione della memoria
GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE
Caricamento dinamicoCaricamento dinamico Segmentazione dinamica
Lo spazio logico del programma viene suddiviso in segmenti
I segmenti vengono caricati in partizioni variabili
La tecnica della segmentazione dinamica è simile a quella della paginazione dinamica
Gestione della memoria
GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE
Caricamento dinamicoCaricamento dinamico Segmentazione con Paginazione
Il metodo della segmentazione con paginazione combina insieme le tecniche della segmentazione e della paginazione.
Il programma viene suddiviso in segmenti; ciascun segmento viene suddiviso in pagine.La memoria viene suddivisa in blocchi di ugual misura.
Sistemi MultiprocessoreSistemi Multiprocessore
Memoria condivisa (piattaforma shared-address-space)
• La memoria è in comune ed è accessibile a tutti i processori;• I cambiamenti effettuati da un processore in una locazione di memoria, sono visibili a tutti gli altri processori (cache coherency);L’accesso alla memoria può essere:- uniforme (UMA)- non uniforme (NUMA)
Accesso alla memoria uniforme (UMA - Uniform Memory Access):•Processori identici•tempo di accesso di ogni processore alla memoria è uguale per tutti;•utilizzo nelle macchine SMP – Symmetric MultiProcessor
Accesso alla memoria non uniforme (NUMA – Non Uniform Memory Access):•tempo di accesso differente per ogni processore•un processore può accedere direttamente alla memoria di un altro processore.
Vantaggi della memoria condivisa:la vicinanza della memoria con i processori garantisce uno scambio dati veloce e uniforme.
Svantaggi della memoria condivisa:l’aggiunta di nuovi processori aumenta il traffico sul bus della memoria condivisa;aggiungendo nuovi processori è necessario rivedere l’applicazione per risincronizzare gli accessi alla memoria.
Sistemi MultiprocessoreSistemi Multiprocessore
Memoria distribuita (piattaforma message-passing)
• Ogni processore ha una sua propria memoria locale che non può essere condivisa con un altro processore.• Ogni processore lavora in maniera indipendente dagli altri processori;i cambiamenti eseguiti nella memoria da un processore non influenzano il calcolo degli altri processori.• Architettura di memoria presente nel caso in cui il calcolo parallelo viene implementato con più sistemi collegati tra loro attraverso una rete locale.
Vantaggi della memoria distribuita:• l’aumento del numero di processori è accompagnato da un aumento proporzionale della memoria;• ogni processore può accedere alla propria memoria senza interferenze di altri processori.
Svantaggi della memoria distribuita:• una maggiore complessità del software che deve garantire una corretta sincronizzazione tra le task di due processori quando uno di essi deve accedere ai dati elaborati dall’altro.• Accesso di tipo NUMA (tempi non uniformi)