[ppt]gestione della memoriamariangelamone.altervista.org/tps/memoria.ppsx · web viewallocazione...

21
Gestione della memoria

Upload: duongdang

Post on 16-Feb-2019

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: [PPT]Gestione della memoriamariangelamone.altervista.org/tps/memoria.ppsx · Web viewAllocazione della memoria Con l’avvento del multitasking più processi possono essere caricati

Gestione della memoria

Page 2: [PPT]Gestione della memoriamariangelamone.altervista.org/tps/memoria.ppsx · Web viewAllocazione della memoria Con l’avvento del multitasking più processi possono essere caricati

Introduzione Ogni processo che deve essere eseguito da un

sistema di elaborazione, deve essere caricato e risiedere almeno parzialmente nella memoria centrale

Durante lo scheduling della CPU, essa viene associata ciclicamente a più processi.

Per essere efficiente il sistema di elaborazione, i processi devono risiedere contemporaneamente in memoria centrale

È compito opportuno di un modulo di gestire la memoria centrale

Page 3: [PPT]Gestione della memoriamariangelamone.altervista.org/tps/memoria.ppsx · Web viewAllocazione della memoria Con l’avvento del multitasking più processi possono essere caricati

Gestione della memoriaLe problematiche relative alla gestione della memoria

sono le seguenti: Differente velocità di accesso della CPU ai propri registri

interni o all’esecuzione di una istruzione. Ciò provoca un rallentamento del processore. L’utilizzo di una memoria cache rende più veloce l’accesso ai dati

Più processi possono invadere la memoria dedicata a processi di sistemi o ad altri; il sistema operativo gestisce gli spazi affinchè ciò non avvenga

Nel corso di esecuzione un processo può essere spostato dalla memoria centrale ad una memoria di massa. Il sistema operativo deve fare in modo che il processo possa comunque avanzare

Page 4: [PPT]Gestione della memoriamariangelamone.altervista.org/tps/memoria.ppsx · Web viewAllocazione della memoria Con l’avvento del multitasking più processi possono essere caricati

Swapping Lo swapping è una operazione di caricamento e

scaricamento di un processo Avviene quando nella memoria centrale ci sono

troppi processi in coda Alcuni processi vengono caricati in una memoria

ausiliaria Gli scheduler che decidono di portare a termine un

processo nella memoria ausiliaria, affidano al dispatcher il compito di reperire i processi interessati.

Il dispatcer però cerca i processi prima tra i pronti e poi, nella memoria ausiliaria

Page 5: [PPT]Gestione della memoriamariangelamone.altervista.org/tps/memoria.ppsx · Web viewAllocazione della memoria Con l’avvento del multitasking più processi possono essere caricati

Indirizzi Gli indirizzi simbolici sono quelli cui fanno riferimento le

applicazioni e sono generalmente indici, contatori, etichette Gli indirizzi rilocabili sono gli indirizzi di partenza delle

applicazioni ma non si riferiscono alla collocazione assoluta in memoria.

Gli indirizzi assoluti vengono generarti in fase di caricamento del processo o di compilazione o, come nella maggior parte dei sistemi operativi, in fase di esecuzione

Gli indirizzi logici sono quelli generati da un programma. L’insieme degli indirizzi logici è detto spazio degli indirizzi logici

Gli indirizzi fisici sono la locazione fisica vera e propria di un programma all’interno della memoria. L’insieme degli indirizzi fisici è detto spazio degli indirizzi fisici

Ad ogni indirizzo logico, viene attribuito un indirizzo fisico, sommando l’indirizzo logico con l’indirizzo di locazione

Page 6: [PPT]Gestione della memoriamariangelamone.altervista.org/tps/memoria.ppsx · Web viewAllocazione della memoria Con l’avvento del multitasking più processi possono essere caricati
Page 7: [PPT]Gestione della memoriamariangelamone.altervista.org/tps/memoria.ppsx · Web viewAllocazione della memoria Con l’avvento del multitasking più processi possono essere caricati
Page 8: [PPT]Gestione della memoriamariangelamone.altervista.org/tps/memoria.ppsx · Web viewAllocazione della memoria Con l’avvento del multitasking più processi possono essere caricati
Page 9: [PPT]Gestione della memoriamariangelamone.altervista.org/tps/memoria.ppsx · Web viewAllocazione della memoria Con l’avvento del multitasking più processi possono essere caricati

Allocazione della memoria Con l’avvento del multitasking più processi possono essere

caricati contemporaneamente e la memoria deve essere ripartita.

Le partizioni non sono tutte della stessa dimensione; l’estensione viene stabilita a priori

Appena si libera una partizione, viene selezionato un nuovo processo

Un processo va ad occupare solo la porzione di memoria che realmente gli occorre. Se avanzano degli spazi di memoria si creano dei buchi. Il sistema operativo mette a disposizione una tabella di partizioni fisse.

Partizione variabile:è una tecnica più moderna della precedente; il frazionamento della memoria viene stabilito volta per volta dal sistema operativo. Le dimensioni delle partizioni non sono fisse ma vengono stabilite volta per volta.

Page 10: [PPT]Gestione della memoriamariangelamone.altervista.org/tps/memoria.ppsx · Web viewAllocazione della memoria Con l’avvento del multitasking più processi possono essere caricati

First Fit Si assegna al primo processo la prima area libera sufficientemente grande da

contenerlo; al secondo processo la seconda area libera sempre sufficientemente grande da contenerlo e così via.

Sia allora la seguente tabella dei processi con le rispettive dimensioni e la tabella delle partizioni di memoria:

Le assegnazioni sono le seguenti:

Processi dimensioni

P1 250 kBP2 400 kBP3 150 kBP4 50 kBP5 125 kB

Aree dimensioni

A 200 kBB 140 kBC 250 kBD 500 kBE 450 kB

processi AreeP1 CP2 DP3 AP4 BP5 E

Page 11: [PPT]Gestione della memoriamariangelamone.altervista.org/tps/memoria.ppsx · Web viewAllocazione della memoria Con l’avvento del multitasking più processi possono essere caricati

Best fit Per migliorare la tecnica precedente, si associa ad ogni processo l’area di memoria

più piccola ma sufficientemente grande da contenere ogni processo. Si ordina allora la tabella della memoria per ordine crescente. In base all’esempio precedente, la tabella dei processi e delle aree di memoria sarà

la seguente:

Processi AreeP1 CP2 EP3 AP4 BP5 D

Page 12: [PPT]Gestione della memoriamariangelamone.altervista.org/tps/memoria.ppsx · Web viewAllocazione della memoria Con l’avvento del multitasking più processi possono essere caricati

Worst fit Con tale tecnica si associa ai processi

l’area più grande possibile. Si ordina la tabella per ordine decrescente e, la relazione tra processi e aree di memoria sarà:

Processi AreeP1 DP2 EP3 CP4 AP5 B

Page 13: [PPT]Gestione della memoriamariangelamone.altervista.org/tps/memoria.ppsx · Web viewAllocazione della memoria Con l’avvento del multitasking più processi possono essere caricati

Compattazione In ognuno dei metodi precedenti lascia

delle aree di memoria libere dando vita alla frammentazione esterna

Riordinando le aree di memoria e riunendole insieme, si effettua la compattazione rendendo i residui aree disponibili.

Page 14: [PPT]Gestione della memoriamariangelamone.altervista.org/tps/memoria.ppsx · Web viewAllocazione della memoria Con l’avvento del multitasking più processi possono essere caricati

Paginazione Metodo molto efficace utilizzato nei s.o. per la

gestione della memoria Consiste nel dividere lo spazio logico del

processo in parti uguali detti pagine; la memoria fisica viene divisa in parti della stessa dimensione delle pagine e sono detti frame

Ogni pagina viene posta in un frame Le pagine non occupano spazi adiacenti di

memoria per cui, c’è bisogno di una tabella delle pagine

Page 15: [PPT]Gestione della memoriamariangelamone.altervista.org/tps/memoria.ppsx · Web viewAllocazione della memoria Con l’avvento del multitasking più processi possono essere caricati

Paginazione: tabella delle pagine

Memoria logica

Pag. 0Pag. 1Pag. 2Pag. 3

Pag. Frame 0 31 52 03 1

Mem

fisica23

0

1

0

12345

Il numero di frame in cui può essere divisa una memoria è dato da dimensione memoria/dimensione pagina

Page 16: [PPT]Gestione della memoriamariangelamone.altervista.org/tps/memoria.ppsx · Web viewAllocazione della memoria Con l’avvento del multitasking più processi possono essere caricati

Paginazione Lo spazio logico di un processo viene diviso in un

numero m di pagine di k byte ciascuna Lo spazio fisico della memori viene diviso in n frame di

k1 byte La tabella delle pagine mette in relazione il numero di

pagine con il numero di frame Es nella gestione della memoria in DOS, si effettua la

divisione in quattro segmenti: segmento codice, segmento dati, segmento stack e segmento extra

All’interno di un segmento si può accedere indicando lo scostamento, cioè la distanza dall’inizio

Ogni indirizzo logico è quindi individuato dal nome del segmento s dallo scostamento d

Page 17: [PPT]Gestione della memoriamariangelamone.altervista.org/tps/memoria.ppsx · Web viewAllocazione della memoria Con l’avvento del multitasking più processi possono essere caricati
Page 18: [PPT]Gestione della memoriamariangelamone.altervista.org/tps/memoria.ppsx · Web viewAllocazione della memoria Con l’avvento del multitasking più processi possono essere caricati

Segmentazione Un programma può essere suddiviso in

procedure e funzioni Lo spazio logico può essere diviso in

segmenti ognuno dei quali contiene un modulo o una struttura dati diversi

Page 19: [PPT]Gestione della memoriamariangelamone.altervista.org/tps/memoria.ppsx · Web viewAllocazione della memoria Con l’avvento del multitasking più processi possono essere caricati

Memoria virtuale Un processo per essere eseguito può risiedere in

memoria centrale ma anche in memoria di massa Quando i programmi sono molto ampi possono

prevedere una parte del codice utilizzato raramente

Conviene allora non caricare tutto il codice in memoria ma solo in parte. Risulta più utile caricare solo il codice che serve

La memoria di massa e quella centrale sono viste come un’unica memoria detta virtuale e lo spazio degli indirizzi è detto spazio degli indirizzi virtuali

Page 20: [PPT]Gestione della memoriamariangelamone.altervista.org/tps/memoria.ppsx · Web viewAllocazione della memoria Con l’avvento del multitasking più processi possono essere caricati

Paginazione su richiesta Tecnica che permette di caricare in

memoria centrale solo le pagine necessarie e le altre le altre in memoria di massa

Il paginatore è un modulo del sistema operativo che carica le pagine utili nella memoria centrale

Page 21: [PPT]Gestione della memoriamariangelamone.altervista.org/tps/memoria.ppsx · Web viewAllocazione della memoria Con l’avvento del multitasking più processi possono essere caricati