Renato Agati della memoria GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE Caricamento...

23
La Ge st i on e d e l l e ri s orse Renato Agati

Transcript of Renato Agati della memoria GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE Caricamento...

Page 1: Renato Agati della memoria GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE Caricamento staticoCaricamento statico Partizioni variabili Processo 1 Processo 2 Libera Libera Partizione 1

La Gestionedelle risorse

Renato Agati

Page 2: Renato Agati della memoria GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE Caricamento staticoCaricamento statico Partizioni variabili Processo 1 Processo 2 Libera Libera Partizione 1

Schedulazione dei processi

Gestione della memoria

Gestione delle periferiche

File system

GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE

Page 3: Renato Agati della memoria GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE Caricamento staticoCaricamento statico Partizioni variabili Processo 1 Processo 2 Libera Libera Partizione 1

Schedulazione dei processi

Gestione della memoria

Gestione delle periferiche

File system

GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE

Mono programmazioneMono programmazione

Multi programmazioneMulti programmazione

Page 4: Renato Agati della memoria GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE Caricamento staticoCaricamento statico Partizioni variabili Processo 1 Processo 2 Libera Libera Partizione 1

Schedulazione dei processi

GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE

Stati di un processoStati di un processo

New

Waiting

Ready Running

Terminated

Page 5: Renato Agati della memoria GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE Caricamento staticoCaricamento statico Partizioni variabili Processo 1 Processo 2 Libera Libera Partizione 1

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

Page 6: Renato Agati della memoria GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE Caricamento staticoCaricamento statico Partizioni variabili Processo 1 Processo 2 Libera Libera Partizione 1

Schedulazione dei processi

GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE

Multi programmazioneMulti programmazione

indipendentiindipendenti

cooperazionecooperazione

dipendentidipendenti

competizionecompetizione

Processi paralleliProcessi paralleli

stallostallo

condivisionecondivisione

comunicazionecomunicazione

rischirischi

MutuaesclusioneMutuaesclusione

sincronizzazionesincronizzazione

Page 7: Renato Agati della memoria GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE Caricamento staticoCaricamento statico Partizioni variabili Processo 1 Processo 2 Libera Libera Partizione 1

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)

Page 8: Renato Agati della memoria GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE Caricamento staticoCaricamento statico Partizioni variabili Processo 1 Processo 2 Libera Libera Partizione 1

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

Page 9: Renato Agati della memoria GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE Caricamento staticoCaricamento statico Partizioni variabili Processo 1 Processo 2 Libera Libera Partizione 1

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

Page 10: Renato Agati della memoria GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE Caricamento staticoCaricamento statico Partizioni variabili Processo 1 Processo 2 Libera Libera Partizione 1

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

Page 11: Renato Agati della memoria GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE Caricamento staticoCaricamento statico Partizioni variabili Processo 1 Processo 2 Libera Libera Partizione 1

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

Page 12: Renato Agati della memoria GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE Caricamento staticoCaricamento statico Partizioni variabili Processo 1 Processo 2 Libera Libera Partizione 1

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

Page 13: Renato Agati della memoria GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE Caricamento staticoCaricamento statico Partizioni variabili Processo 1 Processo 2 Libera Libera Partizione 1

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

Page 14: Renato Agati della memoria GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE Caricamento staticoCaricamento statico Partizioni variabili Processo 1 Processo 2 Libera Libera Partizione 1

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.

Page 15: Renato Agati della memoria GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE Caricamento staticoCaricamento statico Partizioni variabili Processo 1 Processo 2 Libera Libera Partizione 1

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.

Page 16: Renato Agati della memoria GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE Caricamento staticoCaricamento statico Partizioni variabili Processo 1 Processo 2 Libera Libera Partizione 1

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

Page 17: Renato Agati della memoria GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE Caricamento staticoCaricamento statico Partizioni variabili Processo 1 Processo 2 Libera Libera Partizione 1

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

Page 18: Renato Agati della memoria GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE Caricamento staticoCaricamento statico Partizioni variabili Processo 1 Processo 2 Libera Libera Partizione 1

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

Page 19: Renato Agati della memoria GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE Caricamento staticoCaricamento statico Partizioni variabili Processo 1 Processo 2 Libera Libera Partizione 1

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.)

Page 20: Renato Agati della memoria GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE Caricamento staticoCaricamento statico Partizioni variabili Processo 1 Processo 2 Libera Libera Partizione 1

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

Page 21: Renato Agati della memoria GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE Caricamento staticoCaricamento statico Partizioni variabili Processo 1 Processo 2 Libera Libera Partizione 1

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.

Page 22: Renato Agati della memoria GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE Caricamento staticoCaricamento statico Partizioni variabili Processo 1 Processo 2 Libera Libera Partizione 1

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.

Page 23: Renato Agati della memoria GESTIONE DELLE RISORSEGESTIONE DELLE RISORSE Caricamento staticoCaricamento statico Partizioni variabili Processo 1 Processo 2 Libera Libera Partizione 1

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)