

Sistemi Operativi - Gestione della memoria
Presentation
•
Computers
•
11th Grade
•
Hard
Giovanni Pedroncelli
Used 7+ times
FREE Resource
53 Slides • 20 Questions
1
Sistemi Operativi - Gestione della memoria
By Giovanni Pedroncelli
2
La memoria centrale
3
La memoria centrale
Situazione ideale: memoria infinita, veloce, poco costosa, non volatile
Gestione della RAM tramite virtualizzazione --> la fa sembrare infinita per soddisfare tutte le richieste dell'utente
4
Gestore della memoria
sa sempre quali parti della memoria sono libere e quali in uso
sceglie quali parti di memoria allocare ai processi che ne hanno bisogno e poi la dealloca
gestisce lo swapping tra memoria centrale e disco quando la memoria centrale non è sufficientemente grande
5
Gestore della memoria
Compito principale = trasformare il programma in esecuzione (statico, su memoria di massa) in processo (dinamico, su memoria centrale)
Problema: il compilatore e il linker, durante la fase di compilazione di un programma generano collegamenti tra istruzioni e indirizzi di memoria SENZA SAPERE dove il programma e i dati saranno esattamente caricati in memoria
6
Codice rilocabile
Il compilatore e il linker generano indirizzi relativi (indirizzi logici)
All'atto del caricamento in memoria centrale, gli indirizzi relativi (logici) saranno trasformati in indirizzi assoluti (indirizzi fisici) all'interno della memoria RAM
7
Codice rilocabile
Ogni processo dispone di uno spazio di indirizzamento logico [0,max] che dovrà essere poi caricato fisicamente nella RAM. Il compilatore suppone che il processo sarà sempre allocato a partire dall'indirizzo più piccolo, 0. A partire dal valore 0 sono generati tutti gli indirizzi
8
Codice rilocabile
Due modalità di rilocazione
Rilocazione Statica: quando il processo è caricato in memoria, si individua l'indirizzo di base e si somma a tutti gli indirizzi logici (offset)
Rilocazione Dinamica: il processo è caricato in una qualunque zona libera di memoria e in fase di esecuzione si salva nel registro base (di rilocazione RL) l'indirizzo effettivo di prima locazione di memoria. Durante l'esecuzione, istruzione per istruzione si calcola l'indirizzo assoluto sommando a ogni indirizzo logico il valore contenuto nel registro base RL
9
Codice rilocabile
10
Memory Management Unit (MMU)
Dispositivo hardware che associa indirizzi fisici a indirizzi logici
11
Address binding
Il registro RL contiene l'indirizzo fisico più piccolo, il registro limite contiene l'indirizzo logico più alto utilizzabile da un determinato processo --> controllo di protezione della memoria
12
Protezione della memoria
13
Riepilogo
Durante la fase di linking --> calcolo degli indirizzi logici
Binding (passaggio da indirizzo logico a indirizzo fisico) può avvenire:
durante la compilazione (indirizzamento assoluto)
durante il loading del programma (rilocazione statica)
durante l'esecuzione del programma (rilocazione dinamica)
14
Problemi
Per essere eseguito, un programma deve risiedere in memoria centrale e lo spazio libero deve essere sufficientemente grande e deve essere contiguo (impossibile con i programmi di oggi)
Sistemi multiprogrammati: continuo caricamento e scaricamento dei programmi in memoria --> frammentazione della memoria: spazio libero sufficiente ma NON contiguo --> costosa ricompattazione
15
Soluzioni
Swapping: liberare la RAM dai processi temporaneamente inattivi e salvarli su disco. Rallentamento e calo di prestazioni.
Identificare i processi inattivi in memoria (waiting list)
Salvare i loro dati su disco (contesto di questi processi)
Rimuoverli dalla memoria centrale
Caricare un nuovo processo nello spazio appena liberato
Caricamento dinamico: caricare in memoria solo ciò che serve effettivamente e il resto rimane su disco per poi essere successivamente caricato quando necessario
16
Soluzioni
Overlay: Frazionamento del programma eseguito a priori dal programmatore (alcune parti sono caricate alternativamente in memoria)
Partizionamento: riservare a ogni processo una dimensione fissa di memoria per evitare lo swapping e ridurre la frammentazione
17
Multiple Choice
Quale NON è un compito del memory manager?
sapere sempre quali parti della memoria centrale sono in uso
individuare il programma da caricare in memoria
scegliere quale parte di memoria allocare ai processi
gestire lo swapping tra memoria principale e disco
18
Multiple Select
L'indirizzo logico
viene assegnato a partire dalla cella 0
viene rilocato dal linker
viene trasformato in indirizzo fisico dal linker
viene trasformato in indirizzo assoluto dal loader
19
Multiple Choice
MMU significa
Memory Management Utility
Memory Maker Unit
Memory Management Unit
Memory Maker Utility
20
Multiple Choice
Nella rilocazione statica
viene sommato a ogni istruzione l'offset
viene utilizzato il registro base
l'indirizzo base viene sommato durante l'esecuzione
l'indirizzo base viene sommato durante la fase di link
21
Multiple Choice
La rilocazione statica avviene all'atto del caricamento in memoria
Vero
Falso
22
Multiple Choice
L'offset si ottiene sommando all'indirizzo di base i riferimenti
Vero
Falso
23
Multiple Choice
Nella rilocazione dinamica l'indirizzo assoluto è determinato dal loader
Vero
Falso
24
Multiple Choice
Lo swapping avviene quando la memoria principale libera non è sufficiente
Vero
Falso
25
Multiple Choice
Il gestore della memoria ha il compito di deallocare la memoria quando serve
Vero
Falso
26
Multiple Choice
Il compilatore genera degli indirizzi relativi (indirizzo fisico)
Vero
Falso
27
Tecniche di allocazione della memoria centrale
28
Partizionamento
Suddividere la memoria in partizioni e assegnare una partizione a un processo (indipendentemente dalle sue dimensioni), partendo dal SO
Problema: quanto deve essere grande una partizione?
Troppo piccola --> frammentazione
Troppo grande --> spreco memoria e necessità di swapping
Partizione fissa / Partizione variabile
29
Schema a partizione fissa
La memoria è suddivisa in partizioni di dimensioni anche diverse all'inizializzazione del sistema, staticamente, con una tabella con lo stato di ciascuna partizione (libera/occupata)
Ogni partizione ha una coda dei processi in attesa
Problemi di frammentazione interna/esterna
30
Frammentazione interna
Processo molto più piccolo della partizione in cui viene salvato (succede se le code delle partizioni più piccole sono tutte occupate).
31
Frammentazione interna - soluzione
Una sola coda di ingresso.
Se si libera una partizione, due criteri possibili:
individuo il primo processo in coda che può essere contenuto
individuo il processo più grande in coda che può essere contenuto (--> possibile starvation dei processi più piccoli)
32
Frammentazione esterna
Complessivamente c'è abbastanza spazio per ospitare un processo in coda ma è frammentato in partizioni diverse --> non assegnabile al processo
33
Schema a partizione variabile
Possibilità di modificare dinamicamente il numero e la dimensione delle partizioni, in base alla dimensione del processo da allocare tramite unione di blocchi contigui o suddivisione di un blocco troppo grande
SO più complesso con 4 strategie risolutive:
first-fit
next-fit
best-fit
worst-fit
34
Frammentazione esterna
Necessità di defrag (--> decadimento prestazioni). 1 byte/ms
35
Area di swap
Strategia sfruttata per processi in waiting list oppure a bassa priorità
36
Multiple Choice
Quale tra le seguenti NON è una strategia che risolve il problema dell'allocazione dinamica della memoria centrale?
first-fit
best-fit
good-fit
worst-fit
37
Memoria virtuale
Obiettivi: evitare la frammentazione, non ricorrere alla compattazione
Tecniche di allocazione NON contigua: paginazione e segmentazione
Ulteriore vantaggio: sono caricate in memoria solo le parti effettivamente utili per l'esecuzione del processo (il resto è su disco)
Principio di località: è molto probabile che l'istruzione successiva sia vicina a quella correntemente in esecuzione
38
Paginazione
Suddivisione del programma in pagine di dimensione fissa (pagine logiche)
Suddivisione della memoria in pagine di dimensione fissa (frame o pagine fisiche)
39
Paginazione
Le pagine logiche NON devono essere necessariamente contigue
Per caricare un programma basta una pagina fisica libera in cui salvare la prima pagina logica del programma (non va caricato interamente in memoria)
40
Paginazione - vantaggi
Mantenere in memoria solo le parti necessarie
Gestire solo piccole parti di memoria
No frammentazione esterna
Pochissima frammentazione interna
Possibilità di usare porzioni di memoria non contigue per un programma
41
Tabelle delle pagine
Una tabella delle pagine con gli indirizzi e le info di tutte le pagine fisiche
Una tabella per ogni processo: quali parti in RAM e quali su disco
42
Binding nella paginazione
43
Fetch policy
Il SO deve determinare quando una pagina va caricata in RAM
demand page: pagina caricata solo quando viene fatto riferimento ad una sua locazione
prepaging: sfruttando il principio di località spaziale, quando si carica una pagina si caricano anche quelle adiacenti (senza esagerare)
44
Protezione della memoria
Nella tabella a ogni frame associati dei bit di protezione (sola lettura, lettura/scrittura, esecuzione)
Tentativo di accesso illegale --> trap al SO --> sospensione processo
Un bit indica se la pagina appartiene allo spazio del processo (valid) oppure no (invalid) --> segment violation
45
Page fault
Bit di validità:
0 = pagina non in memoria
1 = pagina in memoria
Fetch pagina ma bit di validità = 0 --> page fault
Se c'è pagina libera OK, altrimenti page replacement
46
Page fault
(3) page fault può essere per riferimento illegale (protezione memoria) o legale --> caricamento nuova pagina in memoria
47
Località spazio-temporale
Località spaziale: è altamente probabile che la prossima area di memoria a cui accedere sia vicina a quelle a cui abbiamo acceduto di recente (codice sequenziale)
Località temporale: è altamente probabile che si acceda nuovamente a locazioni di memoria a cui si è acceduto recentemente (cfr. cicli, funzioni ricorsive)
Il 90% del tempo è speso sul 10% del codice
48
Replacement policy
Scegliere la pagina vittima da rimuovere dalla memoria per far posto alla nuova pagina da caricare
Resident set management: sceglierla tra le pagine del processo da caricare o da pagine di altri processi?
Page replacement algorithm: algoritmi per scegliere la pagina con l'obiettivo di minimizzare il numero di page fault
Optimal page replacement algorithm: qual è la pagina vittima migliore? Qual è il tempo massimo da impiegare per cercarla?
49
Replacement policy
Individuazione della Pvitt
Salvataggio di Pvitt sul disco
Caricamento di Pnew nel frame appena liberato
Aggiornamento tabelle
Ripresa del processo
Se la versione di Pvitt è identica a quella già presente nel disco, il passo 2 si salta (dirty bit: = 0 Pvitt su disco è già aggiornata --> saltiamo il passo 2, = 1 Pvitt su disco non è aggiornata --> eseguiamo il passo 2)
50
Algoritmi di sostituzione
Obiettivo: minimizzare il numero di page fault
Strategia: sostituire le pagine la cui probabilità di essere accedute a breve termine è bassa (principio di località)
FIFO Page Replacement Algorithm
Least Recently Used
Not Recently Used
Algoritmi di conteggio
51
FIFO Page Replacement Algorithm
Sostituisce la pagina che occupa da più tempo la memoria, indipendentemente dal suo uso (NON si usa il principio di località)
Necessario il time stamping dei riferimenti per conoscere la cronologia dei caricamenti in memoria
52
Least Recently Used (LRU)
Si basa sul principio di località: si sostituisce la pagina che è stata usata meno recentemente
Necessario il time-of-use, l'istante in cui è avvenuto l'ultimo accesso
Struttura di tipo stack: quando si accede alla pagina la mettiamo al top e quindi al bottom c'è la pagina vittima
53
Not Recently Used (NRU)
Versione semplificata di LRU
Per ogni pagina un bit di uso R inizializzato a 0, messo a 1 quando si accede alla pagina, periodicamente resettato a 0
Versione modificata con il dirty bit M
Viene rimpiazzata la pagina con R = 0 e M = 0
54
Algoritmi di conteggio
Least Frequently Used (LFU): sostituisce la pagina con il minor numero di riferimenti (una pagina con molti riferimenti è molto usata e quindi serve)
Most Frequently Used (MFU): sostituisce la pagina con il maggior numero di riferimenti (pochi riferimenti perché caricata da poco e quindi serve)
55
Working set
Memoria di massa molto più lenta della memoria centrale
Tanti swapping --> forte rallentamento del sistema --> trashing
Δ è la dimensione del working set o finestra di lavoro, una stima del numero di pagine necessarie al processo per evolvere correttamente
56
Working set
Attenzione al valore del working set Δ
troppo basso --> troppi page fault
troppo alto --> caricamento di pagine non necessarie
D è la richiesta totale di frame del processo
WSS è il numero di pagine referenziate dal processo al riferimento i
D < num pagine libere --> il nuovo processo viene avviato
D > num pagine libere --> swapping
57
Working set
Metodo alternativo
58
Riepilogo paginazione
Permette di eliminare del tutto la frammentazione esterna perché size(pagina fisica) = size(pagina logica) ed è possibile allocare in modo non contiguo
59
Segmentazione
Come la paginazione ma i segmenti sono di dimensione variabile
La memoria centrale viene suddivisa come il codice (in funzioni)
Ogni funzione del codice = un segmento
A ogni segmento è associato un numero e la sua lunghezza
60
Segmentazione
61
Segmentazione
62
Segmentazione - vantaggi
più semplice la gestione di strutture dati dinamiche
facilitata la condivisione di segmenti tra processi
più semplice il linking di procedure compilate separatamente
ogni segmento può avere un diverso tipo di protezione
63
Segmentazione - problema
Frammentazione esterna (checkerboarding)
64
Segmentazione con paginazione
Memoria centrale suddivisa in pagine fisiche (frame) di dimensione fissa
Spazio di indirizzamento del processo suddiviso in segmenti logici di dimensioni diverse che sono ulteriormente suddivisi in pagine logiche della stessa dimensione dei frame
Struttura dell'indirizzo logico
65
Multiple Choice
Il page fault si verifica quando
le pagine di memoria sono tutte occupate
in memoria non ci sono pagine libere
il sistema operativo non trova la pagina da caricare
un programma indirizza una pagina non presente in memoria
66
Multiple Choice
Quale tra i seguenti NON è un page replacement algorithm?
Least Recently Used
Least Frequently Used
Not Recently Used
Not Frequently Used
Most Frequently Used
67
Multiple Choice
Quale tra le seguenti affermazioni è falsa in merito alla paginazione?
La memoria fisica è divisa in blocchi chiamati frame o pagine fisiche
Il programma è diviso in blocchi di uguale dimensione dette pagine
Il numero di pagine logiche è uguale al numero delle pagine fisiche
Il codice deve essere rilocabile dinamicamente
Si risolve il problema della frammentazione esterna
68
Multiple Choice
La strategia di sostituzione FIFO Page Replacement Algorithm tiene conto del principio di località
Vero
Falso
69
Multiple Choice
Least Frequently Used e Most Frequently Used sono algoritmi di conteggio
Vero
Falso
70
Multiple Choice
Il fenomeno del trashing è dovuto alla lentezza dello swapping
Vero
Falso
71
Multiple Choice
Il fenomeno del trashing è dovuto al fatto che la memoria secondaria è molto più lenta rispetto alla memoria principale
Vero
Falso
72
Multiple Choice
Il working set è un'approssimazione della dimensione dell'area di località del programma
Vero
Falso
73
Multiple Choice
Un working set troppo largo non include l'intera località e non riesce a minimizzare il numero di page fault
Vero
Falso
Sistemi Operativi - Gestione della memoria
By Giovanni Pedroncelli
Show answer
Auto Play
Slide 1 / 73
SLIDE
Similar Resources on Wayground
65 questions
Ciencia Hacker: Diseña la Pregunta Perfecta y Descifra la Eviden
Presentation
•
10th Grade
74 questions
Mitigasi dan Adaptasi Kebencanaan
Presentation
•
11th Grade
65 questions
relation pédagigique
Presentation
•
KG
64 questions
Peradaban Awal Dunia
Presentation
•
11th Grade
64 questions
SISTEM REPRODUKSI MANUSIA
Presentation
•
11th Grade
69 questions
PKWU_XII_1.2 Kerajinan Berdasarkan Pasar Global
Presentation
•
12th Grade
71 questions
Kunci Kerukunan
Presentation
•
12th Grade
65 questions
ÔN TẬP HKI SINH HỌC 10
Presentation
•
10th Grade
Popular Resources on Wayground
16 questions
Grade 3 Simulation Assessment 2
Quiz
•
3rd Grade
19 questions
HCS Grade 5 Simulation Assessment_1 2526sy
Quiz
•
5th Grade
10 questions
Cinco de Mayo Trivia Questions
Interactive video
•
3rd - 5th Grade
17 questions
HCS Grade 4 Simulation Assessment_2 2526sy
Quiz
•
4th Grade
24 questions
HCS Grade 5 Simulation Assessment_2 2526sy
Quiz
•
5th Grade
13 questions
Cinco de mayo
Interactive video
•
6th - 8th Grade
20 questions
Math Review
Quiz
•
3rd Grade
30 questions
GVMS House Trivia 2026
Quiz
•
6th - 8th Grade