Podcast
Questions and Answers
Quale fattore contribuisce maggiormente alla prevenzione del thrashing?
Quale fattore contribuisce maggiormente alla prevenzione del thrashing?
Pagine più piccole tendono a ridurre il numero di page fault.
Pagine più piccole tendono a ridurre il numero di page fault.
False
Come influisce l'accesso agli array bidimensionali sulla memoria virtuale?
Come influisce l'accesso agli array bidimensionali sulla memoria virtuale?
Aumenta il rischio di page fault.
Le pagine devono essere sempre dimensionate in potenze di ___.
Le pagine devono essere sempre dimensionate in potenze di ___.
Signup and view all the answers
Abbina le dimensioni delle pagine alle loro conseguenze:
Abbina le dimensioni delle pagine alle loro conseguenze:
Signup and view all the answers
Qual è la formula per calcolare il tempo di accesso efficace (eat)?
Qual è la formula per calcolare il tempo di accesso efficace (eat)?
Signup and view all the answers
Un page fault si verifica quando il dato richiesto non è presente in memoria principale.
Un page fault si verifica quando il dato richiesto non è presente in memoria principale.
Signup and view all the answers
Qual è il tempo medio di gestione di un page fault, se si trova su Hard Disk?
Qual è il tempo medio di gestione di un page fault, se si trova su Hard Disk?
Signup and view all the answers
Se p è uguale a 0,001, il tempo di accesso efficace (eat) è di circa __ microsecondi.
Se p è uguale a 0,001, il tempo di accesso efficace (eat) è di circa __ microsecondi.
Signup and view all the answers
Abbina i seguenti processi con il loro tempo medio di gestione:
Abbina i seguenti processi con il loro tempo medio di gestione:
Signup and view all the answers
Quale delle seguenti affermazioni è vera riguardo alla probabilità di page fault (p)?
Quale delle seguenti affermazioni è vera riguardo alla probabilità di page fault (p)?
Signup and view all the answers
Quanti accessi in RAM può generare un processo che esegue un milione di istruzioni?
Quanti accessi in RAM può generare un processo che esegue un milione di istruzioni?
Signup and view all the answers
Qual è la funzione principale dell'area di swap?
Qual è la funzione principale dell'area di swap?
Signup and view all the answers
Le pagine di codice devono essere sempre salvate nell'area di swap.
Le pagine di codice devono essere sempre salvate nell'area di swap.
Signup and view all the answers
Che cosa succede quando si verifica un page fault e non ci sono frame liberi nella RAM?
Che cosa succede quando si verifica un page fault e non ci sono frame liberi nella RAM?
Signup and view all the answers
Quando si verifica un page fault, una pagina che deve essere rimossa dalla RAM è chiamata ______.
Quando si verifica un page fault, una pagina che deve essere rimossa dalla RAM è chiamata ______.
Signup and view all the answers
Abbina le seguenti azioni con la loro descrizione:
Abbina le seguenti azioni con la loro descrizione:
Signup and view all the answers
Qual è uno degli obiettivi della memoria virtuale?
Qual è uno degli obiettivi della memoria virtuale?
Signup and view all the answers
Se la pagina vittima è stata modificata, non è necessario salvarla nella swap area.
Se la pagina vittima è stata modificata, non è necessario salvarla nella swap area.
Signup and view all the answers
Qual è il compito del sistema operativo in caso di page fault?
Qual è il compito del sistema operativo in caso di page fault?
Signup and view all the answers
L'area di swap viene utilizzata principalmente per gestire il ______ nella memoria.
L'area di swap viene utilizzata principalmente per gestire il ______ nella memoria.
Signup and view all the answers
Quale dei seguenti descrive meglio il funzionamento dell'algoritmo della Seconda Chance?
Quale dei seguenti descrive meglio il funzionamento dell'algoritmo della Seconda Chance?
Signup and view all the answers
L'algoritmo della Seconda Chance funziona sempre più efficacemente dell'algoritmo FIFO.
L'algoritmo della Seconda Chance funziona sempre più efficacemente dell'algoritmo FIFO.
Signup and view all the answers
Cosa accade a una pagina con reference bit a 0 quando si verifica un page fault?
Cosa accade a una pagina con reference bit a 0 quando si verifica un page fault?
Signup and view all the answers
In caso di page fault, il sistema operativo esamina la pagina entrata in RAM da più ______.
In caso di page fault, il sistema operativo esamina la pagina entrata in RAM da più ______.
Signup and view all the answers
Abbina i seguenti termini con le loro definizioni:
Abbina i seguenti termini con le loro definizioni:
Signup and view all the answers
Cosa succede al reference bit di una pagina quando le viene data una seconda chance?
Cosa succede al reference bit di una pagina quando le viene data una seconda chance?
Signup and view all the answers
Il sistema operativo può sapere in quale ordine sono state usate le pagine in RAM.
Il sistema operativo può sapere in quale ordine sono state usate le pagine in RAM.
Signup and view all the answers
Cosa succede se tutte le pagine hanno il reference bit a 1?
Cosa succede se tutte le pagine hanno il reference bit a 1?
Signup and view all the answers
Il sistema operativo passa alla pagina successiva ______ il reference bit è a 1.
Il sistema operativo passa alla pagina successiva ______ il reference bit è a 1.
Signup and view all the answers
Quale algoritmo si utilizza nel caso in cui tutte le pagine abbiano il reference bit a 1?
Quale algoritmo si utilizza nel caso in cui tutte le pagine abbiano il reference bit a 1?
Signup and view all the answers
Quale tra le seguenti affermazioni descrive meglio un buon algoritmo di sostituzione delle pagine?
Quale tra le seguenti affermazioni descrive meglio un buon algoritmo di sostituzione delle pagine?
Signup and view all the answers
Una sequenza di riferimenti può generare page fault anche se si utilizza la stessa pagina di riferimento consecutivamente.
Una sequenza di riferimenti può generare page fault anche se si utilizza la stessa pagina di riferimento consecutivamente.
Signup and view all the answers
Qual è la definizione di 'page fault'?
Qual è la definizione di 'page fault'?
Signup and view all the answers
Con un solo frame disponibile in memoria, la sequenza 10, 7, 4, 5, 6, 1, 10, 4 genera _____ page fault.
Con un solo frame disponibile in memoria, la sequenza 10, 7, 4, 5, 6, 1, 10, 4 genera _____ page fault.
Signup and view all the answers
Quale di queste opzioni rappresenta un modo per valutare la bontà di un algoritmo di sostituzione delle pagine?
Quale di queste opzioni rappresenta un modo per valutare la bontà di un algoritmo di sostituzione delle pagine?
Signup and view all the answers
Gli algoritmi di rimpiazzamento delle pagine non sono importanti per la gestione della memoria.
Gli algoritmi di rimpiazzamento delle pagine non sono importanti per la gestione della memoria.
Signup and view all the answers
Cosa si intende per 'frame' in contesto di gestione della memoria?
Cosa si intende per 'frame' in contesto di gestione della memoria?
Signup and view all the answers
La sequenza di riferimento 10, 7, 7, 7, 4, 5, 5, 5, 5, 6, 1, 10, 10, 10, 10, 4 genera _____ page fault con un solo frame disponibile.
La sequenza di riferimento 10, 7, 7, 7, 4, 5, 5, 5, 5, 6, 1, 10, 10, 10, 10, 4 genera _____ page fault con un solo frame disponibile.
Signup and view all the answers
Abbina i seguenti termini con la loro descrizione corretta:
Abbina i seguenti termini con la loro descrizione corretta:
Signup and view all the answers
In quale situazione un algoritmo di sostituzione delle pagine potrebbe risultare meno efficace?
In quale situazione un algoritmo di sostituzione delle pagine potrebbe risultare meno efficace?
Signup and view all the answers
Study Notes
Memoria Virtuale
- La memoria virtuale (MV) è un insieme di tecniche che permettono l'esecuzione di processi, dove codice e/o dati non sono caricati completamente in memoria primaria.
- I metodi di gestione della memoria principale (MP) tentano di tenere in RAM il maggior numero di processi possibile per aumentare la multiprogrammazione.
- Per una certa quantità di RAM disponibile in un sistema, il numero di processi che possono stare in MP dipende dalla loro dimensione.
- La MV funziona perché i programmi non hanno bisogno di essere caricati interamente in MP per essere eseguiti.
- Esempi di casi in cui ciò si verifica includono codice per trattare condizioni di errore, array, liste, tabelle dichiarate con dimensioni maggiori di quanto effettivamente usate e librerie dinamiche caricate solo quando usate.
- L'idea di fondo della MV è caricare in MP solo le parti di programma/dati che devono essere effettivamente eseguite in un certo momento dell'esecuzione.
Paginazione su Richiesta (Demand Paging)
- Idea di base: portare una pagina in MP solo nel momento in cui è richiesto l'accesso ad una locazione di memoria appartenente a quella pagina (un dato o un'istruzione).
- Quando la CPU esegue un'istruzione che indirizza una locazione di RAM in una pagina diversa da quella in esecuzione e la pagina non è in MP, si dice che il processo ha generato un "page fault".
- Il sistema operativo (SO) deve sospendere il processo, caricare la pagina mancante in memoria e ripartire il processo dal punto in cui era stato sospeso.
- Un modulo del SO, detto "pager", si occupa del caricamento della pagina mancante dalla memoria secondaria (MS) in un frame libero della memoria principale (MP).
- In attesa di completare il caricamento, la CPU viene assegnata ad un altro processo.
- Quando la pagina è in MP, il processo corrispondente viene rimesso nella coda di ready e riprenderà l'esecuzione dall'istruzione che aveva causato il problema quando sarà scelto dallo scheduler.
Prestazioni della Paginazione su Richiesta
- Supponiamo di dover leggere un dato in MP. Se il dato è presente, il tempo di accesso è di circa 100-200 nanosecondi (ma). Se c'è un page fault, il tempo di gestione del page fault si aggiunge al tempo di accesso alla pagina, che è piuttosto lungo (circa 8 millisecondi).
- eat (effective access time) = [(1-p) x ma] + [p x tempo di gestione del page fault], dove p è la probabilità di un page fault.
- La gestione di un page fault richiede la gestione del page fault (circa 1-100 μsec), il recupero della pagina mancante dalla memoria secondaria (circa 8 millisecondi) e il riavvio del processo (circa 1-100 μsec)
- Il tempo di esecuzione rallenta a causa della gestione del page fault (p).
- Per minimizzare il degrado, la probabilità di page fault (p) deve essere molto bassa (es. <2.5 x 10^-6, ovvero meno di un page fault ogni 400.000 accessi in memoria).
L'area di Swap
- La memoria virtuale ha bisogno di una porzione dell'hard disk (HD) detta area di Swap.
- All'installazione, sull'HD viene riservata una porzione del disco ad uso esclusivo del SO.
- L'area di swap è gestita con meccanismi più semplici ed efficienti rispetto al file system per quanto riguarda il posizionamento di pagine dei processi.
Sostituzione delle Pagine
- Il SO, in caso di page fault e mancanza di frame liberi in RAM, sceglie una "pagina vittima" da rimuovere dalla RAM, salva la pagina vittima nella swap area (se necessario) e carica la pagina mancante nel frame liberato.
- Le pagine di codice non devono essere salvate in swap perché c'è una copia nel file system.
- Le pagine di dati modificate devono essere salvate in swap prima di essere rimosse, per mantenere le modifiche.
- Un dirty bit fa capire se una pagina è stata modificata o meno; il SO salva nella swap solo le pagine con il dirty bit a 1.
Algoritmi di Sostituzione delle Pagine
- Un buon algoritmo di sostituzione minimizza il numero di page fault.
- Vari metodi di valutazione possono essere utilizzati per testare la bontà di differenti algoritmi di sostituzione, come sequenze di riferimenti casuali o generate da programmi reali.
Allocazione dei Frame
- In un sistema multiprogrammato, come distribuiamo i frame disponibili fra i processi?
- Possibili strategie includono un numero uguale di frame per ogni processo, proporzionale alle dimensioni dei processi o alle loro priorità.
Allocazione Globale e Locale
- Allocazione globale: la pagina vittima viene scelta tra tutte le pagine in memoria principale (escluso il SO).
- Allocazione locale: la pagina vittima viene scelta tra le pagine del processo che ha generato il page fault.
- Le allocazioni globali sono generalmente preferite per sistemi time sharing perché forniscono un throughput più elevato.
Thrashing
- Il thrashing è un fenomeno di elevata attività di paginazione che peggiora le prestazioni del sistema se i frame sono pochi.
- Thrashing avviene quando i processi sono costantemente impegnati a caricare e scaricare pagine da/nella memoria principale, causando molti page fault.
- Il thrashing può essere ridotto diminuendo il numero di processi attivi contemporaneamente.
Altri considerazioni: dimensione delle pagine
- Le pagine tendono ad essere delle potenze di 2 (es. 4k, 8k) e le dimensioni ottimali delle pagine dipendono da vari fattori, tra cui la grandezza della tabella delle pagine (PT), la frammentazione interna e la latenza del disco.
- Le pagine piccole (i.e., "più piccole" delle dimensioni tipiche) generano più page fault, mentre le pagine grandi (i.e., "più grandi" delle dimensioni tipiche) possono portare a frammentazione interna e a più operazioni di lettura/scrittura sul disco.
Struttura dei Programmi
- La struttura dei programmi influenza il numero di page fault.
- Gli array bidimensionali allocati per riga tendono a generare meno page fault rispetto agli array allocati per colonna in casi in cui si accede agli elementi dei dati secondo le colonne.
- Le hash table possono generare molti page fault a causa del loro pattern di accesso non sequenziale.
Windows 10
- Windows 10 utilizza una tecnica di clustering nella demand paging, caricando anche pagine adiacenti a quella richiesta.
- Imposta un insieme di lavoro minimo e massimo per quantificare le pagine in RAM per processo.
- Adotta un algoritmo di sostituzione che utilizza la seconda chance per decidere quali pagine rimuovere quando la RAM è a capacità piena.
Solaris
- Solaris impiegano una paginazione su richiesta standard, ma gestisce i frame liberi.
- C'è un parametro lostfree, equivalente a circa 1/64 dei frame totali, che segnala la potenziale mancanza di frame liberi.
- Il processo pageout viene attivato se la quantità di frame liberi scende al di sotto del valore lostfree.
- Il processo pageout opera in due fasi: la scansione di tutte le pagine in memoria principale per azzerare il bit di riferimento e una seconda scansione delle pagine (in cui quelle senza bit di riferimento vengono riutilizzate e, se modificate, salvate in memoria secondaria prima di essere riutilizzate)
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.
Related Documents
Description
Questo quiz esplora i concetti fondamentali della memoria virtuale, in particolare il fenomeno dei page fault. Verranno esaminate le dimensioni delle pagine, il tempo di accesso e l'impatto dell'accesso agli array bidimensionali sulla gestione della memoria. Testa le tue conoscenze sulla gestione della memoria informatica.