Gestione della memoria Flashcards

1
Q

Algoritmo Clock

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
1
Q

Algoritmi di sostituzione delle pagine e allocazione della memoria tra processi

A

Sostituzione Locale e Globale delle Pagine

Quando si verifica un page fault, l’algoritmo di sostituzione delle pagine deve decidere quale pagina rimuovere dalla memoria. Esistono due approcci principali per questa scelta: la sostituzione locale delle pagine e la sostituzione globale delle pagine.

  • Sostituzione Locale delle Pagine: Ogni processo ha una porzione fissa della memoria assegnata. L’algoritmo cerca di trovare la pagina usata meno recentemente solo tra le pagine attualmente allocate al processo che ha causato il page fault. Questo approccio è illustrato nella Figura 3.22(b), dove il processo A sostituisce la pagina A5.
  • Sostituzione Globale delle Pagine: L’algoritmo considera tutte le pagine in memoria, indipendentemente dal processo a cui appartengono. La pagina con il valore di riferimento più basso viene sostituita. Questo è mostrato nella Figura 3.22(c), dove la pagina B3 viene sostituita.

Gli algoritmi globali generalmente funzionano meglio, soprattutto quando la dimensione del set di lavoro di un processo può variare durante la sua esecuzione. Gli algoritmi locali, invece, possono causare thrashing se il set di lavoro aumenta senza ottenere più frame, o sprecare memoria se il set di lavoro si restringe.

Algoritmo PFF (Page Fault Frequency)

Un modo per gestire l’allocazione della memoria tra processi è l’algoritmo PFF, che misura la frequenza dei page fault di un processo. Se la frequenza è troppo alta, vengono assegnati più frame al processo. Se è troppo bassa, vengono tolti dei frame.

La Figura 3.23 illustra come la frequenza dei page fault decresce al crescere dei frame assegnati. L’obiettivo del PFF è mantenere la frequenza di page fault entro limiti accettabili, assegnando dinamicamente più o meno frame a ciascun processo.

Thrashing e OOM Killer

Se la combinazione dei set di lavoro di tutti i processi supera la capacità della memoria, si verifica il thrashing. In questi casi, l’algoritmo PFF può indicare che alcuni processi necessitano di più memoria, ma nessuno può cederne. La soluzione può essere:

  • Uccidere Processi (OOM Killer): Un processo speciale analizza tutti i processi in esecuzione e sceglie quelli meno importanti o che utilizzano più memoria per terminare e liberare risorse.
  • Swapping: Spostare temporaneamente alcuni processi in memoria non volatile, liberando i loro frame per ridurre il thrashing.

Deduplicazione e Compressione

Per ridurre l’occupazione di memoria, tecniche come la deduplicazione possono essere utilizzate. La deduplicazione comporta la ricerca di pagine con lo stesso contenuto e la loro condivisione tra più processi. Se un processo modifica una pagina condivisa, viene generata una copia per mantenere l’integrità dei dati.

Paging Daemon

Un altro metodo per gestire la memoria è l’uso di un paging daemon, un processo in background che si attiva periodicamente per garantire che ci siano sempre frame liberi disponibili. Il paging daemon può:

  • Scrivere Pagine Sporche: Scrivere su memoria non volatile le pagine modificate.
  • Pulire Frame: Garantire che i frame liberi siano puliti e pronti per essere utilizzati.

Conclusioni

Gli algoritmi di sostituzione delle pagine e l’allocazione della memoria tra processi sono fondamentali per il funzionamento efficiente di un sistema operativo. L’uso combinato di algoritmi di sostituzione locali e globali, l’algoritmo PFF, e tecniche come la deduplicazione e il paging daemon, consente di ottimizzare l’uso della memoria, ridurre il thrashing e mantenere elevate le prestazioni del sistema.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Algoritmo FIFO

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Algoritmo Least Recently Used

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Algoritmo Seconda Chance

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Algoritmo NRU

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Algoritmo Working set

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Algoritmo WSClock

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

File mappati

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Concetto di Swapping

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Memoria secondaria

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Lo spazio degli indirizzi

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Gestione della memoria libera

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Memoria Virtuale

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Paginazione

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Pagine condivise

A
13
Q

Segmentazione

A
14
Q

Gestione dei page fault

A
15
Q

Tabelle delle pagine

A