memoria virtuale protezione

Documenti analoghi
memoria virtuale protezione

Uniamo VM e CACHE. Physically addressed. Physically Addressed. Prestazioni. Ci sono varie alternative architetturali. Sono quelle piu semplici

Gerarchie di memoria. Gerarchie di memoria. Costi e capacità delle memorie. Gerarchie di memoria

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

Desiderata: memoria capiente e veloce. Connessioni tra livelli di memoria. Tecniche impiegate. Memoria cache, struttura. Metodo:

MEMORIA GERARCHIE DI MEMORIA

Lezione 19 Memoria Virtuale

Calcolatori Elettronici

Le virtual machine e la memoria virtuale

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

Gerachie di Memorie. Matteo Dominoni a.a. 2002/2003. Gerarchie di Memoria A.A. 2002/2003 1

Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.

Le virtual machine e la memoria virtuale

Gerarchia di memorie

Desiderata: memoria capiente e veloce. Connessioni tra livelli di memoria. Memoria cache, struttura. Tecniche impiegate. Ad ogni accesso alla memoria

Strutture di Memoria 1

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

GESTIONE DELLA MEMORIA CENTRALE

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

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

Memoria Cache. La memoria cache

Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.

Gerarchie di Memoria

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

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

Sistemi Operativi Gestione della Memoria (parte 2)

Capitolo 9: Memoria centrale

Architettura hardware

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

Esercizio: memoria virtuale

Ispirata al modello della Macchina di Von Neumann (Princeton, Institute for Advanced Study, anni 40).

Memoria Virtuale. Lezione Sistemi Operativi

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Gestione della memoria centrale

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

Il contesto! Gestione della Memoria! Reg. di Base e reg. Limite! Associazione tra dati/istruzioni e memoria!

La memoria. I sistemi di memoria di un elaboratore possono essere suddivisi in: Memoria interna al processore Memoria principale Memoria secondaria

Gerarchie di memoria Divide et impera. Gerarchie di memoria La congettura 90/10. Gerarchie di memoria Schema concettuale

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

ARCHITETTURA DEL CALCOLATORE

Architettura di un sistema di calcolo

Le memorie. Università degli Studi di Salerno

Capitolo 11 La memoria cache

Calcolatori Elettronici A a.a. 2008/2009

Fondamenti di informatica: un po di storia

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

Gestione della Memoria Principale

C. P. U. MEMORIA CENTRALE

Sistemi Operativi. 5 Gestione della memoria

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

Memoria Virtuale. Lezione 29 Sistemi Operativi

Gerarchie di Memoria Andrea Gasparetto

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore

SISTEMI OPERATIVI. Nucleo di un SO. Il Nucleo. Il nucleo di un SO Gestione delle interruzioni Sincronizzazione tra processi Dispatcher. 06.

Architetture Avanzate dei Calcolatori. Valeria Cardellini. Divario delle prestazioni processore- memoria

Il calcolatore elettronico. Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi

Calcolatori Elettronici. Gerarchia di memorie

STRUTTURE DEI SISTEMI DI CALCOLO

Parte IV Architettura della CPU Central Processing Unit

SCHEDULING DEI PROCESSI

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

Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU

Calcolatori Elettronici B a.a. 2004/2005

Corso di Calcolatori Elettronici I A.A Il processore Lezione 18

La Gestione della Memoria

Memorie Caratteristiche principali

I componenti di un Sistema di elaborazione. CPU (central process unit)

Gestione della memoria principale

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

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

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

ISTVAS Ancona Introduzione ai sistemi operativi Tecnologie Informatiche

Calcolatori Elettronici B a.a. 2008/2009

Il Sistema Operativo Introduzione Gestione dei processi Gestione della memoria Memoria cache (cenni) Informatica B Prof. A.

Quinto Homework. Indicare il tempo necessario all'esecuzione del programma in caso di avvio e ritiro fuori ordine.

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica

ECDL CORE 5.0. Modulo 1 Concetti di base dell ICT 1.1 Hardware. Docente: Stefania De Martino Liceo G. Leopardi Recanati a.s.

Memoria. Sistemi Operativi Giuseppe Prencipe. Tipica Gerarchia di Memoria. Gestione della Memoria. Modelli di gestione della memoria

PXA255: concetti avanzati

Organizzazione della memoria

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

Memoria secondaria. Architettura dell elaboratore. Memoria secondaria. Memoria secondaria. Memoria secondaria

Il sistema di elaborazione

Sistemi Operativi II Corso di Laurea in Ingegneria Informatica Facolta di Ingegneria, Universita La Sapienza Docente: Francesco Quaglia

Le gerarchie di memoria: memoria cache

Esercitazione E2 Memoria virtuale

Architettura dei computer

Corso: Informatica+ Andrea Cremonini. Lezione del 20/10/2014

Corso di Sistemi di Elaborazione delle informazioni

Cache e gerarchia di memoria

Architettura di un computer

Varie tipologie di memoria

Laboratorio di Informatica

Architettura dei calcolatori II parte Memorie

Laboratorio software. A.A C. Brandolese

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

CALCOLATORI ELETTRONICI

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

Struttura del calcolatore

Lezione 5 Architettura degli elaboratori. Mauro Piccolo piccolo@di.unito.it

Transcript:

Memoria Virtuale Le memorie cache forniscono un accesso veloce ai blocchi di memoria usati più di recente La memoria virtuale fornisce un accesso veloce ai dati sulle memorie di massa usati più di recente. Storicamente, la memoria virtuale serviva a consentire una condivisione efficiente e sicura della memoria principale per più programmi, trasparente al programmatore (protezione)

0 2 32 Processo in background Sistema Operativo 0 Spazio degli indirizzi virtuali 2 32 Processo in esecuzione Sistema Operativo 0 Spazio degli indirizzi fisici 2 32 RAM Frame Buffer Devices ROM

Terminologia Un blocco di memoria virtuale si chiama pagina Una cache miss si chiama page fault

Traduzione dell indirizzo

Differenze progettuali Un page fault ha una penalità di milioni di cicli di clock Le pagine devono essere sufficientemente grandi Ammortizzare il lungo tempo di accesso Tipicamente da 4 KB a 16 KB Tecniche full associative da preferire Minore frequenza di page fault Il rimpiazzamento delle pagine è gestito via software Tempo di accesso al disco dominante Permette l uso di algoritmi più intelligenti Write-through improponibile, bisogna usare il write-back

Tabella delle pagine La ricerca esaustiva per schemi completamente associativi è impraticabile Ogni processo ha un catalogo in memoria principale che indicizza la propria memoria fisica tramite il numero di pagina virtuale: viene chiamato tabella delle pagine (page table) La tabella delle pagine di un processo è memorizzata a un certo indirizzo fisico, determinato da un registro speciale del processore, il page table register (PTR) Ogni pagina virtuale può corrispondere a qualsiasi pagina fisica

Tabella delle pagine

Page fault Quando si verifica un page fault, si genera un eccezione. 1. Il SO prende il controllo del processore 2. Identifica la pagina mancante dalla memoria 3. Cerca da qualche parte la pagina mancante 4. Carica in memoria principale la pagina mancante, eventualmente rimpiazzando una pagina esistente. Dove stanno le pagine mancanti? Quando un processo viene caricato in memoria, il SO riserva su disco spazio sufficiente a memorizzare tutte le pagine di un processo (spazio di swap). Il SO memorizza l indice delle pagine nello spazio di swap (page table o struttura dati analoga)

Spazio di swap

Dettagli Spesso, oltre al valid bit, sono aggiunti altri bit associati alla pagine dirty bit serve a sapere se una pagina è stata modificata. grazie a questo bit è possibile sapere se la pagina deve essere ricopiata sul livello di memoria inferiore (disco). il bit è necessario in quanto usiamo una politica write-back reference bit serve a sapere se, in un certo lasso di tempo, una certa pagina è stata riferita. bit azzerato periodicamente, settato ogni volta che una pagina è riferita. il reference bit è usato per implementare una politica di rimpiazzo delle pagine di tipo LRU (Least Recently Used)

Problemi Architettura a 32 bit, con pagine di 4KB 12 bit per offset di pagina 20 bit per identificatore di pagina PTR Identificatore Virtual Address Offset Tabella delle pagine Riga Pagina fisica Indirizzo fisico La tabella delle pagine è salvata in memoria 1 048 576 pagine diverse Se una riga della tabella delle pagine è 4 byte, la tabella delle pagine occupa 4 MB Ogni processo ha la sua tabella delle pagine 256 processi occupano 1 GB di memoria solo per le tabelle delle pagine

Cache di traduzione Un accesso in memoria del programma costa come minimo doppio : un accesso alla tabella delle pagine in memoria un accesso alla memoria fisica Località spaziale e temporale degli indirizzi La traduzione degli indirizzi viene solitamente fatta in hardware, da un componente denominato MMU (Memory Management Unit), tramite l uso di una piccola memoria cache chiamata TLB (Translation Lookaside Buffer) dsd

Esempio di TLB

TLB + Cache (FastMATH) TLB completamente associativo Pagine da 4 KB Cache diretta, acceduta con l indirizzo fisico Dimensione del blocco della cache: 2 6 = 64 bytes

FastMATH Read-Write

Modalità di esecuzione Un processo in user mode: Non può modificare il PTR Non può modificare le entry della TLB Non può settare direttamente il bit che fissa la modalità di esecuzione Un processo in kernel mode: Può fare tutto, come se fosse parte del SO Esistono istruzioni speciali, eseguibili SOLO in kernel mode, per effettuare le operazioni di cui sopra Passaggio user kernel tramite chiamate di sistema (syscall) Salva il PC corrente in EPC (Exception Program Counter) L istruzione ERET ripristina la modalità di esecuzione user e copia EPC in PC Le routine corrispondenti alle varie syscall sono prefissate, e fanno parte del SO (l utente non può crearsi da solo una sua syscall e invocarla)

Meccanismi di protezione I processi utente non possono modificare la propria tabella delle pagine Il sistema operativo deve poter modificare la tabella delle pagine Due processi possono condividere informazioni tramite l intermediazione del sistema operativo

Tipologia di miss Nelle varie gerarchie di memoria, i miss si possono verificare per cause diverse Modello delle tre C per classificare i miss Ci riferiremo al livello cache, anche se il modello si applica anche agli altri livelli della gerarchia di memoria Tipi di miss Miss Certi (Compulsory) miss di partenza a freddo, che si verifica quando il blocco deve essere portato nella cache per la prima volta Miss per Capacità la cache non è in grado di contenere tutti i blocchi necessari all esecuzione del programma Miss per Conflitti due blocchi sono in conflitto per una certa posizione può verificarsi anche se la cache NON è piena questo tipo di miss non si verifica se abbiamo una cache completamente associativa

Memoria virtuale e miss Per quanto riguarda la memoria virtuale, il SO viene invocato per gestire due tipi di eccezioni TLB miss (anche se la TLB miss può essere gestita in hardware) Page fault prima della fine del ciclo di clock in cui si accede alla memoria In risposta ad un eccezione/interruzione il processore salta alla routine di gestione del SO effettua anche un passaggio di modalità di esecuzione user mode kernel mode

Miss

TLB Miss + Page Table Hit la pagina è presente in memoria l eccezione può essere risolta tramite la page table l istruzione che ha provocato l eccezione deve essere rieseguita

TLB Miss + Page Table Miss la pagina non è presente in memoria, cioè l ingresso corrispondente della Tabella delle Pagine è NOT VALID La pagina deve essere portata in memoria dal disco operazione di I/O dell ordine di ms è impensabile che la CPU rimanga in stallo, attendendo che il page fault venga risolto Context switch salvataggio dello stato (contesto) del programma (processo) in esecuzione Completamento page fault processo bloccato diventa pronto, ed eventualmente riprende l esecuzione

Context Switch Salvataggio dello stato (contesto) del programma (processo) in esecuzione Fanno ad esempio parte dello stato i registri generali, e quelli speciali come il registro della Tabella delle Pagine Il processo che ha provocato l eccezione diventa bloccato Si ripristina lo stato di un altro processo pronto per essere eseguito Si riavvia il nuovo processo Durante uno switch le eccezioni sono disabilitate

TLB di Cortex-A8 ARM e Core i7 Intel

Cache di Cortex-A8 ARM e Core i7 Intel