Sistemi Operativi - 10: Memoria Virtuale
41 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

Quale fattore contribuisce maggiormente alla prevenzione del thrashing?

  • Sufficiente memoria principale (correct)
  • Dimensione delle pagine
  • Utilizzo di cache
  • Elevato grado di multiprogrammazione
  • Pagine più piccole tendono a ridurre il numero di page fault.

    False

    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 ___.

    <p>2</p> Signup and view all the answers

    Abbina le dimensioni delle pagine alle loro conseguenze:

    <p>Pagine piccole = Peggiori prestazioni nell'uso dell'HD Pagine grandi = Meno page fault</p> Signup and view all the answers

    Qual è la formula per calcolare il tempo di accesso efficace (eat)?

    <p>eat = [(1-p) × ma] + [p × tempo di gestione del page fault]</p> Signup and view all the answers

    Un page fault si verifica quando il dato richiesto non è presente in memoria principale.

    <p>True</p> Signup and view all the answers

    Qual è il tempo medio di gestione di un page fault, se si trova su Hard Disk?

    <p>8 millisecondi</p> Signup and view all the answers

    Se p è uguale a 0,001, il tempo di accesso efficace (eat) è di circa __ microsecondi.

    <p>8,2</p> Signup and view all the answers

    Abbina i seguenti processi con il loro tempo medio di gestione:

    <p>Gestire il page fault = 1 ÷ 100 µ sec Recuperare la pagina dalla memoria secondaria = 8 millisecondi Riavviare il processo = 1 ÷ 100 µ sec</p> Signup and view all the answers

    Quale delle seguenti affermazioni è vera riguardo alla probabilità di page fault (p)?

    <p>p deve essere minore di 2,5 × 10^-6 per mantenere un degrado massimo del 10%</p> Signup and view all the answers

    Quanti accessi in RAM può generare un processo che esegue un milione di istruzioni?

    <p>Circa 400.000</p> Signup and view all the answers

    Qual è la funzione principale dell'area di swap?

    <p>Liberare spazio in memoria primaria</p> Signup and view all the answers

    Le pagine di codice devono essere sempre salvate nell'area di swap.

    <p>False</p> Signup and view all the answers

    Che cosa succede quando si verifica un page fault e non ci sono frame liberi nella RAM?

    <p>Il SO sceglie una pagina vittima da rimuovere e la salva nell'area di swap, poi carica la pagina mancante nel frame liberato.</p> Signup and view all the answers

    Quando si verifica un page fault, una pagina che deve essere rimossa dalla RAM è chiamata ______.

    <p>pagina vittima</p> Signup and view all the answers

    Abbina le seguenti azioni con la loro descrizione:

    <p>Scelta della pagina vittima = Rimuovere una pagina dalla RAM Salvataggio nella swap area = Conservare i dati modificati Caricamento della pagina mancante = Portare la pagina nella RAM Swapping = Spostare un pezzo di processo tra RAM e disco</p> Signup and view all the answers

    Qual è uno degli obiettivi della memoria virtuale?

    <p>Permettere l'esecuzione di processi più grandi della memoria disponibile</p> Signup and view all the answers

    Se la pagina vittima è stata modificata, non è necessario salvarla nella swap area.

    <p>False</p> Signup and view all the answers

    Qual è il compito del sistema operativo in caso di page fault?

    <p>Scegliere una pagina vittima, salvare la pagina nella swap area (se necessario) e caricare la pagina mancante.</p> Signup and view all the answers

    L'area di swap viene utilizzata principalmente per gestire il ______ nella memoria.

    <p>page fault</p> Signup and view all the answers

    Quale dei seguenti descrive meglio il funzionamento dell'algoritmo della Seconda Chance?

    <p>Dà una seconda possibilità alle pagine con reference bit a 1.</p> Signup and view all the answers

    L'algoritmo della Seconda Chance funziona sempre più efficacemente dell'algoritmo FIFO.

    <p>False</p> Signup and view all the answers

    Cosa accade a una pagina con reference bit a 0 quando si verifica un page fault?

    <p>La pagina viene selezionata come vittima e sostituita.</p> Signup and view all the answers

    In caso di page fault, il sistema operativo esamina la pagina entrata in RAM da più ______.

    <p>tempo</p> Signup and view all the answers

    Abbina i seguenti termini con le loro definizioni:

    <p>Page Fault = Situazione in cui una pagina non è in RAM Reference Bit = Indicatore se una pagina è stata utilizzata di recente FIFO = Politica di sostituzione basata sull'ordine di arrivo Vittima = Pagina selezionata per essere sostituita</p> Signup and view all the answers

    Cosa succede al reference bit di una pagina quando le viene data una seconda chance?

    <p>Viene azzerato a 0.</p> Signup and view all the answers

    Il sistema operativo può sapere in quale ordine sono state usate le pagine in RAM.

    <p>False</p> Signup and view all the answers

    Cosa succede se tutte le pagine hanno il reference bit a 1?

    <p>Il SO torna alla prima pagina e la seleziona come vittima.</p> Signup and view all the answers

    Il sistema operativo passa alla pagina successiva ______ il reference bit è a 1.

    <p>se</p> Signup and view all the answers

    Quale algoritmo si utilizza nel caso in cui tutte le pagine abbiano il reference bit a 1?

    <p>Algoritmo FIFO</p> Signup and view all the answers

    Quale tra le seguenti affermazioni descrive meglio un buon algoritmo di sostituzione delle pagine?

    <p>Minimizza il numero di page fault</p> Signup and view all the answers

    Una sequenza di riferimenti può generare page fault anche se si utilizza la stessa pagina di riferimento consecutivamente.

    <p>True</p> Signup and view all the answers

    Qual è la definizione di 'page fault'?

    <p>Un errore che si verifica quando un programma cerca di accedere a una pagina non presente in memoria.</p> 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.

    <p>8</p> Signup and view all the answers

    Quale di queste opzioni rappresenta un modo per valutare la bontà di un algoritmo di sostituzione delle pagine?

    <p>Generare sequenze di riferimenti in modo casuale</p> Signup and view all the answers

    Gli algoritmi di rimpiazzamento delle pagine non sono importanti per la gestione della memoria.

    <p>False</p> Signup and view all the answers

    Cosa si intende per 'frame' in contesto di gestione della memoria?

    <p>Un'unità di memoria che può contenere una pagina.</p> 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.

    <p>8</p> Signup and view all the answers

    Abbina i seguenti termini con la loro descrizione corretta:

    <p>Page fault = Errore di accesso a una pagina non presente in memoria Frame = Unità di memoria che contiene una pagina Algoritmo di sostituzione = Strategia per gestire il rimpiazzo delle pagine Sequenza di riferimento = Ordine in cui le pagine vengono accedute</p> Signup and view all the answers

    In quale situazione un algoritmo di sostituzione delle pagine potrebbe risultare meno efficace?

    <p>Quando ci sono pochi frame disponibili</p> 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.

    Quiz Team

    Related Documents

    Memoria Virtuale PDF

    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.

    More Like This

    Use Quizgecko on...
    Browser
    Browser