1 Gestione della Memoria Capitolo 4 4.1 Introduzione alla gestione della memoria 4.2 Swapping 4.3 Memoria virtuale 4.4 Implementazione 4.5 Algoritmi di.

Slides:



Advertisements
Presentazioni simili
Memoria Virtuale in Linux
Advertisements

Gestione della Memoria
PROCESS MANAGEMENT: STRUTTURE DATI
1 Introduzione ai calcolatori Parte II Software di base.
Gestione della memoria centrale
Puntatori in C e C++.
Gestione della memoria
TECNICA DELLE PARTIZIONI RILOCABILI
Massa Laura Mela Enrica
Gestione della Memoria
1 Classi di memorizzazione. 2 Definiscono le regole di visibilità delle variabili e delle funzioni quando il programma è diviso su più file Stabiliscono.
Gestione della Memoria
1 System Call per Comunicazione tra Processi Pipe.
Mappare file in memoria
Realizzazione del file system
Memoria virtuale Memoria virtuale – separazione della memoria logica dell’utente dalla memoria fisica. Solo alcune parti di un programma devono trovarsi.
Gestione della memoria
Interfaccia del file system
Anno accademico Le classi di memorizzazione.
Realizzazione del file system
Memoria Virtuale Background Paginazione su richiesta
Gestione della memoria
INTRODUZIONE AI SISTEMI OPERATIVI
Programmazione Procedurale in Linguaggio C++
Laboratorio di Linguaggi lezione VIII Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea.
Introduzione al linguaggio C++ 5 lezioni
Gestione dei dischi RAID
I Thread.
Software di base Il sistema operativo è un insieme di programmi che opera sul livello macchina e offre funzionalità di alto livello Es.organizzazione dei.
Organizzazione della Memoria (Unix) Text contiene le istruzioni in linguaggio macchina del codice eseguibile, può essere condiviso in caso di processi.
Corso di Laurea in Ingegneria Informatica Laboratorio di Sistemi Operativi II anno, III periodo 2 crediti 13 ore di lezione 16 ore di esercitazione.
Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE.
1 File System ed Input/Output UNIX Implementazione del File System Caratteristiche del File System Unix/Linux System Call relative al File System Linput/output.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
Modulo 13: System call relative al File System
Fondamenti di informatica Linguaggio C Main Program: Architettura di un PC Diagrammi di flusso Linguaggio C.
La Gestione della Memoria
Introduzione al C++ Introduzione al linguaggio C++
1 Scheduling in Windows 2000 Un thread entra in modalità kernel e chiama lo scheduler quando: Si blocca su un oggetto di sincronizzazione (semaforo, mutex,
Unità Didattica 3 Linguaggio C
Laboratorio di Linguaggi lezione VII: variabili Globali e Locali Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali.
Passaggio di parametri per indirizzo
Gestione della Memoria
Memoria La memoria è un vettore di stringhe di bit (word/parole) In memoria è allocato il Sistema Operativo. In memoria sono allocati i programmi per poter.
1 Il Buffer Cache Unix (Bach: the Design of the Unix Operating System (cap: 3)
T. MottaGenerazione e terminazione processi1 Creazione e terminazione dei processi Tommaso Motta
1 Gestione della Memoria. 2 Idealmente la memoria dovrebbe essere –grande –veloce –non volatile Gerarchia di memorie –Disco: capiente, lento, non volatile.
1 Il file system di Unix Caratteristiche generali dei FS comunemente usati da Unix/Linux.
1 SC che operano su processi Getpid, fork, exec, wait, waitpid, exit, dup, dup2.
© Copyright NTT DATA Italia – All Rights Reserved The information contained in this document is the property of NTT DATA Italia S.p.A. and the addressee.
Gestione della Memoria. Scenario 1 o più CPU Un certo quantitativo di memoria Una memoria di massa.
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
1 Chiamate di sistema Introduzione Errori : perror() Chiamate che lavorano su file.
1 File System ed Input/Output UNIX Caratteristiche del FS Unix Implementazione Il file system di Linux Organizzazione dell’ I/O.
Gestione della Memoria
1 Gestione della Memoria Capitolo Introduzione alla gestione della memoria 4.2 Swapping 4.3 Memoria virtuale 4.4 Implementazione 4.5 Algoritmi di.
1 Gestione della Memoria Capitolo Introduzione alla gestione della memoria 4.2 Swapping 4.3 Memoria virtuale 4.4 Implementazione 4.5 Algoritmi di.
1 Gestione della Memoria Capitolo Introduzione alla gestione della memoria 4.2 Swapping 4.3 Memoria virtuale 4.4 Implementazione 4.5 Algoritmi di.
Gestione della Memoria
1 Cenni di gestione della memoria Unix-Linux. 2 Organizzazione della Memoria Spazio logico dei processi A e B e memoria fisica Condivisione dell’area.
Sistemi operativi di rete Ing. A. Stile – Ing. L. Marchesano – 1/18.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
1 File system Casi di studio. 2 Esempi di File System Il file system di un CD-ROM Rappresentazione di un elemento di una directory nel file system ISO.
1 System Call che operano su processi Getpid, fork, exec, wait, waitpid, exit, dup, dup2.
1 1. Introduzione alla gestione della memoria 2. Swapping 3. Memoria virtuale 4. Implementazione 5. Algoritmi di sostituzione Gestione della Memoria.
1 System Call ancora Vediamo passo passo come funziona una SC.
La gerarchia di memorie
Corso di Informatica Applicata Introduzione Università degli studi di Cassino Corso di Laurea in Ingegneria della Produzione Industriale Ing. Saverio De.
 Ogni processo che deve essere eseguito da un sistema di elaborazione, deve essere caricato e risiedere almeno parzialmente nella memoria centrale 
Compitino di Sistemi Operativi corsi A -C 19 Maggio 2003.
Transcript della presentazione:

1 Gestione della Memoria Capitolo Introduzione alla gestione della memoria 4.2 Swapping 4.3 Memoria virtuale 4.4 Implementazione 4.5 Algoritmi di sostituzione 4.6 Criteri di progetto per la paginazione 4.7 Case study: Unix 4.8 Case study: Windows 2000

2 Organizzazione della Memoria Spazio logico dei processi A e B e memoria fisica Condivisione dell’area testo Unix supporta spazi separati per istruzioni e dati Process A Process B

3 Condivisione di File Two processes can share a mapped file. Un file mappato simultaneamente in due processi

4 System Call per la Gestione della Memoria s è un codice di errore a e addr sono indirizzi di memoria len è una lunghezza prot controlla la protezione flags bit vari fd è un descrittore di file offset è un offset all’interno di un file

5 Esempio di file mappato in memoria #include int main (void) { int fd; char *mem; int bytes_in_page; bytes_in_page = getpagesize(); /* numero di byte nella pagina */ fd = open(”nomeFile",O_RDWR); mem = mmap (0,bytes_in_page,PROT_READ | PROT_WRITE,MAP_SHARED,fd,0); strcpy(mem,”una stringa"); printf("%s\n", mem); ….. …... return 0; }

6 Paginazione in UNIX The core map in 4BSD. Si usa paginazione su domanda La tabella principale (core map) ha un elemento per ogni pagina fisica

7 Algoritmo di Sostituzione in UNIX (BSD) Eseguito dal page daemon Cerca di mantenere almeno lotsfree pagine libere Usa l’algoritmo Two-handed clock Una variante dell’algoritmo Clock Con allocazione globale Se non è possibile mantenere lotsfree pagine libere si fa lo swapping di qualche processo Si fa lo swap-out di processi idle da più tempo e in alternativa di processi grossi Swap-in se ci sono pagine libere a sufficienza Il processo viene scelto in base a vari parametri

8 Paginazione in Linux (1) Linux usa tabelle delle pagine a tre livelli

9 Paginazione in Linux (2) Operation of the buddy algorithm. Algoritmo Buddy

10 Gestione della Memoria Capitolo Introduzione alla gestione della memoria 4.2 Swapping 4.3 Memoria virtuale 4.4 Implementazione 4.5 Algoritmi di sostituzione 4.6 Criteri di progetto per la paginazione 4.7 Case study: Unix 4.8 Case study: Windows 2000

11 Concetti Fondamentali (1) Layout di spazi di indirizzamento logici per 3 processi Le aree bianche sono private Le aree scure sono condivise

12 Concetti Fondamentali(2) Aree mappate con le rispettive pagine su disco Il file lib.dll è mappato in due spazi di indirizzamento contemporaneamente

13 Concetti Fondamentali(3) Ogni pagina logica può essere : free : se non è assegnata a nessuna regione –un accesso a una pagina free da sempre un page fault committed : se appartiene alle pagine in uso di una regione già mappata –un accesso a una pagina committed risulta in un page fault solo se la pagina corrispondente non si trova in memoria centrale reserved : è una pagina non ancora in uso ma che è stata riservata per espandere una regione –un accesso a una pagina reserved da sempre un page fault –le pagine reserved non possono essere utilizzate per mappare nuove regioni –es: si possono riservare pagine per la crescita dello stack

14 System Calls per la Gestione della Memoria Le principali funzioni delle API Win32 per la gestione della memoria in Windows 2000

15 Implementazione della Gestione della Memoria Una entry della tabella delle pagine sul Pentium

16 Diversi tipi di Page Fault I page fault in Windows sono di 5 diversi tipi : 1. Pagina non committed fatal error 2. Violazione di protezione fatal error 3. Scrittura di una pagina condivisa viene creata una copia locale 4. Lo stack ha bisogno di nuovo spazio alloca una nuova pagina per lo stack 5. Pagina committed ma non in memoria normale gestione del page fault

17 Algoritmo di Sostituzione Basato sull’algoritmo working set Con parametri min e max dimensione del working set Allocazione (fondamentalmente) locale Se la dimensione del working set corrente è x, in caso di page fault: Se x<min una pagina è caricata nel working set Se x>max si elimina una pagina dal working set (ma non dalla memoria) Utilizza il demone balance set manager per mantenere un certo numero di pagine libere viene svegliato una volta al secondo