Memory management 49

Documenti analoghi
Modello della memoria in Unix. Unix: Gestione della Memoria. Gestione della memoria in UNIX - fondamenti. Gestione della memoria in UNIX - storia

Memory management 49

I processi Unix. Entry della tabella dei processi

Memoria Virtuale. è la tecnica chge permette l esecuzione di processi che non sono completamente caricati in memoria principale

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

GESTIONE DELLA MEMORIA CENTRALE

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1

Capitolo Silberschatz

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

Sistemi Operativi. 5 Gestione della memoria

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco

La Gestione delle risorse Renato Agati

Gestione della memoria centrale

Il software. la parte contro cui si può solo imprecare. Funzioni principali del sistema operativo. (continua) Gestione della memoria principale

Gestione della Memoria

Sistemi Operativi Kernel

Memoria Virtuale. Lezione 29 Sistemi Operativi

Sistema operativo: Gestione della memoria

Laboratorio di Informatica

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino

9. Memoria Virtuale. 9. Memoria Virtuale. 9. Memoria Virtuale

Sistemi Operativi 1. Mattia Monga. a.a. 2008/09. Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.

SISTEMI OPERATIVI. Gestione della memoria Domande di verifica. Luca Orrù Centro Multimediale Montiferru 18/06/2007

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica

STRUTTURE DEI SISTEMI DI CALCOLO

Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.

Modello dei processi. Riedizione delle slide della Prof. Di Stefano

Modello della memoria in Unix. Quando si alloca la memoria. Gestione della memoria in UNIX

12. Implementazione di un File System Struttura a livelli Allocazione contigua

Esercitazione E1 Scheduling, deadlock, monitor

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Tesina per l esame di Sistemi Operativi a cura di Giuseppe Montano. Prof. Aldo Franco Dragoni

Memoria virtuale. Riassumendo Meccanismo di traduzione indirizzi con tabella TLB Ogni processo ha la sua PMT Politiche della memoria virtuale E

Il Software. Il software del PC. Il BIOS

La Gestione della Memoria

Il memory manager. Gestione della memoria centrale

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

memoria virtuale protezione

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Sistemi Operativi (modulo di Informatica II) I processi

Processi e Thread. Scheduling (Schedulazione)

Sistemi Operativi Il Sistema Operativo Windows (parte 3)

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

1. Spiegare le differenze fra le seguenti modalità di binding degli indirizzi:

Architettura di un calcolatore

Sistemi Operativi. Scheduling della CPU SCHEDULING DELLA CPU. Concetti di Base Criteri di Scheduling Algoritmi di Scheduling

Sistemi Operativi SCHEDULING DELLA CPU. Sistemi Operativi. D. Talia - UNICAL 5.1

Il Sistema Operativo

AXO. Operativi. Architettura dei Calcolatori e Sistemi. memoria virtuale

La memoria virtuale 9.2. Sistemi Operativi a.a. A.A

File system II. Sistemi Operativi Lez. 20

Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

ESERCIZIO 1 (b) Dove è memorizzato il numero del primo blocco del file? Insieme agli altri attributi del file, nella cartella che contiene il file.

Varie tipologie di memoria

Appunti di Sistemi Operativi. Enzo Mumolo address web address :

= 0, 098 ms. Da cui si ricava t 2 medio

La memoria virtuale. La gerarchia di memorie. Indirizzo fisico. Memoria virtuale. Architetture Avanzate dei Calcolatori. Valeria Cardellini

Scheduling della CPU:

Esercitazione E6 Esercizi d esame

Architettura di un sistema di calcolo

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

Le virtual machine e la memoria virtuale

Il supporto al Sistema Operativo

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale)

Un sistema operativo è un insieme di programmi che consentono ad un utente di

Il sistema di I/O. Hardware di I/O Interfacce di I/O Software di I/O. Introduzione

Sistemi operativi. Esempi di sistemi operativi

Corso di Sistemi di Elaborazione delle informazioni

1.4b: Hardware. (Memoria Centrale)

Architettura del calcolatore

Sistemi Operativi SCHEDULING DELLA CPU

I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo

Unix: Gestione della Memoria

Gestione della memoria in UNIX - storia. Gestione della memoria in UNIX - fondamenti. Unix: Gestione della Memoria. Modello della memoria in Unix

Sistemi Operativi. Organizzazione logica ed implementazione di un File System

Materiali per il modulo 1 ECDL. Autore: M. Lanino

Hardware di un Computer

Tecnologia di un Database Server (centralizzato) Gestione del buffer

SISTEMI OPERATIVI. La memoria virtuale. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)

Architettura hardware

Organizzazione della memoria

Scheduling. Lo scheduler è la parte del SO che si occupa di

La memoria - generalità

Esercitazione E2 Memoria virtuale

Memoria secondaria. Sistemi Operativi mod. B 14.1

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)

Il descrittore di processo (PCB)

HEX Bin HEX Bin HEX Bin HEX Bin C D A 1010 E B 1011 F 1111

SISTEMI OPERATIVI. Realizzazione del file system. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)

Lo scheduling. Tipici schedulatori

Controllo I/O Costituito dai driver dei dispositivi e dai gestori dei segnali d interruzione.

Strutture di Memoria 1

Transcript:

Memory management 49

Gestione della memoria I processi Unix lavorano su uno spazio di indirizzamento virtuale (Es. 0,..., 2 32 1 su indirizzi i i a 32 bit); Ogni processo ha uno spazio indirizzi separato per i segmenti Text, Data e Stack; Le dimensioni di Stack e Data possono cambiare durante l esecuzione; Gli indirizzi di Data crescono a partire dalla parte bassa degli indirizzi virtuali (0..); Gli indirizzi dello Stack crescono a partire dalla parte alta degli indirizzi virtuali (.. 2 32 ); 42

Gestione della memoria Il sistema operativo Unix è pensato per essere indipendente dalla macchina -> Lo schema di gestione della memoria varia tra piattaforme. Prime versioni : partizionamento variabili senza memoria virtuale. Attuali: memoria virtuale paginata (on demand). Due schemi separati per la gestione della memoria: - Paging system: realizza la memoria virtuale, allocando ai processi i frame (pagine fisiche) della memoria principale ed anche i buffer del disco alle pagine di memoria virtuale. - Allocatore di memoria per il Kernel: alloca memoria per i buffer, le primitive di comunicazione, gli streams del Kernel etc. 47

Configurazione della memoria fisica P.S.: se la pagina è di 1K e il descrittore della core map è di 16byte, la core map (1 desc. per pagina) occupa meno del 2% della memoria. 48

Spazio fisico e logico 47

Strutture dati Un processo in memoria (ready-to-run) necessita solo delle seguenti strutture dati: - User-area, o U-area; - Tabelle delle pagine (una per i segmenti Data/Text, una per i segmenti U-Area/Stack). Le pagine di Data, Text e Stack sono portate in memoria dinamicamente via paginazione. i U-area (tutte le pagine) e Tabelle delle Pagine sono portate in memoria dinamicamente via swapping. Ogni volta sono attive: la tabella delle pagine del Kernel (in memoria residente; entries contigue; mappa Data e Stack del Kernel; le pagine del Kernel in memoria non residente sono marcate non-swappabili) e quelle del processo in esecuzione (mappate in entries non necessariamente contigue della tabella del Kernel;le pagine del processo sono quasi sempre marcate come swappabili). 43

Strutture Dati (in BSD 4.4) FIG 1: Kernel address space maps FIG 2: Generic user process address space maps 43

machine-independent virtual address space structures that describe the use of a range of addresses kernel text, initialized data, uninitialized data, and initially allocated data structures reside in the range Information machine dependent/independent Describe process address space malloc arena To avoid intermixing of unrelated allocations within an address range kernel I/O staging area network buffer arena

Executable file Text area Initialized data of the program that follows the program text in the file uninitialized data stack areas

Paginazione e Swapping La memoria principale viene gestita da due demoni: - Swapper (processo 0) che si occupa di rimuovere processi dalla memoria/riportarli in memoria da disco; User-area e Tabelle delle pagine sono portate dinamicamente in memoria/disco dal processo Swapper. - Pagedaemon o Demone di Pagina (processo 2) che si occupa del rimpiazzamento delle pagine; Le pagine di Text, Data e Stack sono portate dinamicamente in memoria/disco, una alla volta quando servono (cioè a seguito di un page fault) /quando vengono rimpiazzate dal processo Pagedaemon. 50

Swapper PageDaemon

Paginazione e Swapping I due demoni lavorano sulla base di alcuni parametri di sistema: - Lotsfree: indica il numero minimo di frame per evitare l intervento del Pagedaemon; - Minfree: indica il numero minimo di frame per evitare l intervento dello Swapper; - Desfree: numero di frame liberi desiderabile per un buon funzionamento del sistema; La relazione tra i parametri è: Minfree < Desfree < Lotsfree. 51

Paginazione e Swapping Un processo può richiedere memoria nei seguenti casi: 1. Al momento della creazione tramite fork (allocazione di memoria per i segmenti Data e Stack); 2. Chiamata della funzione di sistema malloc (estende il segmento Data); 3. Lo stack cresce oltre le dimensioni prefissate del segmento Stack; 4. Si accede in scrittura ad una pagina condivisa tra due processi e gestita il metodo copy-on-write ; 5. Può essere necessario caricare memoria ad un processo che era swapped da troppo tempo. 46

Strutture dati del kernel (Paging System) Page Table: due per ogni processo (una per i segmenti Data/Text, una per i segmenti U-Area/Stack). Una entry descrive una pagina virtuale. Disk Block Descriptor: ad ogni pagina del processo con bit di validità 0 è associata una entry di questa tabella. Una entry descrive la copia su disco della pagina virtuale. Core map (Frame Data Table): una entry descrive e un frame della memoria fisica. La tabella ha come indici i numeri di frame. Swap-use Table: una per ogni dispositivo su cui si trasferiscono i processi. Una entry descrive una pagina swappata sul ldispositivo ii associato alla tabella. 47

Numero del page frame Age Copy on Write Modify Reference Valid Protection Bit (a) Entry della tabella delle pagine N dispositivo di swap Numero di blocco del dispositivo Tipo di memorizzazione (b) Descrittore del blocco disco Stato della pgina Contatore ai riferimenti Dispositivo logico Numero di blocco Puntatore pfdata (c) Entry della tavola dei dati del frame Contatore di riferimenti Numero di unità disco/pagina (d) Entry della Swap-use table

Entry della Page Table Numero di page frame Si riferisce ai frame della memoria reale. Age Indica per quanto tempo la pagina è rimasta in memoria senza che il processo facesse riferimento ad essa. La lunghezza e I contenuti di questo campo dipendono dal processore. Copy on write E porto a 1 quando più di un processo condivide una pagina. Se uno dei processi scrive nella pagina, deve essere fatta una copia della pagina per tutti gli altri processi che la condividono. Questo consente di rimandare l operazione di copiatura finchè è necessaria ed evitarla quando non è necessaria. Modify Indica se la pagina è stata modificata. Reference indica se ci sono stati riferimenti alla pagina. Questo bit è posto 0 quando la pagina è caricata per la prima volta in memoria e può essere periodicamente reimpostato a 0 dall algoritmo di page replacement. Valid Indica la presenza della pagina nella memoria principale. Protect Indica se l operazione di scrittura è consentita.

Descrittore del blocco disco Numero del dispositivo di Swap Numero di dispositivo logico del dispositivo di memoria secondaria che contiene la pagina corrispondente. Questo consente di utilizzare più di un dispositivo per memorizzare pagine trasferite su disco. Numero del blocco del dispositivo Locazione del blocco che contiene la pagina sul dispositivo. Tipo di memorizzazione La memorizzazione può essere un unità di swap o un file eseguibile. Nell ultimo caso c è indicazione sulla necessità di pulire la memoria virtuale prima di allocarla.

Entry della Frame Data Table Stato della pagina Indica se questo frame è disponibile in memoria oppure ha una pagina ad esso associata. In quest ultimo caso lo stato della pagina è specificato: sul device di swap, nel file eseguibile o DMA in corso Contatore si riferimenti Numero dei processi che fanno riferimento alla pagina. Dispositivo logico Disposirivo logico che contiene una copia della pagina. Numero di blocco Locazione del blocco che contiene la copia della pagina sul dispositivo. Puntatore Pfdata Puntatore agli altri entry della pfdata table su una lista di pagine libere o su una coda hash di pagine.

Entry della Swap-user Table Contatore ai riferimenti Numero delle entry della page table che puntano ad una pagina nel dispositivo di swap. Numero di unità disco/pagina Identificatore di pagina sull unità di memoria.

Visione dinamica Quando un processo viene lanciato, molte pagine vengono precaricate e poste sulla free list (prepaging); Quando un processo termina, le sue pagine vengono rimesse sulla free list; Il sistema usa allocazione libera (quindi anche in celle non consecutive) per gestire la richiesta di pagine da parte di un processo; Se la free list scende sotto una certa soglia (parametro del kernel), il kernel si rifiuta di allocare nuove pagine di memoria; La free list viene anche utilizzata come memoria cache: le pagine richieste da un processo che risultano invalide vengono cercate sulla free list, prima di essere caricate da disco; Quando un processo termina, le sue pagine vengono messe sulla free list. 49

Algoritmo di Paginazione (1) Le pagine vengono allocate dalla lista libera con strategia copy-on-write ; La free list viene mantenuta piena entro un certo livello; Il demone delle pagine viene lanciato al tempo di boot e si attiva ad intervalli regolari (tipicamente i t 2 4 volte al secondo) o su richiesta del kernel; Quando viene risvegliato: Sia NFL il numero di frame liberi, - Se NFL lotsfree, torna inattivo; -Se NFL < lotsfree, inizia a scorrere le pagine cercando di spostare pagine su disco fino a che non ci sono lotsfree pagine libere; - La velocità di scansione cresce al diminuire di NFL; Il demone utilizza una politica di rimpiazzamento globale; 56

Algoritmo di Paginazione (2) Algoritmo di sostituzione delle pagine: variante dell algoritmo dell orologio (con due lancette invece che una). L algoritmo usa due puntatori (lancette) per scorrere la lista delle pagine allocate nella core map. While (NFL < lotsfree) - la prima lancetta azzera il reference bit R della pagina a cui punta; - la seconda sceglie la pagina vittima: if R = 0 (cio`e la pagina non è stata usata nel periodo trascorso tra il passaggio delle due lancette), questa è la pagina vittima if M=1, il frame viene salvato su disco; il frame viene aggiunto alla free-list; - Si fanno avanzare i due puntatori; 57

Algoritmo di Paginazione (3) La distanza tra i puntatori t (handspread) d) viene decisa al boot, per liberare frame abbastanza rapidamente: - Se le lancette sono vicine: solo le pagine realmente usate rimarranno in memoria; - Se le lancette sono distanti 359 = algoritmo dell orologio (la seconda passa dopo un giro); Possibile variante: - ulteriore parametro maxfree > lotsfree: quando il livello di pagine scende sotto lotsfree, il pagedaemon libera pagine fino a maxfree. (Permette di evitare una potenziale instabilità del CLOCK a due lancette). 58

Swapping (1) Lo Swapper (o schedulatore di medio termine), lanciato anch esso al tempo di boot), decide quale processo deve essere swappato su disco/riportato in memoria; Lo Swapper si sveglia ogni 1 2 secondi, e interviene solo se il sistema di paginazione è sovraccarico: - il numero di frame liberi è sotto la soglia minima ammissibile minfree; - il numero medio di frame liberi nell unità di tempo è minore di desfree. 59

Swapping (2) Regole di scelta del processo uscente Si cerca tra i processi in Asleep, senza considerare quelli in memoria da meno di 2 secondi; Se ce ne sono, si prende quello con il valore priorità+tempo di residenza in memoria più alto (nota: tempo CPU= tempo in memoria); Altrimenti, si cerca tra quelli in Ready, con lo stesso criterio; Per il processo selezionato: - i suoi segmenti Data e Stack (non il Text) vengono scaricati sul device di swap ed i frame vengono aggiunti alla free list; - nel PCB, viene messo lo stato Swapped e agganciato alla lista dei processi swappati; Si ripete fino a che sufficiente memoria viene liberata. 60

Swapping (3) Regole di scelta del processo entrante cerca nella lista dei PCB dei processi swappati e ready, il processo swappato da più tempo, ma almeno 2 secondi (per evitare thrashing); se lo trova, determina se c è cè sufficiente memoria libera per la page table e la u-area (easy swap) oppure no (hard swap); se è un hard swap, libera memoria swappando qualche altro processo; carica le page table e la u-area in memoria e mette il processo in Ready-to-run in memory; Si ripete finché non ci sono processi da caricare. 61

Considerazioni Interazione tra scheduling a breve termine, a medio termine e paginazione: minore è la priorità, maggiore è la probabilità che il processo venga swappato; per ogni processo in esecuzione, la paginazione tende a mantenere in memoria il suo working set; quindi, processi che non sono idle tendono a stare in memoria, mentre si tende a swappare solo processi idle da molto tempo; nel complesso, il sistema massimizza l utilizzo della memoria e la multipro- grammazione, limitando il thrashing e garantendo l assenza di starvation per i processi swappati. 62