Podcast
Questions and Answers
Quale dei seguenti algoritmi di sostituzione non è implementabile nella pratica?
Quale dei seguenti algoritmi di sostituzione non è implementabile nella pratica?
Con quale criterio viene scelta la pagina da sostituire nell'algoritmo LRU?
Con quale criterio viene scelta la pagina da sostituire nell'algoritmo LRU?
Qual è il risultato della sostituzione ottimale nell'esempio fornito con 3 frame?
Qual è il risultato della sostituzione ottimale nell'esempio fornito con 3 frame?
Cosa rappresenta il termine 'working set' in relazione ai processi?
Cosa rappresenta il termine 'working set' in relazione ai processi?
Signup and view all the answers
Quale strategia non si basa sul principio di località nella sostituzione delle pagine?
Quale strategia non si basa sul principio di località nella sostituzione delle pagine?
Signup and view all the answers
Qual è la dimensione della pagina utilizzata da Linux sugli x86?
Qual è la dimensione della pagina utilizzata da Linux sugli x86?
Signup and view all the answers
Quale funzione svolge la segmentazione nella gestione della memoria?
Quale funzione svolge la segmentazione nella gestione della memoria?
Signup and view all the answers
Cosa contiene ogni entry della tabella dei segmenti?
Cosa contiene ogni entry della tabella dei segmenti?
Signup and view all the answers
Qual è un vantaggio naturale della segmentazione?
Qual è un vantaggio naturale della segmentazione?
Signup and view all the answers
Quale affermazione è vera riguardo la paginazione?
Quale affermazione è vera riguardo la paginazione?
Signup and view all the answers
Cosa caratterizza la dimensione dei segmenti nella segmentazione?
Cosa caratterizza la dimensione dei segmenti nella segmentazione?
Signup and view all the answers
Che cosa permette la segmentazione riguardo la modifica dei programmi?
Che cosa permette la segmentazione riguardo la modifica dei programmi?
Signup and view all the answers
Qual è una delle decisioni principali nella gestione della memoria?
Qual è una delle decisioni principali nella gestione della memoria?
Signup and view all the answers
Qual è il significato dell'acronimo TLB?
Qual è il significato dell'acronimo TLB?
Signup and view all the answers
Cosa accade in caso di TLB hit?
Cosa accade in caso di TLB hit?
Signup and view all the answers
Qual è una delle conseguenze di un TLB miss?
Qual è una delle conseguenze di un TLB miss?
Signup and view all the answers
Quale algoritmo è solitamente usato per il rimpiazzamento delle entry nel TLB?
Quale algoritmo è solitamente usato per il rimpiazzamento delle entry nel TLB?
Signup and view all the answers
Qual è l'effetto di un reset del TLB sul sistema operativo?
Qual è l'effetto di un reset del TLB sul sistema operativo?
Signup and view all the answers
Cosa si necessita per paginare la tabella delle pagine?
Cosa si necessita per paginare la tabella delle pagine?
Signup and view all the answers
Quanti processi occorrono per occupare più della metà della RAM, considerando solo le strutture di overhead?
Quanti processi occorrono per occupare più della metà della RAM, considerando solo le strutture di overhead?
Signup and view all the answers
Qual è uno dei principali vantaggi del TLB nella gestione della memoria virtuale?
Qual è uno dei principali vantaggi del TLB nella gestione della memoria virtuale?
Signup and view all the answers
Quale sistema utilizza il kernel per gestire le richieste di memoria grandi fino a 4MB?
Quale sistema utilizza il kernel per gestire le richieste di memoria grandi fino a 4MB?
Signup and view all the answers
Quale affermazione riguardo alla gestione della memoria utente è corretta?
Quale affermazione riguardo alla gestione della memoria utente è corretta?
Signup and view all the answers
Qual è la funzione principale del thread kernel kswapd?
Qual è la funzione principale del thread kernel kswapd?
Signup and view all the answers
Quando il kernel utilizza il slab allocator?
Quando il kernel utilizza il slab allocator?
Signup and view all the answers
Cosa rappresentano i flag PG referenced e PG active nelle tabelle delle pagine?
Cosa rappresentano i flag PG referenced e PG active nelle tabelle delle pagine?
Signup and view all the answers
Qual è l'algoritmo utilizzato dal kernel più recente per la politica di sostituzione?
Qual è l'algoritmo utilizzato dal kernel più recente per la politica di sostituzione?
Signup and view all the answers
Qual è la politica di pulitura utilizzata dal sistema operativo?
Qual è la politica di pulitura utilizzata dal sistema operativo?
Signup and view all the answers
Qual è la caratteristica chiave della gestione della memoria del DMA?
Qual è la caratteristica chiave della gestione della memoria del DMA?
Signup and view all the answers
Qual è la differenza principale tra memoria virtuale e memoria reale?
Qual è la differenza principale tra memoria virtuale e memoria reale?
Signup and view all the answers
Cosa accade durante un page fault?
Cosa accade durante un page fault?
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?
Quale termine descrive il processo in cui il SO passa la maggior parte del tempo a scambiare pezzi di processi invece di eseguire istruzioni?
Signup and view all the answers
Come avviene l'indirizzamento nella memoria virtuale?
Come avviene l'indirizzamento nella memoria virtuale?
Signup and view all the answers
Quale affermazione è vera riguardo alla dimensione della memoria virtuale?
Quale affermazione è vera riguardo alla dimensione della memoria virtuale?
Signup and view all the answers
Qual è uno dei principali vantaggi della memoria virtuale?
Qual è uno dei principali vantaggi della memoria virtuale?
Signup and view all the answers
Qual è la funzione principale dello swapping nel contesto della memoria virtuale?
Qual è la funzione principale dello swapping nel contesto della memoria virtuale?
Signup and view all the answers
Cosa rappresenta l'indirizzo virtuale in un sistema di memoria virtuale?
Cosa rappresenta l'indirizzo virtuale in un sistema di memoria virtuale?
Signup and view all the answers
Quale affermazione descrive meglio la demand paging?
Quale affermazione descrive meglio la demand paging?
Signup and view all the answers
Qual è il ruolo della placement policy nella gestione della memoria?
Qual è il ruolo della placement policy nella gestione della memoria?
Signup and view all the answers
Quale strategia minimizza i page faults durante l'esecuzione di un processo?
Quale strategia minimizza i page faults durante l'esecuzione di un processo?
Signup and view all the answers
Cosa implica la replacement policy nella gestione della memoria?
Cosa implica la replacement policy nella gestione della memoria?
Signup and view all the answers
Quale delle seguenti affermazioni sull'allocazione dei frame è corretta?
Quale delle seguenti affermazioni sull'allocazione dei frame è corretta?
Signup and view all the answers
Cos'è la politica di pulitura nella gestione della memoria?
Cos'è la politica di pulitura nella gestione della memoria?
Signup and view all the answers
In quale situazione si avrà un numero elevato di page fault?
In quale situazione si avrà un numero elevato di page fault?
Signup and view all the answers
Qual è l'obiettivo primario della gestione del resident set?
Qual è l'obiettivo primario della gestione del resident set?
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.
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.