che cosa è il modello working set? | Il modello working set è un modello di memoria virtuale che si basa sull'idea che le pagine di un processo che sono state utilizzate di recente sono più probabilmente utilizzate di nuovo in futuro. Il modello working set utilizza questa informazione per sostituire le pagine che sono meno probabilmente utilizzate, in modo da liberare la memoria per le pagine che sono più probabilmente utilizzate.
Il modello working set funziona in modo da mantenere in memoria un gruppo di pagine, chiamato working set, che sono state utilizzate di recente. Quando un processo tenta di accedere a una pagina che non è nel working set, il sistema operativo la carica in memoria dal disco. Se il working set è pieno, il sistema operativo sostituisce una pagina che non è stata utilizzata di recente. |
come vengono gestiti i processi parzialmente in memoria? | I processi parzialmente in memoria vengono gestiti dal sistema operativo utilizzando la paginazione. Quando un processo viene caricato in memoria, il sistema operativo non carica l'intero processo in memoria, ma solo le pagine che sono necessarie per l'esecuzione del processo. Le pagine che non sono necessarie vengono caricate in memoria solo quando vengono richieste dal processo. Questo processo viene chiamato caricamento su richiesta.
Quando un processo tenta di accedere a una pagina che non è in memoria, il sistema operativo genera un errore di pagina. Questo errore viene gestito dal sistema operativo, che carica la pagina in memoria dalla memoria virtuale o dal disco.
Il sistema operativo utilizza una varietà di tecniche per gestire i processi parzialmente in memoria, tra cui:
paginazione
scambio
cache |
come viene gestito lo scambio di pagine tra memoria centrale e area di swap? | o scambio di pagine tra memoria centrale e area di swap viene gestito dal sistema operativo. Quando una pagina non è più necessaria, viene scambiata con una pagina nella memoria centrale. La pagina che è stata scambiata viene archiviata nell'area di swap, che è una parte del disco rigido. Quando la pagina è nuovamente necessaria, viene caricata dalla memoria centrale. |
quali sono le varie tecniche per la gestione della multiprogrammazione? | il partizionamento
l'overlaying
lo swapping
la paginazione
la segmentazione
la segmentazione con paginazione |
come vengono gestiti gli accessi illegali alla memoria? | Quando un processo tenta di accedere a una pagina che non è in memoria, il sistema operativo genera un errore di pagina. Questo errore viene gestito dal sistema operativo, che carica la pagina in memoria dalla memoria virtuale o dal disco. |
come viene gestito lo scambio di segmenti tra memoria centrale e area di swap? | Lo scambio di segmenti tra memoria centrale e area di swap viene gestito dal sistema operativo. Quando una pagina non è più necessaria, viene scambiata con una pagina nella memoria centrale. La pagina che è stata scambiata viene archiviata nell'area di swap, che è una parte del disco rigido.
siccome non è noto in principio quante pagine associare un processo viene usato spesso il modello Working Set che lo approssima |
quali sono i vantaggi della memoria virtuale? | I vantaggi della memoria virtuale includono:
- possibilità di eseguire processi più grandi della memoria fisica
- la possibilità di condividere la memoria tra processi
- la possibilità di proteggere la memoria da accessi non autorizzati |
come funziona la memoria virtuale? | La memoria virtuale funziona suddividendo la memoria logica in pagine e la memoria fisica in frame. Ogni pagina viene mappata su un frame specifico e la posizione fisica di ogni pagina viene memorizzata in una tabella delle pagine. Quando un processo tenta di accedere a una pagina, il sistema operativo cerca la pagina nella tabella delle pagine e recupera la posizione fisica della pagina. Se la pagina non è in memoria, il sistema operativo la carica dalla memoria virtuale o dal disco. |
che cosa è il thrashing? come lo si combatte? | Il thrashing è un problema che si verifica quando un sistema operativo spende troppo tempo a spostare le pagine di memoria tra la memoria fisica e la memoria virtuale. Questo può causare un rallentamento significativo del sistema.
Il thrashing può essere causato da diversi fattori, tra cui:
Un numero elevato di processi in esecuzione
Una quantità insufficiente di memoria fisica
Un algoritmo di gestione della memoria inefficiente
Per evitare il thrashing, è importante:
Limitare il numero di processi in esecuzione
Assicurarsi che ci sia una quantità sufficiente di memoria fisica
Utilizzare un algoritmo di gestione della memoria efficiente
utilizzare la prepaginazione |
che cosa è la prepaginazione? vantaggi e svantaggi | Quando un processo viene fermato e salvato nell'area di swap, magari per una attesa I/O, tutte le sue pagine vengono spostate
Quando il processo può tornare a lavorare al posto di caricare una sola pagina alla volta e creare un grosso numero di page fault, tramite il prepaging viene caricato tutto il working set del processo
- Molto rischioso dato che si possono caricare pagine non necessarie
- Se il numero di pagine utili caricate supera il numero di page fault che si genererebbero senza allora si ha un guadagno di tempo |
che cosa è il modello working set? | Il modello working set è un modello di memoria virtuale che si basa sull'idea che le pagine di un processo che sono state utilizzate di recente sono più probabilmente utilizzate di nuovo in futuro. Il modello working set utilizza questa informazione per sostituire le pagine che sono meno probabilmente utilizzate, in modo da liberare la memoria per le pagine che sono più probabilmente utilizzate.
Il modello working set funziona in modo da mantenere in memoria un gruppo di pagine, chiamato working set, che sono state utilizzate di recente. Quando un processo tenta di accedere a una pagina che non è nel working set, il sistema operativo la carica in memoria dal disco. Se il working set è pieno, il sistema operativo sostituisce una pagina che non è stata utilizzata di recente. |
quali sono gli step fondamentali per il multitasking? | - Sospensione del processo in esecuzione
- Scheduling
- Dispatching
- Riattivazione del processo |
riguardo l'input che tipi di processi esistono, il motivo di questa suddivisione ? | - Processi I/O bound: processi che eseguono principalmente funzioni di input output
- Processi CPU Bound: processi con molte operazioni aritmetico logiche e poche IO
E fondamentale che lo scheduler a lungo termine selezioni una buona combinazione di processi con prevalenza di I/O e con prevalenza d’elaborazione |
che cosa è la prepaginazione? | La prepaginazione è un sistema che
- ha come obiettivo quello di ridurre il numero elevato di richieste di paginazione che si creano quando un processo o file viene caricato in memoria
- Nell'esempio di file, se di piccole dimensioni possono essere caricati totalmente in memoria
- Nell'esempio nel modello working set al momento di sospendere un processo (magari per una chiamata IO) potrà tenere traccia delle pagine che fanno parte del suo set di lavoro, così che al momento della riattivazione potrà caricarle contemporaneamente prevenendo richieste di paginazione. |
come vengono gestiti i processi parzialmente in memoria? | La memoria condivisa con la paginazione viene gestita mappando la stessa pagina di memoria su più processi. Ciò consente ai processi di condividere dati e codice senza la necessità di duplicare i dati. |
come viene scelta la pagina da sostituire con una nuova richiesta? | viene scelto un algoritmo fra i seguenti:
FIFO: viene scelta la pagina che per prima è stata caricata in memoria
LRU: viene scelta la pagina che è stata usata la pagina che è stata usata meno recentemente (pochi sistemi riescono effettivamente ad implementarla)
LRU con bit di riferimento: viene utilizzato un byte per ogni pagina per sapere quale è stata utilizzata, (aggiunto un 1 ogni volta che la pagina viene referenziata) viene scelta la pagina utillizzata di meno.
LRU (seconda chance): viene utilizzato un bit di riferimento
FIFO (seconda chance migliorato): viene utilizzato sia il bit di modifica che il bit di riferimento
LFU: viene scelta la pagina che è stata usata meno frequentemente (migliorato con l'ageing). implementabile con uno o piu bit di riferimento che vengono controllati periodicamente |