4) Gestione della memoria
45 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 dei seguenti algoritmi di sostituzione non è implementabile nella pratica?

  • Sostituzione ad orologio
  • Sostituzione FIFO
  • Sostituzione LRU
  • Sostituzione ottimale (correct)
  • Con quale criterio viene scelta la pagina da sostituire nell'algoritmo LRU?

  • La pagina con il più alto tempo rimanente di esecuzione
  • La pagina che ha causato l'ultimo page fault
  • La pagina non richiesta per il tempo più lungo (correct)
  • La pagina con l'immagine più grande
  • Qual è il risultato della sostituzione ottimale nell'esempio fornito con 3 frame?

  • 3 page faults (correct)
  • 1 page fault
  • 4 page faults
  • 2 page faults
  • Cosa rappresenta il termine 'working set' in relazione ai processi?

    <p>Il set attuale di pagine di cui un processo ha bisogno</p> Signup and view all the answers

    Quale strategia non si basa sul principio di località nella sostituzione delle pagine?

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

    Qual è la dimensione della pagina utilizzata da Linux sugli x86?

    <p>4kB</p> Signup and view all the answers

    Quale funzione svolge la segmentazione nella gestione della memoria?

    <p>Permette di gestire strutture dati variabili</p> Signup and view all the answers

    Cosa contiene ogni entry della tabella dei segmenti?

    <p>L'indirizzo di partenza del segmento</p> Signup and view all the answers

    Qual è un vantaggio naturale della segmentazione?

    <p>Facilita la protezione e la condivisione dei dati</p> Signup and view all the answers

    Quale affermazione è vera riguardo la paginazione?

    <p>È trasparente al programmatore</p> Signup and view all the answers

    Cosa caratterizza la dimensione dei segmenti nella segmentazione?

    <p>Può essere variabile e dinamica</p> Signup and view all the answers

    Che cosa permette la segmentazione riguardo la modifica dei programmi?

    <p>Modifiche indipendenti e ricompilazione</p> Signup and view all the answers

    Qual è una delle decisioni principali nella gestione della memoria?

    <p>Utilizzare memoria virtuale o meno</p> Signup and view all the answers

    Qual è il significato dell'acronimo TLB?

    <p>Translation Lookaside Buffer</p> Signup and view all the answers

    Cosa accade in caso di TLB hit?

    <p>Si preleva il frame number e si ricava l'indirizzo reale.</p> Signup and view all the answers

    Qual è una delle conseguenze di un TLB miss?

    <p>Si accede alla normale tabella delle pagine del processo.</p> Signup and view all the answers

    Quale algoritmo è solitamente usato per il rimpiazzamento delle entry nel TLB?

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

    Qual è l'effetto di un reset del TLB sul sistema operativo?

    <p>È la soluzione peggiore dal punto di vista delle prestazioni.</p> Signup and view all the answers

    Cosa si necessita per paginare la tabella delle pagine?

    <p>Basta avere il primo livello più una tabella del secondo.</p> Signup and view all the answers

    Quanti processi occorrono per occupare più della metà della RAM, considerando solo le strutture di overhead?

    <p>Quasi 4000 processi.</p> Signup and view all the answers

    Qual è uno dei principali vantaggi del TLB nella gestione della memoria virtuale?

    <p>Riduce il numero di accessi alla memoria principale.</p> Signup and view all the answers

    Quale sistema utilizza il kernel per gestire le richieste di memoria grandi fino a 4MB?

    <p>Buddy system</p> Signup and view all the answers

    Quale affermazione riguardo alla gestione della memoria utente è corretta?

    <p>La gestione del set residente è dinamica</p> Signup and view all the answers

    Qual è la funzione principale del thread kernel kswapd?

    <p>Scorrere le pagine inattive</p> Signup and view all the answers

    Quando il kernel utilizza il slab allocator?

    <p>Per gestire piccole richieste di memoria</p> Signup and view all the answers

    Cosa rappresentano i flag PG referenced e PG active nelle tabelle delle pagine?

    <p>Stato di accesso e utilizzo della memoria</p> Signup and view all the answers

    Qual è l'algoritmo utilizzato dal kernel più recente per la politica di sostituzione?

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

    Qual è la politica di pulitura utilizzata dal sistema operativo?

    <p>Scrittura quando la cache è piena</p> Signup and view all the answers

    Qual è la caratteristica chiave della gestione della memoria del DMA?

    <p>Ignora la paginazione e richiede memoria contigua</p> Signup and view all the answers

    Qual è la differenza principale tra memoria virtuale e memoria reale?

    <p>La memoria virtuale utilizza la memoria secondaria come se fosse principale.</p> Signup and view all the answers

    Cosa accade durante un page fault?

    <p>Viene caricata in memoria la parte richiesta del processo.</p> Signup and view all the answers

    Quale termine descrive il processo in cui il SO passa la maggior parte del tempo a scambiare pezzi di processi invece di eseguire istruzioni?

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

    Come avviene l'indirizzamento nella memoria virtuale?

    <p>Ci sono fasi di traduzione automatica tra indirizzi virtuali e reali.</p> Signup and view all the answers

    Quale affermazione è vera riguardo alla dimensione della memoria virtuale?

    <p>La dimensione è limitata dalla dimensione della memoria secondaria.</p> Signup and view all the answers

    Qual è uno dei principali vantaggi della memoria virtuale?

    <p>Permette una migliore utilizzo della RAM.</p> Signup and view all the answers

    Qual è la funzione principale dello swapping nel contesto della memoria virtuale?

    <p>Liberare spazio nella memoria principale.</p> Signup and view all the answers

    Cosa rappresenta l'indirizzo virtuale in un sistema di memoria virtuale?

    <p>L'indirizzo associato a una locazione della memoria virtuale.</p> Signup and view all the answers

    Quale affermazione descrive meglio la demand paging?

    <p>Le pagine vengono caricate solo quando un processo le richiede.</p> Signup and view all the answers

    Qual è il ruolo della placement policy nella gestione della memoria?

    <p>Determinare dove collocare una pagina in memoria principale.</p> Signup and view all the answers

    Quale strategia minimizza i page faults durante l'esecuzione di un processo?

    <p>Usare una gestione attenta del resident set.</p> Signup and view all the answers

    Cosa implica la replacement policy nella gestione della memoria?

    <p>Determinare quale pagina deve essere sostituita quando non ci sono frame liberi.</p> Signup and view all the answers

    Quale delle seguenti affermazioni sull'allocazione dei frame è corretta?

    <p>La quantità di frame allocati è adattiva e dipende dal carico del processo.</p> Signup and view all the answers

    Cos'è la politica di pulitura nella gestione della memoria?

    <p>Una tecnica per liberare la memoria occupata da pagine obsolete.</p> Signup and view all the answers

    In quale situazione si avrà un numero elevato di page fault?

    <p>Quando vengono richieste pagine che non sono già in memoria.</p> Signup and view all the answers

    Qual è l'obiettivo primario della gestione del resident set?

    <p>Allocare il giusto numero di frame a ciascun processo attivo.</p> Signup and view all the answers

    Study Notes

    Introduzione ai Sistemi Operativi - Modulo I

    • Corso di laurea in Informatica, secondo canale
    • Relatore: Fabio De Gaspari
    • Slides preparate da Igor Melatti
    • Università di Roma "Sapienza", Dipartimento di Informatica

    Roadmap

    • Gestione della memoria: requisiti di base
    • Partizionamento della memoria
    • Paginazione e segmentazione
    • Memoria virtuale: hardware e strutture di controllo
    • Memoria virtuale e sistema operativo
    • Gestione della memoria in Linux

    Perché Gestire la Memoria (nel SO)

    • La memoria è oggi a basso costo, ma le applicazioni moderne richiedono sempre più memoria
    • Se ogni processo gestisse la propria memoria, non ci sarebbe multiprogrammazione
    • È necessario imporre dei limiti di memoria a ciascun processo
    • Il sistema operativo si occupa di gestire la memoria per massimizzare l'efficienza del processore, e per rendere realistica l'illusione che ogni processo abbia a disposizione tutta la memoria
    • Il swap di blocchi di dati in memoria secondaria è una parte essenziale di questa gestione

    Requisiti per la Gestione della Memoria

    • Rilocazione: l'hardware e il sistema operativo devono collaborare per tradurre gli indirizzi logici in indirizzi fisici
    • Protezione: ogni processo deve avere accesso solo alle proprie risorse di memoria
    • Condivisione: i processi possono condividere parti di memoria
    • Organizzazione logica: la memoria è vista come un insieme di moduli
    • Organizzazione fisica: gestione del flusso tra RAM e memoria secondaria

    Rilocazione/Gli indirizzi nei programmi

    • Il programmatore non deve conoscere l'allocazione fisica del programma nella memoria
    • I riferimenti alla memoria devono essere tradotti in indirizzi fisici
    • Il sistema operativo e l'hardware collaborano per la rilocazione dinamica

    Rilocazione: gli Indirizzi nei Programmi

    • Il linker crea il modulo del carico
    • Il caricatore posiziona il modulo di carico in memoria
    • I riferimenti alla memoria devono essere tradotti
    • Preprocessing o run-time
    • Occorre supporto hardware

    Indirizzi

    • Logici: indipendenti dal posizionamento del programma
    • Relativi: rispetto ad un punto noto (spiazzamento)
    • Fisici/Assoluti: riferimenti effettivi alla memoria

    Rilocazione

    • Vecchissime soluzioni (CTSS) richiedevano indirizzi assoluti.
    • Soluzione più recente: gli indirizzi sono determinati durante l'esecuzione.
    • Hardware dedicato
    • Un programma può essere spostato in diverse partizioni per swapping e compattazione

    Rilocazione a Run-Time senza Hardware Speciale

    • Complicazioni e costo elevato.
    • L'overhead è troppo elevato

    Rilocazione a Run-Time con Hardware Speciale

    - Risoluzione efficace, tramite registri base e limite.

    • Il processore traduce gli indirizzi
    • Register base/registro base.
    • Register limit/registro limite

    Registri Usati per la Rilocazione di Indirizzi Relativi

    • Registro base (indirizzo di partenza del processo)
    • Registro limite (indirizzo di fine del processo)
    • I valori vengono settati al momento del posizionamento del processo in memoria
    • I registri vengono gestiti dal sistema operativo

    Requisiti: Rilocazione, Protezione, Condivisione

    • Protezione è indispensabile
    • Condivisione è necessaria quando più processi accedono alle stesse parti di memoria.

    Requisiti: Organizzazione Logica

    • Livello hardware: memoria lineare
    • Livello software: programmi scritti in moduli • moduli compilati separatamente • l'SO gestisce i permessi • Condivisione dei moduli tra i processi

    Requisiti: Organizzazione Fisica

    • Gestione del flusso tra RAM e memoria secondaria è gestita dall'SO
    • Tecnica overlaying (sovrapposizione)
    • Il programmatore non sa quanta memoria è disponibile

    Partizionamento

    • Uno dei primi metodi per la gestione della memoria.
    • Precedente alla memoria virtuale.
    • Utile per comprendere l'evoluzione della memoria virtuale a partizionamento

    Tipi di Partizionamento

    • Partizionamento fisso
    • Partizionamento dinamico
    • Paginazione semplice
    • Segmentazione semplice
    • Paginazione con memoria virtuale
    • Segmentazione con memoria virtuale

    Partizionamento Fisso Uniforme

    • Partizioni di uguale lunghezza
    • Il sistema operativo gestisce l'allocazione
    • Problemi: frammentazione interna

    Partizionamento: Problemi

    • Programmi troppo grandi
    • Sovrapposizione di overlays
    • Inefficienza di uso di memoria

    Partizionamento fisso variabile

    • Mitiga alcuni dei problemi del partizionamento fisso, ma non tutti
    • Le partizioni non sono tutte della stessa dimensione
    • Partizioni più piccole per programmi piccoli

    Algoritmi di Posizionamento

    • Partizioni di uguale lunghezza: scelta semplice
    • Partizioni di diversa lunghezza: allocazione nella partizione più piccola disponibile
    • Coda per ogni partizione o una sola coda

    Partizionamento fisso e Code (diapositive)

    • Diagrammi che illustrano lo schema
    • Il sistema operativo gestisce l'allocazione
    • Il sistema operativo utilizza le code per gestire i vari processi

    Partizionamento Fisso: Problemi Irrisolti

    • Numero massimo di processi limitato dalle partizioni iniziali

    Partizionamento Dinamico

    • Le partizioni variano sia in misura che in quantità.
    • Ciascun processo riceve la memoria che necessita
    • Problema: la frammentazione esterna

    Partizionamento Dinamico: Esempio

    • Processo viene allocato in partizioni di dimensione variabile
    • Esempli grafici dell'algoritmo di allocazione

    Partizionamento Dinamico: Esempio, (Algoritmi)

    • Descrizione di esempi grafici dell'algoritmo di allocazione

    Partizionamento Dinamico

    • Frammentazione esterna: memoria non utilizzata, frammentata.
    • Compattazione risolvere la frammentazione esterna, ma overhead elevato

    Partizionamento Dinamico (Algoritmi)

    • Best-fit: seleziona il blocco più vicino alla dimensione richiesta
    • First-fit: seleziona il primo blocco disponibile più grande o uguale alla dimensione
    • Next-fit: come first-fit, ma inizia la scansione dal punto in cui si era fermata l'ultima allocazione di un blocco

    Allocazione: Esempio

    • Illustrazione grafica del processo di allocazione.
    • Confronto tra i diversi algoritmi di posizionamento

    Buddy System (Sistema del Compagno)

    • Compromesso tra partizionamento fisso e dinamico.
    • Si dimezza lo spazio per trovare lo spazio adatto al processo.
    • Ovvio, spazio a disposizione, già occupato da altri processi
    • Fusione spazî liberî
    • Esempio di Buddy System

    Esempio di Buddy System: Rappresentazione ad Albero

    • Illustrazione grafica dell'esempio del Buddy System
    • Struttura ad albero che indica l'utilizzo della memoria

    Paginazione (Semplice)

    • La memoria viene partizionata in pagine di dimensioni fisse.
    • I pezzi del processo sono pagine che vengono allocate in frame.
    • Le pagine si possono spostare tra i diversi frame.
    • La singola pagina e frame hanno la stessa dimensione.

    Paginazione

    • Sistema operativo utilizza una tabella delle pagine per mappare le pagine virtuali ai frame fisici
    • Traduzione degli indirizzi virtuali in indirizzi fisici
    • La rilocazione viene gestita dal sistema operativo

    Paginazione: Esempio

    • Esempio grafico della struttura e allocazione delle pagine nella memoria

    Paginazione: Esempio di Traduzione

    • Supponendo pagine da 100 byte
    • Riferimenti alla memoria sono relativi all'inizio di un processo.
    • Traduzione di un indirizzo virtuale in un indirizzo reale
    • Esempio numerico dettagliato

    Paginazione Esempio di Traduzione

    • Spiegazione dei passi della conversione di un indirizzo virtuale in uno fisico

    Paginazione: Quanto detto

    • Paginazione sfrutta una notazione posizionale in base 10.
    • La dimensione della pagina è una potenza di 2
    • Calcolo dell'indirizzo fisico dalla pagina virtuale

    Paginazione (Indirizzo Logico - Fisico)

    • Illustrazione di un esempio numerico della conversione di un indirizzo logico in un indirizzo fisico con le pagine di dimensione 1024 (1KB)

    Paginazione: Esempio (Tabelle delle pagine)

    • Esempio visuale delle tabelle delle pagine.
    • Mappa delle pagine allocate per ogni processo

    Paginazione: Esempio di Traduzione

    • Calcolo dell'indirizzo fisico da quello virtuale

    Segmentazione (Semplice)

    • Segmenti variabile, con lunghezza massima.
    • Indirizzo è un numero di segmento e uno spostato (offset)
    • Simile al partizionamento dinamico, ma gestisce esplicitamente i segmenti
    • Programma, compilatore, gestiscono i segmenti
    • SO gestisce allocazione segmenti in RAM

    Segmentazione

    • Descrizione delle operazioni del modulo di segmentazione
    • Conversione degli indirizzi di segmento e offset
    • Riferimenti e conversione tra base, lunghezza, indirizzo e offset virtuale

    Segmentazione: Organizzazione

    • Ogni processo ha una tabella dei segmenti
    • Ogni voce della tabella contiene l'indirizzo di base e la lunghezza del segmento, un bit per la presenza e una modifica bit
    • Il control block punta a tale tabella

    Segmentazione: Traduzione degli Indirizzi

    • Schema di funzionamento della conversione degli indirizzi virtuali in fisici
    • Come il modulo di segmentazione traduce i riferimenti
    • Visualizzazione degli step

    Paginazione e Segmentazione

    • Paginazione è trasparente al programmatore.
    • La segmentazione è visibile al programmatore
    • Operazioni del modulo di segmenatazione
    • I due metodi si possono integrare

    Paginazione e Segmentazione: Traduzione degli Indirizzi

    • Traduzione di indirizzi virtuali in fisici nei sistemi che usano sia paginazione che segmentazione

    Protezione e Condivisione

    • La segmentazione permette di controllare gli accessi dei processi alle parti di memoria
    • La dimensione del segmento indica gli accessi consentiti.
    • La condivisione di segmenti tra i diversi processi

    Protezione

    • Diagramma di memoria principale che illustra processi e segmenti
    • Le zone di memoria sono protette dagli accessi indesiderati.

    Roadmap

    • Gestione della memoria: requisiti di base
    • Partizionamento della memoria
    • Paginazione e segmentazione
    • Memoria virtuale: hardware e strutture di controllo
    • Memoria virtuale e sistema operativo
    • Gestione della memoria in Linux

    Gestione della Memoria: Decisioni

    • Considerazioni sulla scelta se usare la memoria virtuale o meno, e quali algoritmi di paging e segmentazione impiegare.

    Elementi Centrali per il Progetto del SO

    • Fetch, Placement, e Replacement Policies
    • Gestione del Resident Set
    • Mantenimento del caricamento
    • Minimizzazione dei page fault

    Fetch Policy

    • Decide quando una pagina deve essere caricata in memoria principale
    • Le due politiche principali sono demand paging e prepaging

    Demand Paging e Prepaging

    • Paging on demand: la pagina viene caricata nella memoria principale solo quando è richiesta.
    • Prepaging: si portano in memoria pagine vicine a quelle richieste.

    Dove si Mette una Pagina?

    • Placement policy: decide dove posizionare una pagina nella memoria principale
    • Hardware per la traduzione degli indirizzi
    • Primo frame libero con indirizzo più basso

    Quale Pagina Sostituire?

    • Replacement policy: sceglie la pagina da sostituire.
    • Minimizzazione della probabilità che la pagina venga richiamata ripetutamente
    • Si utilizza il principio di località

    Gestione del Resident Set

    • Decisioni sulla dimensione del resident set
    • Tecniche per la gestione del resident set (allocazione fissa o dinamica)

    Page Faults vs. Dimensione Pagine

    • Rappresentazione grafica del rapporto fra dimensione della pagina e page fault. Il page fault aumenta quando le pagine sono troppo grosse

    Dimensione delle pagine (Alcuni Sistemi)

    • Dimensioni delle pagine in alcuni sistemi operativi

    Dimensione delle Pagine (in Alcuni Sistemi)

    • Tabelle riassuntive delle dimensioni di pagina di diversi sistemi

    Roadmap

    • Gestione della memoria: requisiti di base
    • Partizionamento della memoria
    • Paginazione e segmentazione
    • Memoria virtuale: hardware e strutture di controllo
    • Memoria virtuale e sistema operativo • Gestione della memoria in Linux

    Segmentazione

    • Permette al programmatore di vedere la memoria come un insieme di segmenti
    • La dimensione degli indirizzi può essere variabile e anche dinamica

    Segmentazione: Organizzazione

    • Ogni processo ha una sua tabella dei segmenti.

    Segmentazione: Traduzione degli Indirizzi.

    • Visualizzazione del funzionamento del sistema di segmentazione

    Paginazione e Segmentazione

    • La paginazione è trasparente al programmatore, mentre la segmentazione no.
    • Ogni segmento viene diviso in pagine.

    Paginazione e Segmentazione

    • Tabella che illustra come sono organizzate le tabelle delle pagine e dei segmenti

    Protezione e Condivisione

    • I segmenti sono individuabili e proteggibili
    • I dati possono essere condivisi tra i processi

    Protezione

    • Grafico che illustra la protezione memoria in un sistema con più processi

    Roadmap

    • Gestione della memoria: requisiti di base
    • Partizionamento della memoria
    • Paginazione e segmentazione
    • Memoria virtuale: hardware e strutture di controllo
    • Memoria virtuale e sistema operativo
    • Gestione della memoria in Linux

    Gestione della Memoria: Decisioni

    • Considerazione della scelta se utilizzare la memoria virtuale o meno
    • Le varie opzioni di gestione della memoria

    Elementi Centrali per il Progetto del SO

    • Fetch, placement, e replacement policies
    • Gestione del resident set
    • Controllo del carico

    Fetch Policy

    • Decisioni su quando portare una pagina in memoria principale

    Demand Paging e Prepaging

    • Demand paging: caricamento in tempo reale quando la pagina è richiesta
    • Prepaging: caricamento in anticipo di pagine vicine per minimizzare i page fault

    Dove si Mette una Pagina?

    • Placement policy: decisioni su dove posizionare una nuova pagina in memoria

    Quale Pagina Sostituire?

    • Replacement policy: scelta della pagina da sostituire per minimizzare i page fault

    Gestione del Resident Set

    • Dimensione del resident set e tecniche per la gestione.

    Page Faults vs. Dimensione Pagine

    • La dimensione delle pagine influenza il rate dei page fault.

    Strategie di gestione memoria

    • Strategie di dimensione pagina in alcuni sistemi

    Roadmap

    • Gestione della memoria: requisiti di base
    • Partizionamento della memoria
    • Paginazione e segmentazione
    • Memoria virtuale: hardware e strutture di controllo
    • Memoria virtuale e sistema operativo
    • Gestione della memoria in Linux

    Gestione della Memoria in Linux

    • Approccio del kernel rispetto ai processi utente per la gestione della memoria.

    Gestione della Memoria Kernel (Cenni)

    • Descrizione della differente gestione della memoria tra kernel e processi utente in Linux per le richieste di memoria.

    Gestione della Memoria Utente

    • Strategie di gestione della memoria in Linux per i processi utente.
    • Policies per il prelievo, il posizionamento, la rimpiazzamento

    Linux: Replacement Policy

    • Algoritmo dell'orologio
    • Utilizzo di due flags nelle tabelle delle pagine kswapd.

    Linux: Replacement Policy

    • Grafico che visualizza i due stati attivi e inattivi delle pagine.

    TLB e Mapping Associativi

    • Descrizione e schemi di come il TLB traduce gli indirizzi virtuali

    TLB e Cache

    • Funzionamento e schema del TLB

    Dimensione delle Pagine: Perché Grande/Piccola

    • Considerazione sulla grandezza delle pagine e sulla sua influenza negli algoritmi di gestione memoria.

    Dimensione delle pagine (Alcuni Sistemi)

    • Elenco esemplificativo di diverse dimensioni di pagina usate in alcuni sistemi.

    Controllo del Carico (Medium-Term Scheduler)

    • Tecniche per il controllo del carico di sistema e per la gestione del numero di processi attivi

    Stati dei Processi e Scheduling

    • Diagramma dei diversi stati dei processi e quando il medium- term scheduler è attivo

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Related Documents

    Description

    Questo quiz esplora vari algoritmi di sostituzione delle pagine e concetti chiave nella gestione della memoria, come LRU e segmentazione. Metti alla prova le tue conoscenze sui criteri di scelta della pagina da sostituire e il significato del 'working set' nei processi. Ideale per studenti di informatica e ingegneria del software.

    More Like This

    Use Quizgecko on...
    Browser
    Browser