Memoria Virtuale in Linux

Slides:



Advertisements
Presentazioni simili
Gestione della Memoria
Advertisements

1 Introduzione ai calcolatori Parte II Software di base.
Gestione della memoria centrale
Digital FX!32 Conte Davide Crivello Emanuele Ferrando Elisa.
Gestione della memoria
Organizzazione della memoria
TECNICA DELLE PARTIZIONI RILOCABILI
Gestione dei laboratori Come rendere sicura la navigazione internet e l'uso della rete Lorenzo Nazario.
Introduzione ai sistemi di basi di dati
Il Sistema Operativo.
File System Cos’è un File System File e Directory
Elaboratore e Sistemi Operativo
Massa Laura Mela Enrica
Gestione della Memoria
Gestione del processore
File system Casi di studio (3).
12. Il Sistema Operativo Ing. Simona Colucci
Comandi ai dispositivi di I/O + Si usano due metodi per mandare informazioni a un dispositivo: –Istruzioni specifiche di I/O –I/O mappato in memoria (memory.
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
Realizzazione del file system
Gestione della memoria
INTRODUZIONE AI SISTEMI OPERATIVI
File.
Struttura dei sistemi operativi (panoramica)
Gestione della memoria principale
Sistema Operativo Architettura degli elaboratori 1 - A. Memo La gestione dei processi stallo 9 soluzione corretta si utilizzano un semaforo per.
Sistemi Operativi Distribuiti: indice
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.
Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE.
Strutture dei sistemi di calcolo Funzionamento di un sistema di calcolo Struttura di I/O Struttura della memoria Gerarchia delle memorie Architetture di.
1 LINUX: struttura generale The layers of a UNIX system. User Interface.
Il sistema operativo Vito Perrone
SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (alla lettera, ferramenta). La struttura.
Gestione della memoria logica e fisica degli elaboratori x86
Prof. Marco Mezzalama –All rights reserved Esempio Si consideri listruzione in modo protetto: MOV AX, (EBX) Si supponga che DS = 200 e EBX = 155 Lindirizzo.
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
Architettura degli elaboratori
La Gestione della Memoria
Il Sistema Operativo: il File System
GESTIONE INTERRUPT CPU INTEL 8086
Threads.
Architettura Centralizzata di un DBMS Relazionale
Gestione della Memoria
Sistema Operativo (Software di base)
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.
Formattazione, Partizioni e dischi
I processi.
SISITEMI MONOPROGRAMMATI E MULTI PROGRAMMATI
Vettori, indirizzi e puntatori Finora abbiamo usato gli indirizzi nel chiamare  la funzione scanf()  le altre funzioni per riferimento Tuttavia la vera.
1 Gestione della Memoria. 2 Idealmente la memoria dovrebbe essere –grande –veloce –non volatile Gerarchia di memorie –Disco: capiente, lento, non volatile.
INTERFACCE Schede elettroniche che permettono al calcolatore di comunicare con le periferiche, che possono essere progettate e costruite in modo molto.
Gestione dei dispositivi di I/O:
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.
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.
PiattaformePiattaformePiattaformePiattaforme Antonio Cisternino 28 Gennaio 2005 OpenSourceOpenSourceOpenSourceOpenSource e ProprietarieProprietarieProprietarieProprietarie.
1 Processi e Thread Processi Thread Meccanismi di comunicazione fra processi (IPC) Problemi classici di IPC Scheduling Processi e thread in Unix Processi.
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
 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:

Memoria Virtuale in Linux

Architetture x86 Su architetture x86 si utilizza segmentazione con paginazione per proteggere la memoria (modalita' user/kernel) segmento per processi kernel (suddiviso in dati e codice) nella parte alta della memoria segmento per processi user (suddiviso in dati e codice) nella parte bassa della memoria segmenti di servizio del sistema

Descrittori dei segmenti in x86 I descrittori dei segmenti sono mantenuti nella Global Descriptor Table (GDT) gestita dall'architettura x86 I descrittori specificano privilegi per l'accesso ai corrispondenti dati (3=user, 0=kernel) Si potrebbero usare i descrittori della GDT per gestire direttamente i segmenti dei processi (le entry della GDT possono puntare a tabelle locali chiamate LDT) Tuttavia in Linux la segmentazione dei singoli processi viene gestita via software

Chiamate di sistema Le interrupt e le chiamate di sistema vengono gestite attraverso la IDT (Interrupt Description Table) che contiene un “gate” per ogni possibile tipo di interrupt Le chiamate di sistema (trap) vengono gestite con un unico “gate” associato all'entry 80 Il tipo di chiamata viene memorizzato in un registro Il gate 80 contiene le informazioni sul segmento e sull'offset associato al codice della system call (segmento kernel)

Segmentazione in Linux La suddivisione logica dei dati di un processo (dati, stack, codice) viene gestita da Linux via software con una struttura dati chiamata vm_area_struct Inoltre i segmenti vengono paginati

Paginazione virtuale La paginazione e' virtualizzata in modo da poter essere mappata su diverse architetture La paginazione “virtuale” e' a 3 livelli anche se alcune architetture non li sfruttano completamente (2 livelli in x86) Ogni piattaforma fornisce macro di traduzione degli indirizzi di pagina in modo da rendere il kernel indipendente dall'architettura sottostante

Tabella delle pagine Ogni processo ha una tabella delle pagine (a sua volta paginata) La page directory di primo livello contiene sia indirizzi di pagine user (parte bassa della memoria) che kernel (parte alta della memoria) In uno schema a due livelli Le directory interne dello spazio kernel sono comuni a tutti I processi Le directory interne dello spazio user sono private

Core map Il kernel mantiene una “core map” (mem_map) per tenere traccia delle pagine libere in memoria Ogni entry nella mem_map mantiene informazioni su una singola pagina fisica (frame) Numero di riferimenti alla pagina (>1 condivisa) Eta' della pagina (per rimpiazzamento/swap) Inoltre si mantiene un'insieme di mappe di bit che corrisponde a insiemi di pagine libere (raggruppate in base al numero di pagine: 2, 4, ...)

Memoria virtuale di un processo La memoria virtuale viene organizzata via software Ad ogni processo viene assegnata una task_struct che punta ad una mm_struct che descrive il suo spazio di indirizzi virtuali La mm_struct punta ad una lista di vm_area_struct

vm_area_struct Ogni vm_area_struct punta ad un area (es. codice e dati) di memoria associata al processo Le strutture vm_area_struct sono inoltre organizzate ad albero binario bilanciato (AVL) per rendere piu veloce la risoluzione degli indirizzi virtuali Una volta individuata la vm_area_struct che contiene l'indirizzo virtuale si utilizza la tabella delle pagine per accedere all'indirizzo fisico

Riassunto In Linux la gestione della memoria virtuale e' a sua volta “virtualizzata” sia a livello di segmenti che di paginazione Questo rende portabile il codice Inoltre si ottiene maggior flessibilita' per gestire la rilocazione (es. ricerca su AVL)