CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di...

72
© 2001 - William Fornaciari © 2001 - William Fornaciari CEFRIEL CEFRIEL Consorzio per la Formazione e la Consorzio per la Formazione e la Ricerca Ricerca in Ingegneria dell’Informazione in Ingegneria dell’Informazione Politecnico Politecnico di Milano di Milano La Gestione della memoria La Gestione della memoria Introduzione Introduzione Docente: Docente: William Fornaciari William Fornaciari Politecnico di Milano Politecnico di Milano [email protected] [email protected] www.elet.polimi.it/~fornacia www.elet.polimi.it/~fornacia

Transcript of CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di...

Page 1: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

© 2001 - William Fornaciari© 2001 - William Fornaciari

CEFRIELCEFRIELConsorzio per la Formazione e la RicercaConsorzio per la Formazione e la Ricercain Ingegneria dell’Informazionein Ingegneria dell’Informazione

PolitecnicoPolitecnicodi Milanodi Milano

La Gestione della memoriaLa Gestione della memoria

IntroduzioneIntroduzione

Docente:Docente:

William FornaciariWilliam Fornaciari

Politecnico di MilanoPolitecnico di [email protected]@elet.polimi.it

www.elet.polimi.it/~fornaciawww.elet.polimi.it/~fornacia

Page 2: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 22 - -

SommarioSommario

IndirizzamentoCaricamento del codiceIndirizzi logici e fisiciSistemi MultiprogrammatiSegmentazione e paginazioneEsempi

Page 3: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 33 - -

IndirizzamentoIndirizzamento

La CPU esegue programmi che elaborano insiemi di dati in base ad una sequenza di istruzioni

La CPU genera i riferimenti in memoria per dati e istruzioni, cioè gli indirizzi logici

Gli indirizzi cambiano formato nei vari passi:Compilazione

Linking

Caricamento

Esecuzione

Page 4: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 44 - -

IndirizzamentoIndirizzamento

Si parla di codiceAssoluto: in compilazione vengono generati solo indirizzi con riferimento a dove esattamente il codice dovrà risiedere in memoria durante l'esecuzione

Eseguibili .COM di DOS

Rilocabile: in compilazione gli indirizzi fanno riferimento ad un indirizzo base non specificato. Verrà fissato dal loader durante il caricamento

Eseguibili .EXE di DOS/Windows

Dinamicamente rilocabile: codice rilocabile che contiene solo riferimenti relativi a se stesso; può essere spostato durante l'esecuzione

Eseguibili di Windows NT

Page 5: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 55 - -

Caricamento del codiceCaricamento del codice

Caricamento dinamicoUna funzione viene caricata solo quando ne è richiesta l'esecuzioneOgni funzione è memorizzata separatamente in formato rilocabileQuesta tecnica è utilissima in caso di programmi con molte funzioni usate raramente

Esempio: Routine di gestione di errori

Il sistema operativo fornisce le primitive per il caricamento dinamico La corretta implementazione di questa tecnica è delegata al programmatore dell'applicazione

Page 6: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 66 - -

Caricamento del codiceCaricamento del codice

Linking dinamicoUna libreria di funzioni viene caricata solo quando ne e' richiesta l'esecuzione.Il codice compilato contiene solo uno stub

Stub: parte di codice che permette al compilatore di generare la chiamata corretta ad una funzione esterna, gestita dal sistema operativo

Al primo riferimento alla funzione, il codice nello stub controlla la disponibilità della libreria ed in caso ne richiede il caricamento al sistema operativo Per i riferimenti successivi, la libreria è disponibile e la chiamata alle sue funzioni è immediata

Esempio: le librerie .DLL in Windows

Page 7: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 77 - -

Caricamento del codiceCaricamento del codice

OverlaysIl codice eseguibile è spezzato in più parti, dette overlay, che si richiamano all'occorrenzaIl caricamento degli overlay è coordinato dal programma stessoNon c'è alcun supporto nel sistema operativo

Esempio: vecchi programmi DOS, costretti nei 640 KB della memoria dei primi PC

Page 8: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 88 - -

Indirizzi logici e indirizzi fisiciIndirizzi logici e indirizzi fisici

Un indirizzo generato dalla CPU è detto indirizzo logico o virtuale

Un indirizzo logico viene fissato (binding) durante la compilazione/linking per il codice assoluto o durante il caricamento per il codice rilocabileL'insieme degli indirizzi logici generati da un programma è detto spazio di indirizzamento logico

Un indirizzo presentato alla memoria per il trasferimento di un valore è detto indirizzo fisicoDurante l'esecuzione, l'associazione tra indirizzi logici e fisici è realizzata da un dispositivo hardware dedicato

Memory Management Unit (MMU)

Page 9: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 99 - -

Indirizzi logici e indirizzi fisiciIndirizzi logici e indirizzi fisici

Schema di funzionamento della MMUL'utente non vede mai gli indirizzi fisici, ma sempre e solo quelli logici

CPU

MMU

Registro di rilocazione

14000

+

MEMORIA

Indirizzologico

Indirizzofisico

346 14346

Page 10: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 1010 - -

Sistemi multiprogrammatiSistemi multiprogrammati

In un sistema multiprogrammato più processi sono contemporaneamente pronti per essere eseguiti I processi nel sistema devono coesistere nello stesso spazio di indirizzamento fisicoUn programma deve risiedere in memoria (almeno in parte!) per essere eseguito dalla CPUQuando un programma non è in esecuzione, non è strettamente necessario che stia in memoriaLa tecnica per cui un processo viene tolto dalla memoria per fare posto per un altro che verrà schedulato è detta swapping

Page 11: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 1111 - -

SwappingSwapping

Il processo uscente subisce uno swap out Il sistema operativo copia i dati del processo su memoria di massa, in un'area riservata, detta area di swap È inutile salvare le istruzioni: basta ricaricarle dal testo del programma memorizzato nel file system

Quando il processo può rientrare nel sistema per essere a sua volta schedulato per continuare l'esecuzione, subisce uno swap in

Il sistema operativo lo ricarica in memoria ed il processo viene inserito nella lista dei processi pronti per essere eseguiti

Page 12: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 1212 - -

SwappingSwapping

Se gli indirizzi del processo sono dinamicamente rilocabili

Lo swap in può avvenire in qualunque punto della memoriaIn ogni altro caso, il processo deve essere riportato in memoria nella stessa posizione in cui era avvenuto il caricamento iniziale e il conseguente binding degli indirizzi

L'area di swap si trova su un dispositivo veloce e ad accesso diretto, possibilmente separato dal file system

Non è necessaria un'organizzazione gerarchica o una protezione dei blocchi di swap, essendo utilizzati direttamente dal sistema operativo

Page 13: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 1313 - -

SwappingSwapping

Un processo può subire uno swap out se È completamente inattivoNon ha operazioni I/O in attesa di completamento

Come fare?Non swappare processi con I/O pendenti Realizzare I/O in aree di sistema

Swapping in Windows 3.XMantiene in memoria fisica tanti processi quanti ce ne stannoQuindi inizia a scaricare interi processi in "memoria virtuale" in ordine Least Recently Used (LRU)

Page 14: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 1414 - -

Swapping in Windows 3.xSwapping in Windows 3.x

Page 15: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 1515 - -

Swapping in Windows 3.xSwapping in Windows 3.x

Page 16: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 1616 - -

Sistema operativo e processi Sistema operativo e processi utenteutente

Alcuni esempiDOS, Windows 3.X e Windows 95

Utilizzano un unico spazio di indirizzamento per il sistema operativo e le applicazioni utenteCattiva soluzione

Windows NTUtilizza spazi di indirizzamento separati 2 GB in modalità kernel, per il sistema operativo2 GB in modalità utente, per le applicazioni di differente tipo

Win32, OS/2, Posix

Page 17: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 1717 - -

Esempio: WindowsNTEsempio: WindowsNT

Executive

I/O Manager

File System

Device Drivers

Process ManagerVirtual Memory Manager

Microkernel

Hardware Abstraction Layer

Hardware

WindowManager

GraphicsDriver

PosixWin16Win32 DOS OS2

Page 18: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 1818 - -

Esempio: WindowsNTEsempio: WindowsNT

Un processoIn modalità kernel può eseguire ogni istruzione In modalità utente solo le istruzioni non privilegiate

Se un processo in modalità utente cerca di eseguire un'istruzione privilegiata

La CPU genera una interruzione (trap) al processoEsempio: cambiare la modalità di risposta alle interruzioniEsempio: un processo utente ha cercato di accedere ad un'area di memoria al di fuori del proprio spazio di indirizzamento (General Protection Fault)

Page 19: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 1919 - -

In memoria devono coesistere Il sistema operativo I processi utente

Ciò comportaCondivisione della memoria

La memoria è logicamente partizionata in un'area di sistema e una per i processi utente

Separazione degli spazi di indirizzamentoI differenti spazi di indirizzamento è bene che siano separati, in modo da non permettere ad un processo utente di corrompere il sistema operativo o addirittura bloccare il sistema

Sistema operativo e processi Sistema operativo e processi utenteutente

Page 20: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 2020 - -

Il sistema operativo, in genereRisiede nella parte bassa dello spazio di indirizzamentoIn questa zona vi sono i vettori per le interruzioni

Spazi di indirizzamento dei processi delimitati tramiteUn registro di rilocazione Un registro limite

Sistema operativo e processi Sistema operativo e processi utenteutente

CPU

RegistroLimite

Registro diRilocazione

Memoria

< +

TRAP: Errore di indirizzamento

Indirizzologico

Indirizzofisicosi

no

Page 21: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 2121 - -

Partizione singolaPartizione singola

La memoria è divisa in due partiUna per il sistema operativo Una per un processo utente

Quando il processo è schedulato per l'esecuzione, i registri di rilocazione e limite vengono inizializzatiIl sistema operativo è protetto dalle azioni del programma utenteLe dimensioni dei processi e del sistema operativo stesso possono cambiare dinamicamenteÉ limitante permettere un solo processo utente in memoria

Page 22: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 2222 - -

Partizioni multiple fissePartizioni multiple fisse

La memoria è divisa in aree contigue di dimensione fissa dette partizioni

Ognuna delle partizioni può contenere un processoQuando c'è una partizione libera un processo è caricato ed è pronto per essere schedulato per l'esecuzione

É necessario conoscere la dimensione del processo prima di attivarloProcessi piccoli causano spreco di spazio di memoriaProcesso più grande della partizione, non possono essere eseguiti

Esempio: IBM OS/360, sui mainframe (1970-1980)

Page 23: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 2323 - -

Partizioni multiple variabili Partizioni multiple variabili

Il sistema operativo tiene traccia in una tabella di quali parti della memoria sono occupate e quali no

All'inizio è libera una unica area pari a tutta la memoria, eccetto la parte occupata dal SO stesso

Quando un processo deve essere caricato, il SOSeleziona un'area in memoria di dimensioni sufficienti a contenerlo completamenteLa alloca al processo, finché il processo, terminando, la rilascia

Non viene allocato spazio che sarà inutilizzato

È necessario conoscere la dimensione del processo prima di attivarlo

Page 24: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 2424 - -

Partizioni multiple variabiliPartizioni multiple variabili

Ci può essere complessivamente abbastanza spazio libero per contenere un processo in attesa, ma non in un unica area

Si ha frammentazione esterna

Se, dato un processo da caricare, più aree sono sufficienti per contenerlo, quale sceglie il sistema operativo?Esistono diverse soluzioni possibili

Page 25: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 2525 - -

Partizioni multiple variabiliPartizioni multiple variabili

Tecniche di allocazioneFirst fit: La prima area che trova

La scelta è rapidaNon si fanno analisi sulla bontà della scelta

– è la politica utilizzata genericamente poiché rappresenta un ottimo rapporto tra complessità e risultato

Best fit: L’area di dimensioni minimeIl frammento generato è “piccolo”Occorre tenere ordinata per dimensione la lista delle aree libere, oppure scandirla tutta

Worst fit: L’area di dimensioni massimeIl frammento generato è “grande” (meglio utilizzabile?)Occorre tenere ordinata per dimensione la lista delle aree libere, oppure scandirla tutta

Page 26: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 2626 - -

Frammentazione Interna ed Frammentazione Interna ed EsternaEsterna

Frammentazione internaLo spazio allocato in eccesso rispetto alle esigenze dei processi, inutilizzabile perché allocato

Frammentazione esternaLo spazio libero in aree troppo piccole per essere utili

Tutte le tecniche di gestione della memoria soffrono di frammentazione interna, in varia misuraLa frammentazione esterna può essere ridotta:

Tecniche di compattamento basate sulla rilocazione I processi devono essere rilocabili

Page 27: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 2727 - -

Frammentazione Interna ed Frammentazione Interna ed EsternaEsterna

La rilocazione è particolarmente vantaggiosa se associata allo swapping

Il processo da spostare viene trasferito dalla memoria centrale (swap out) alla regione di swapQuando è il momento di ricaricarlo (swap in), lo si posiziona in una nuova areaAl gestore della memoria non resta altro da fare che tenere traccia e gestire le aree libere.

Page 28: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 2828 - -

Partizioni: conclusioniPartizioni: conclusioni

Le tecniche di allocazione basata sulle partizioni

Sono flessibili, ma migliorabiliSono piuttosto complesse negli algoritmi di gestioneRichiedono una stima preventiva della dimensione del processoIl punto critico è che l'area allocata ad un processo deve essere contigua

Page 29: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 2929 - -

PaginazionePaginazione

Il sistema operativo alloca ai processi aree di memoria non contigueLa memoria fisica è suddivisa in blocchi di dimensione fissata, detti frameLo spazio di indirizzamento logico è suddiviso in pagine di dimensione pari a quella dei frameIl sistema operativo:

Alloca ai processi pagineTiene traccia dello stato di allocazione dello spazio

di indirizzamento

A tale scopo utilizza una tabella delle pagine, la page table

Page 30: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 3030 - -

PaginazionePaginazione

Ogni indirizzo logico generato dalla CPU è diviso in due parti

Il numero di pagina Lo spiazzamento, o offset, all'interno della pagina

Il numero di pagina è usato come indice nella tabella delle pagine, per ottenere il numero di frame corrispondente alla pagina richiestaL'indirizzo fisico è composto

Dal numero di frame ricavato dalla page table Dall'offset contenuto nell'indirizzo logico

Page 31: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 3131 - -

PaginazionePaginazione

Traduzione di indirizzi logici in indirizzi fisici

CPU

Offset

Memoria

Indirizzologico

Indirizzofisico

Page OffsetFrame

Page Table

...f...

P M Altri bit FrameP = presenteM = modificata

...f...

PuntatorePage Table

+registro

Page 32: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 3232 - -

PaginazionePaginazione

Non c'è frammentazione esternaOgni pagina libera può essere allocata

Rimane la frammentazione internaPagine di grandi dimensioni

Maggiore frammentazione interna

Pagina di piccole dimensioniMinore frammentazione internaAumenta il carico di gestione della paginazione in quanto si ha page table più grande)I/O meno efficiente in caso di trasferimento di molti blocchi piccoli, piuttosto che pochi grossi

Page 33: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 3333 - -

PaginazionePaginazione

L'utente vede la memoria logica come un unico spazio contiguo di indirizzi

Il gestore della memoria tratta pagineLa memoria fisica è organizzata a frame

un frame è anche detto pagina fisica

La paginazione separa completamente il punto di vista dell'utente sulla memoria dalla sua realizzazione fisicaIl meccanismo che permette questo tipo di gestione è la combinazione di

Sistema operativo Alcuni accorgimenti nell'hardware

Page 34: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 3434 - -

Paginazione: dimensione Paginazione: dimensione paginapagina

Fattori da considerareRidurre la frammentazione interna

Suggerisce pagine piccole per ottimizzare l’uso della memoria

Ridurre la richiesta di pagine dal processosuggerisce pagine grandi per evitare continue richieste da parte del processo

Contenere la dimensione della tabella delle paginesuggerisce pagine di grandi dimensione per averne un numero ridotto da gestire.

– Pagine molto grandi che risiedono in memoria virtuale potrebbero generare un doppio page fault.

» il primo per caricare la parte di tabella desiderata. » il secondo per caricare la pagina del processo.

Page 35: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 3535 - -

Paginazione: dimensione Paginazione: dimensione paginapagina

Fattori da considerare (continua)Sfruttare le caratteristiche dei trasferimenti dati dei dispositivi di I/O

suggerisce pagine ampie.

Usare efficientemente il principio di localitàsuggerisce pagine o grandi o piccole ma non di medie dimensioni.

– Pagine piccole: saranno disponibili molte pagine per processo che, dopo un periodo di assestamento, conterranno le parti del processo vicine agli accessi recenti. Ne consegue un’alta probabilità di avere un ridotto numero di page fault.

– Pagine molto grandi: tanto più la pagina si avvicina alla dimensione del processo tanti meno page fault si avranno

Page 36: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 3636 - -

Paginazione: dimensione Paginazione: dimensione paginapagina

Ulteriore aspetto:la politica di gestione del working set (software) influenza la progettazione della dimensione della pagina (hardware).

– Working set: numero di pagine allocate ad un processo.

Infatti, aumentando la dimensione del working set decresce il numero di page fault.

Progettazione della dimensione della pagina:ipotizza, oggi giorno, dimensioni di memoria da 4MB a 256 MBconsidera compromessi tra dimensione del TLB, Cache, numero di accessi alla memoria per ciclo istruzioni.

Page 37: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 3737 - -

Paginazione: dimensione Paginazione: dimensione paginapagina

Esempi di dimensione di pagina:IBM 370/XA e 370/ESA: 4KBIBM AS/400: 512 BFamiglia VAX: 512 BDEC Alpha: 8 KBPowerPC: 4 KB

Diverse architetture supportano dimensioni di pagina variabile.

L’uso di pagine di dimensioni differenti consente un uso efficace della TLB.

Esempio di pagine variabili:– R4000: sette dimensioni di pagina da 4 KB a 16 MB

Page 38: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 3838 - -

Paginazione: Page TablePaginazione: Page Table

Ne esiste una per ogni processoFa parte del contesto del processo, come, ad esempio, il program counterPer tenere traccia in tutto il sistema di quali frame/pagine sono allocati, il sistema operativo gestisce una tabella (frame table) Ogni accesso alla memoria (dati, istruzioni) comporta un accesso alla page tableSe la page table fosse realizzata esclusivamente via software, tempi di accesso per i programmi utente (e in parte anche per il s.o.) sarebbero raddoppiatiÉ necessario un supporto nell'hardware

Page 39: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 3939 - -

Paginazione: Page TablePaginazione: Page Table

Registri dedicati all'intera page table nella CPUEsempio: DEC PDP 11 (1970-1980)

64 KB di memoria organizzata in pagine da 8 KB Indirizzi a 16 bitIndirizzamento ai singoli byte attraverso un insieme di 8 registri che realizzavano la page table direttamente nel processore

Accesso veloceNon scalabileOggi le memorie sono molto, molto più grandi (GB) ma la dimensione delle pagine resta dell'ordine dei KB, quindi la page table ha migliaia, milioni di elementi

Page 40: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 4040 - -

Paginazione: Page TablePaginazione: Page Table

Registri associativi dedicati alla parte di page table in uso (Translation Lookaside Buffer o TLB)

Ogni registro è una coppia chiave/valoreQuando una chiave è presentata al TLBLa ricerca avviene contemporaneamente su tutti gli elementiRestituisce il valore, se presenteAltrimenti innesca il caricamento dalla page table complessiva dell'elemento corretto

TLB hit: successo nella ricerca associativa nel TLBTLB miss: mancato ritrovamento nel TLB

Page 41: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 4141 - -

Paginazione: Page TablePaginazione: Page Table

Funzionamento dell’hardware di paginazionePunto di partenza è l’indirizzo virtualePasso primo: esame del TLB

Se si ha un TLB Hit allora si recupera l’indirizzo del frame e si costruisce l’indirizzo fisico.Se si ha un TLB miss allora il processore utilizza il numero di pagina come indice nella tabella delle pagine.

Passo secondo: esame della tabella delle paginese il bit Present ha valore 1 allora la pagina è in memoria e il processore aggiorna il TLB il quale consentirà di costruire l’indirizzo fisicose il bit Present è 0 si ha un page fault e si attiva il SO.

Page 42: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 4242 - -

Paginazione: Page TablePaginazione: Page Table

CPU

Offset

MemoriaPrincipale

Indirizzologico

Indirizzofisico

Page OffsetFrame

TLB

Page Frame

...

...

...

...

...

...

Page Table

...f...

TLBhit

TLBmiss

Memoriasecondaria

Fault di pagina (risolto dal SO)

Carica la pagina

Aggiorna lapage table

+

Page 43: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 4343 - -

Paginazione: Page TablePaginazione: Page Table

inizio

CPU controlla il TLB

Esiste nel

TLB?

Accesso alla page table

Esiste la

pagina in

memoria

no

La CPU generaL’indirizzo fisico

si

Aggiorna il TLBsi

Memoria

piena?

Sostituzione

pagina

•Il SO chiede la lettura della pagina da disco;•La CPU attiva l’hardware per l’I/O;•la pagina è trasferita nella memoria principale;•si aggiorna la tabella delle pagine;

no

si

no

Routine gestione fault di pagina

Page 44: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 4444 - -

Paginazione: EsempioPaginazione: Esempio

Supponiamo che un sistema abbia100 ns per l'accesso alla memoria 20 ns per l'accesso al TLB Con un hit rate del 80 %

Il tempo medio di accesso alla memoria è:(100 + 20) x 0.80 + (100 + 100 + 20) x 0.20 = 140 ns

Senza TLBIl tempo medio di accesso alla memoria è: 100 + 100 = 200 ns

Guadagno: 200/140 1,43 cioè 43%Il meccanismo di base della paginazione comporta

Peggioramento delle prestazioni piuttosto contenutosenza paginazione/paginazione con TLB= 100/140 0,71 cioè –29%

Aumento di complessità dell'hardware e del SO

Page 45: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 4545 - -

Paginazione: Page TablePaginazione: Page Table

La paginazione permette di condividere le pagineLa page table può contenere informazioni aggiuntive sulle pagine

Bit di protezioneIndica se la pagina è in sola lettura

Bit valido/non validoIndica se il contenuto della pagina è valido per il processo (Esempio: nel suo spazio di indirizzamento)

In sistemi multiprocessore è di supporto alla gestione della coerenza per la memoria distribuita

Contatore di riferimentiIn caso di condivisione di pagine

Page 46: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 4646 - -

Paginazione: Page TablePaginazione: Page Table

Nella maggior parte dei sistemi è presente una tabella delle pagine per processo.Ogni processo può occupare enormi quantità di memoria virtuale.

Esempio: supponendo che un processo possa avere uno spazio di indirizzamento di 2GB (231B) e supponendo pagine da 210 Byte, la tabella delle pagine possiede 221 elementi.

Soluzione: memorizzazione della tabella delle pagine in memoria virtuale e non in memoria reale.

Implica che le tabelle delle pagine sono paginate!

Page 47: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 4747 - -

Paginazione: Page TablePaginazione: Page Table

Una organizzazione tipica è attraverso uno schema a due livelli:

Una directory delle pagineogni elemento punta ad una tabella delle pagine

Un insieme di sotto tabelle delle pagine.Tipicamente una sotto tabella delle pagine è ampia quanto una pagina al fine di essere completamente contenuta.

Page 48: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 4848 - -

SegmentazioneSegmentazione

Un programma può essere visto come una collezione di diverse entità

Codice, dati statici, dati locali alle procedure, stack...

Il compilatore può costruire il codice oggetto in modo da rispecchiare questa ripartizioneOgni entità viene caricata dal loader

SeparatamenteIn aree di dimensione variabile dette i segmenti

Ogni indirizzo logico consiste di due partiIl numero di segmentoLo spiazzamento (offset) nel segmento stesso

Page 49: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 4949 - -

SegmentazioneSegmentazione

Base: Indirizzo fisico del segmentoLimite: Dimensione del segmento

CPU

Memoria

< +

TRAP: Errore di indirizzamento

si

no

Segment Table

Limite Base

...

...

...

...

...

...

OffsetSegment

Page 50: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 5050 - -

SegmentazioneSegmentazione

La tabella dei segmenti è realizzata con le stesse tecniche utilizzate per la tabella delle pagineValgono le considerazioni su hit/miss/tempi di accesso alla memoria presentate per la paginazioneVengono memorizzati nella tabella dei segmenti, per ogni segmento, i bit di protezione/valido/ contatore di condivisione esaminati per la paginazioneLa segmentazione è complessa

Si ha il problema della frammentazione esterna

SoluzioniRilocazione con aggiornamento della segment table

Usare tanti segmenti piccoli

Page 51: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 5151 - -

Segmentazione con Segmentazione con paginazionepaginazione

La segmentazione con paginazione unisce i vantaggi dei due approcci

Vantaggi della paginazione:Trasparente al programmatoreElimina la frammentazione esterna

Vantaggi della segmentazione:Modulare.Supporto per la condivisione e protezione.

Un indirizzo virtuale è formato dal numero di segmento dal numero di pagina e dallo spiazzamento

Numero di segmentoNumero di

paginaoffset

Page 52: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 5252 - -

Segmentazione con Segmentazione con paginazionepaginazione

Offset

MemoriaPrincipale

Page OffsetFrame

Segment Table

s

Paginazione

+

Segm

Puntatoresegment Table

Page Table

...f...+

Segmentazione

Indirizzo virtuale

Indirizzo fisico

Page 53: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 5353 - -

Segmentazione con Segmentazione con paginazionepaginazione

Si implementano i segmenti con pagineIntel i80386 e i80486

Al più 214 segmentiSegmenti al massimo di 232 byte (4 GB)La pagina è di 212 B (4 KB )

Windows NT suIntel, MIPS, PowerPC: pagine da 4 KB DEC Alpha: pagine da 8 MB gestite con la

segmentazione con paginazioneLa memoria virtuale è vista come tre pool di pagine

il pool delle pagine libere Il pool paginato, con pagine swappabiliil pool non paginato, pagine non swappabili (es. il s.o.)

Page 54: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 5454 - -

Esempio: Windows NTEsempio: Windows NT

Impostazione del file di paginazioneArea di swap

File: pagefile.sysSi può definire un page file per ogni unità logicaLa dimensione consigliata

è orientativaVa scelta in base al numero e al tipo di applicazioni e servizi che si vuole avere contemporaneamente attivi

Page 55: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 5555 - -

Esempio: Windows NTEsempio: Windows NT

Page 56: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 5656 - -

Esempio: Windows NTEsempio: Windows NT

Task ManagerÉ un processo che permette di interagire con tutti gli altri processi di sistema in modo da

Analizzare l'occupazione di risorse di ognuno Cambiare le priorità di esecuzione Terminare i processi

In basso i valori riassuntivi per

Uso di CPU Uso di memoria RAM Uso di memoria virtuale

Page 57: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 5757 - -

Esempio: Windows NTEsempio: Windows NT

Page 58: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 5858 - -

Demand paging/segmentationDemand paging/segmentation

Non è indispensabile che tutto il processo sia in memoria

Il SO tiene in memoria solo le parti di dati e codice necessarie per continuare l'esecuzione del processoAll'occorrenza, le parti non caricate (o swappate) vengono portate in memoria

Questa tecnica è dettaDemand paging, nei sistemi paginati Demand segmentation, nei sistemi segmentati

Il demand paging è più diffuso in quantoPiù efficace Implementazione più semplice del demand segmentation

Page 59: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 5959 - -

Demand paging/segmentationDemand paging/segmentation

Al caricamento, il loader caricaSolo le strutture di gestione del processo

Demand paging puro

Alcune pagineDemand paging con preallocazione

Durante l'esecuzione del programmaSe un indirizzo fa riferimento a pagine in memoria

L'esecuzione procede normalmente

Se il riferimento è ad una pagina non caricataSi verifica un page faultIl processo viene sospeso con un trap al SO (page fault)Il SO gestisce il caricamento della pagina e la rischedulazione del processo sospeso

Page 60: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 6060 - -

Page faultPage fault

Evento che genera un trap al sistema operativo da parte di un processo che fa riferimento ad una pagina di memoria non disponibileIl sistema risponde così1. Trap al sistema operativo2. Il SO salva lo stato del processo3. Il SO determina che il trap è un page fault4. Il SO controlla che il riferimento in memoria fosse

legale in modo da distinguere i page fault dagli errori di indirizzamento

5. Il SO localizza la pagina su disco6. Il SO inizia la copia della pagina dal disco ad

un frame libero

Page 61: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 6161 - -

Page faultPage fault

Nel frattempo, la CPU è allocata ad un altro processoLa lettura della pagina viene completata e viene sollevato un interruptIl SO salva lo stato del processo schedulato nel frattempoIl SO determina che l'interrupt è un completamento di una operazione di I/OIl SO aggiorna la page table, e le eventuali altre tabelle, con l'informazione sulla disponibilità della nuova paginaIl SO rimette nella lista dei processi pronti il processo sospeso per il page fault

Page 62: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 6262 - -

Page replacementPage replacement

Nel demand pagingLa memoria disponibile è solitamente molto più piccola della somma degli spazi di indirizzamento logici dei programmi presenti nel sistemaAd un certo punto, ci sarà un page fault per servire il quale non ci saranno frame liberi nel sistema

Soluzioni Effettuare uno swap out di pagine, possibilmente quelle “che serviranno meno in futuro” ...

Diversi criteri di scelta di tali pagineÉ conveniente rimpiazzare le pagine in sola lettura

Non è necessario copiarle nell'area di swapÉ rapido rimpiazzare le pagine non ancora modificate

Page 63: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 6363 - -

Page replacementPage replacement

Criteri di scelta delle pagine da scaricareFirst In First Out

Scaricare le pagine nel sistema da più tempo Least Recently Used

Scaricare le pagine non usate da più tempoSecond Chance

La page table di sistema è scandita una prima volta per identificare le potenziali pagine per uno swap outI corrispondenti reference bit vengono azzeratiSuccessivamente, con l'esecuzione di processi, le pagine accedute avranno il reference bit impostato a 1Alla successiva scansione, se il reference bit è ancora a zero la pagina viene rilasciata altrimenti viene lasciata nella lista delle pagine "utili"

Page 64: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 6464 - -

Esempio: UNIXEsempio: UNIX

UNIX è il nome di una famiglia di sistemi operativi, con profonde differenze di struttura. Di seguito sono elencate alcune caratteristiche comuni alle varianti

HP/UXDigital UNIX SUN Solaris

Memoria virtualeDemand paging

Il tipo di demand paging (puro o con preallocazione) è configurabile

Swapping

Page 65: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 6565 - -

Esempio: UNIXEsempio: UNIX

Page replacementBasato su una variante dell'algoritmo second chance

Quando il numero di frame liberi scende sotto un certo limite lo scheduler risveglia un processo di sistema detto pagedaemon o swapper, che realizza l'algoritmoTale limite minimo sul numero di frame è detto low-water-mark o min-free ed è configurabile

SchedulerPuò decidere per lo swap out di un intero processo

Esempio: quando è in attesa di un evento, in condizioni di carico elevato nel sistema

Page 66: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 6666 - -

Esempio: UNIXEsempio: UNIX

Swapping Avviene su disco in una partizione dedicataTale partizione è priva di file system (raw mode)Alcuni sistemi supportano lo swap su file (flessibilità)

Si noti l'interazione fra SchedulingSwappingGestione della memoria virtuale

Page 67: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 6767 - -

Esempio: UNIXEsempio: UNIX

Statistiche di uso della memoria virtuale

cdc8g5:/root> swapinfo -a Kb Kb Kb PCT START/ KbTYPE AVAIL USED FREE USED LIMIT RES PRI NAMEdev 262144 9764 252380 4% 0 - 1 /dev/vg00/lvol2dev 262144 10592 251552 4% 0 - 1 /dev/vg01/lvol1reserve - 50356 -50356memory 93724 72208 21516 77%cdc8g5:/root>

Uso progressivo della memoria virtuale

cdc8g5:/root> vmstat 5 procs memory page faults cpu r b w avm free re at pi po fr de sr in sy cs us sy id 2 80 0 3567 2961 4 1 0 0 0 0 0 162 1132 87 76 17 7 1 82 0 3598 2931 6 0 0 0 0 0 0 171 239 59 99 1 0 2 81 0 3664 2931 0 0 0 0 0 0 0 159 123 52 99 1 0cdc8g5:/root> vmstat 5

Page 68: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 6868 - -

Esempio: UNIXEsempio: UNIX

Alcuni processi nel sistema

cdc8g5:/root> ps –efl F S UID PID C PRI NI ADDR SZ WCHAN STIME TTY TIME COMD 3 S root 0 0 128 20 41ea88 0 3bd050 Dec 11 ? 0:19 swapper41 S root 1 0 168 20 123088 81 7ffe60 Dec 11 ? 0:49 init 3 S root 2 0 128 20 10d4d0 0 4211a0 Dec 11 ? 3:05 vhand 3 S root 3 0 128 20 123000 0 3bd050 Dec 11 ? 4:07 statdaemon 1 S root 514 0 155 20 131148 0 43bd58 Dec 11 ? 0:00 ptydaemon 1 S root 343 0 154 20 131f60 3 41cde4 Dec 11 ? 4:49 syncer 1 S pez0 796 0 158 20 15e248 66 92ef40 09:19:15 pts/0 0:00 -bash 1 S pez0 797 0 154 20 18ea80 22 420944 09:19:15 pts/0 0:00 ftp cdc 1 S pez0 774 0 158 20 180898 66 93efc0 09:19:04 pts/0 0:00 -bash 1 S root 184 0 154 20 1b5ff8 16 420944 08:59:38 ? 0:00 tftpdcdc8g5:/root>

Page 69: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 6969 - -

Esempio: WinNT Process Esempio: WinNT Process ViewerViewer

WindowsNT mantiene contatori per monitorare i parametri di funzionamento

Del sistema operativo (auditing) Dei singoli processi

WindowsNT è multithreadedOgni processo può contenere più thread in esecuzione cooperanteI thread di un processo operano nello stesso spazio di indirizzamento logicoPer ogni thread è definita una priorità

Esempio: il processo EudoraStatistiche di uso delle risorse di sistema

Page 70: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 7070 - -

Esempio: WinNT Process Esempio: WinNT Process ViewerViewer

Page 71: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 7171 - -

Esempio: WinNT Process Esempio: WinNT Process ViewerViewer

Un processo in WindowsNT Ha un proprio codice

Memorizzato in pagine di memoria proprie (private)

Si appoggia a librerie e device driver condivisiMemorizzati in pagine di memoria comuni (mapped)

L'allocazione è dinamicaDemand segmentation Paging

I contatori di sistema sulle statistiche d'uso della memoria e sul comportamento dei processi sono indispensabili a NT stesso per implementare l'algoritmo di pool replacement

Page 72: CEFRIEL Consorzio per la Formazione e la Ricerca in Ingegneria dell’Informazione Politecnico di Milano © 2001 - William Fornaciari La Gestione della memoria.

Gestione della memoriaGestione della memoria © 2001 - William Fornaciari© 2001 - William Fornaciari- - 7272 - -

Esempio: WinNT Process Esempio: WinNT Process ViewerViewer