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

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

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

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

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

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

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

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

Gestione della memoria

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

Modulo 7: Gestione della Memoria

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

memoria virtuale protezione

Corso di Informatica

Gestione Memoria. Gestione della memoria

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

Capitolo 8 - Silberschatz

Gestione della memoria centrale. Marco Cesati. Schema della lezione. Memoria centrale. Linux su Intel IA-32 SO Gestione della memoria centrale

Lezione 7. Sistemi operativi. Marco Cesati System Programming Research Group Università degli Studi di Roma Tor Vergata.

Architettura degli Elaboratori 19 Memoria Virtuale. Prof. Andrea Sterbini

Sistemi Operativi 1. Mattia Monga. 3 giugno Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia

Gestione della memoria centrale. Capitolo 8 - Silberschatz

GESTIONE DELLA MEMORIA CENTRALE 6.1 D. - UNICAL

Esercitazione su Gerarchie di Memoria

Memory management. Le attività di memory management del SO per la condivisione da parte di più processi

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

Gestione della memoria

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

! Per essere eseguiti, i programmi devono essere trasferiti (dal disco) in memoria e tradotti in processi.!

Gestione della memoria. Introduzione Swapping Allocazione contigua Paginazione

Docente Prò Giuseppe - Corso PENTEST MIND PROJECT A cura di Prò Giuseppe

Gestione della Memoria Principale

Gestione della memoria

Cognome e nome: Matricola: Posto:

I Processi. Il Concetto di Processo

Il software. la parte contro cui si può solo imprecare. Funzioni principali del sistema operativo

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

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

Sistemi Operativi. Bruschi Martignoni Monga. Gestione della memoria. Sistemi multiprogrammati. Partizioni fisse Partizioni variabili Paginazione

I Processi nel Sistema Operativo Unix. Gerarchie di processi Unix. Stati di un processo Unix. Stati di un processo Unix.

La gerarchia delle memorie

Segmentazione. Gestore della memoria II parte. Segmentazione. Segmentazione: Vantaggi. Segmentazione 07/06/2012. Confronto Paginazione - Segmentazione

Cognome e nome: Matricola: Posto: Regole dell'esame.

La Memoria Virtuale Valeria Cardellini

Capitolo 4 Gestione della Memoria

Astrazione. Gestore della memoria. La rilocabilità del codice. Gestore della memoria

Architettura dei sistemi di elaborazione: La memoria (parte 2)

GESTIONE DELLA MEMORIA CENTRALE

Sistemi Operativi. La gestione delle risorse

Sistema Operativo - Gestione della Memoria lista argomenti di studio

La memoria virtuale. Calcolatori Elettronici. Valeria Cardellini Rielaborate da Salvatore Tucci

Sistemi Operativi Il Sistema Operativo Windows (parte 2)

Calcolo prestazioni cache (1)

SOLUZIONI: Memoria virtuale

La gestione della memoria. Lezione 16 Sistemi Operativi

Gestione della memoria

Università degli Studi di Padova - Corso di Laurea in Informatica

Università degli Studi di Padova - Corso di Laurea in Informatica

SISTEMI OPERATIVI. Gestione della memoria. Gestione della memoria. Partizionamento Paginazione Segmentazione Memoria virtuale. 08.

Memoria Virtuale e I/O. Paolo Baldan. Introduzione. Gerarchie di memoria: Cache. Gerarchie di Memoria CPU

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

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

Memoria Virtuale. Lezione 6-7 Sistemi Operativi

ESERCIZIO M-1 Rilocazione statica con caricamento in partizioni fisse

Memoria Virtuale e I/O

Introduzione alle memorie cache. Sommario

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

Il Sistema Operativo Thread

Obiettivo. Gestione della memoria. Inoltre. Sistemi monoprogrammati. Sistemi monoprogrammati. Sistemi monoprogrammati 07/06/2012

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

Corso di laurea in Ingegneria Biomedica, Elettrica, Elettronica ed Informatica

SOLUZIONE Istruzioni: Indirizzo logico Legittimo? Indirizzo fisico Dati:

PROVA SCRITTA DEL CORSO DI. Corso di Laurea in Ingegneria Biomedica, Ingegneria Elettrica ed Elettronica 17 Luglio 2014

Il Gestore della Memoria. Tecnica a Partizioni Fisse e a Partizioni Variabili

LABORATORIO DI INFORMATICA

Introduzione alle gerarchie di memoria

Sistema Operativo - Gestione della Memoria per moderne CPU. Address Binding Dinamico in esecuzione mediante Segmentazione, Paginazione e Memoria

La gestione della memoria su IA-32. Lez. 32 Sistemi Operativi

La gerarchia di Memoria

SOLUZIONE Istruzioni: Indirizzo logico Legittimo? Indirizzo fisico SI NO SI Dati:

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

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

Miglioramento delle prestazioni

SOLUZIONI DELLA PROVA SCRITTA DEL CORSO DI. NUOVO E VECCHIO ORDINAMENTO DIDATTICO 7 Febbraio 2002

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

Compito di Informatica Grafica 1 appello 08/06/2004. Nome e Cognome Numero di Matricola Corso di Laurea Anno

Compito di Informatica Grafica 1 appello 08/06/2004. Nome e Cognome Numero di Matricola Corso di Laurea Anno

MOTIVARE IN MANIERA CHIARA LE SOLUZIONI PROPOSTE A CIASCUNO DEGLI ESERCIZI SVOLTI

Modulo 1: Le I.C.T. UD 1.4d: La Memoria Centrale

La gerarchia di Memoria

Università degli Studi di Padova - Corso di Laurea in Informatica

Logico e fisico. Fisico: legato agli aspetti costruttivi e tecnologici HARDWARE Logico: legato al significato e all organizzazione SOFTWARE FISICO

LABORATORIO DI SISTEMI OPERATIVI

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

Il sistema operativo

Gestione della Memoria

Gestione della memoria

Il file È un insieme di informazioni: programmi. Il File System. Il file system

Esercitazione 14. Memoria Principale M1

Transcript:

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 218-219 Pietro Frasca Lezione 17 Martedì 4-12-218

Memoria segmentata Nei sistemi che utilizzano la segmentazione, è possibile strutturare lo spazio virtuale di un processo assegnando un segmento per ogni modulo di programma quali le funzioni, procedure, strutture dati etc. In tal modo, lo spazio virtuale del processo, è costituito da molti segmenti che rispecchiano semanticamente la struttura del programma sorgente. Spazio virtuale segmentato IndMax IndMax1 IndMax2 Segmento Segmento 1 Segmento 2 Segmento N IndMaxN Appunti di Sistemi Operativi, 218-219 - Pietro Frasca 2

Nelle architetture di processori con supporto di segmentazione, gli indirizzi virtuali sono generati con il seguente formato bidimensionale: Iv = <segmento, offset> Poiché i processori hanno un buffer (TLB, Translation Lookaside Buffer) composto da pochi registri associativi, tipicamente da 32 a 124, in cui memorizzare i valori limite e base, nel caso in cui il numero di segmenti è elevato non è più possibile memorizzare nella TLB i dati relativi a tutti i segmenti. Ad esempio i microprocessori Intel della famiglia IA-32 hanno uno spazio virtuale che può avere fino a 2 14 (16384) segmenti. Appunti di Sistemi Operativi, 218-219 - Pietro Frasca 3

limite D D1 Dn-1 TLB base I I1 In-1 altre info stack (D2) dati (D1) I2 I1 Iv=<seg, offs> seg offs offs < + si no If codice (D) I Eccezione protezione TLB miss Traduzione degli indirizzi con TLB Appunti di Sistemi Operativi, 218-219 - Pietro Frasca 4

Pertanto i valori relativi all indirizzo base e limite di ogni segmento sono memorizzati in una tabella, detta tabella dei segmenti, contenuta nella memoria principale e gestita dal kernel. Il descrittore del processo (PCB) contiene, oltre alle informazioni già descritte, due campi relativi al suo spazio virtuale. Il primo contiene il numero di segmenti in cui è suddiviso lo spazio virtuale e il secondo memorizza l indirizzo fisico della tabella dei segmenti. Questi due valori sono caricati in due registri del processore, quando il processo passa in esecuzione. I due registri sono spesso indicati con i termini STLR (Segment Table Limit Register) e STBR (Segment Table Base Register). Descrittore del processo Tabella dei segmenti STLR STBR IndTabSeg Appunti di Sistemi Operativi, 218-219 - Pietro Frasca 5

STBR IndTabSeg Segmento seg del processo in esecuzione Memoria fisica Iv seg N offs STLR Iv Tabella dei segmenti I Limite Base I+offs offs no si seg Iseg < + D I N-1 D-1 offs ECCEZIONE 1 Appunti di Sistemi Operativi, 218-219 - Pietro Frasca si < + If=I+offs no ECCEZIONE 2 6

L uso della tabella dei segmenti caricata in RAM rallenta la funzione di traduzione degli indirizzi rispetto al caso in cui i valori base e limite di ogni segmento sono contenuti nella veloce TLB del processore. Per accedere ad una locazione di memoria sono ora necessari due accessi: il primo accesso alla tabella dei segmenti e il secondo alla locazione vera e propria. Tuttavia, anche se i processori hanno una TLB composta da pochi registri associativi, la traduzione degli indirizzi si ottiene per la maggior parte attraverso essa, senza accedere alla tabella in RAM. Infatti, quando la CPU genera un indirizzo virtuale Iv = <seg,offset> la sua traduzione avviene dapprima ricercando i dati riguardanti il segmento seg nella TLB. Se i dati sono presenti nella TLB la traduzione degli indirizzi si ottiene in base ai valori base e limite presenti nel registro associativo, altrimenti la traduzione avviene in base allo schema della figura precedente e nella TLB sono copiati i dati relativi alla traduzione. Appunti di Sistemi Operativi, 218-219 - Pietro Frasca 7

Giacché un programma è strutturato in moduli, gli accessi in memoria sono spesso localizzati. Pertanto, si ha che con pochi registri associativi si possono tradurre l 8% degli indirizzi. La percentuale di volte che la traduzione dell indirizzo avviene con la TLB è detta hit ratio. Un hit ratio pari a.8 significa che l 8% delle traduzioni è risolto con la TLB. I tempi di ricerca nelle TLB attuali sono praticamente trascurabili. Ad esempio, se sono necessari 1 ns per accedere alla memoria, allora nel caso in cui la traduzione avviene con la TLB, un accesso ad una locazione di memoria, per un istruzione o un dato, richiede 1 ns. Se, invece, la TLB non contiene la traduzione occorrono 1 ns per accedere alla tabella dei segmenti più 1 ns per accedere al dato desiderato in memoria; in totale sono necessari 1+1=2 ns. Per calcolare il tempo effettivo di accesso alla memoria bisogna tener conto della probabilità dei due casi: Appunti di Sistemi Operativi, 218-219 - Pietro Frasca 8

Tempo effettivo d accesso = p (T TLB +T M ) + (1-p) (T TLB +2 T M ) Per l esempio precedente si ha (trascurando T TLB) : Tempo effettivo d accesso =.8 1+.2 2=12 ns La segmentazione dello spazio virtuale complica notevolmente la funzione di traduzione degli indirizzi ma d altra parte presenta grandi vantaggi. Due importanti vantaggi prodotti dalla segmentazione sono relativi alla protezione e alla condivisione dei segmenti. La segmentazione consente di ottenere vari tipi di controllo quando un processo accede alla memoria. Oltre ai i due controlli di protezione evidenziati nella figura precedente, ad ogni segmento possono essere associati vari diritti di accesso, come ad esempio il diritto in accesso in sola lettura (segmento di codice, segmento contenente solo costanti), scrittura (segmento dati), lettura e scrittura (segmento dati) etc. Appunti di Sistemi Operativi, 218-219 - Pietro Frasca 9

Per consentire questi controlli nella tabella dei segmenti si aggiungono nuovi campi, come mostrato nella figura seguente. base limite controllo altre info Indirizzo del segmento dimensione del segmento descrittore della tabella del segmento R W Come già detto, la segmentazione consente una corrispondenza semantica tra moduli di un programma e segmenti. Pertanto è possibile condividere alcuni segmenti tra più processi, come mostrato nella figura seguente. Nella figura sono rappresentati gli spazi virtuali di due processi P1 e P2 mediante le relative tabelle dei segmenti. P1 ha 5 segmenti, P2 ne ha 4. Il segmento funz1 è condiviso. Appunti di Sistemi Operativi, 218-219 - Pietro Frasca 1

Esempio di segmento condiviso memoria I1 main P1 base limite controllo base limite controllo main I1 D1 I2 main P2 main I2 D2 funz1 funz2 I4 I8 D4 D4 1 2 I3 dati P2 funz1 dati I4 I3 D4 D3 1 2 dati stack I6 I5 D6 D5 3 4 I4 funz1 stack I7 D7 3 Tabella dei segmenti di P2 Tabella dei segmenti di P1 I5 stack P1 I6 dati P1 I7 stack P2 I8 funz2 Appunti di Sistemi Operativi, 218-219 - Pietro Frasca 11

Da quanto fin ora descritto, con la tecnica della segmentazione un processo si può trovare in due condizioni: 1. Allocato in memoria tutti i suoi segmenti sono allocati nella memoria fisica 2. Non allocato in memoria tutti i suoi segmenti sono nella swap-area, su disco. Per tener conto di questa situazione è necessario aumentare gli stati in cui si può trovare un processo. Si aggiungono due stati detti pronto-swapped e bloccatoswapped per rappresentare i processi quando non hanno lo spazio virtuale allocato in memoria fisica. Appunti di Sistemi Operativi, 218-219 - Pietro Frasca 12

assegnazione cpu esecuzione terminazione sospensione terminato revoca cpu bloccato pronto riattivazione swap-in swap-out swap-out nuovo Pronto swapped riattivazione Bloccato swapped creazione Appunti di Sistemi Operativi, 218-219 - Pietro Frasca 13

Come abbiamo già detto, le transizioni (assegnazione CPU) dallo stato di pronto allo stato di esecuzione e quella dallo stato di prontoswapped allo stato di pronto (swap-in) sono eseguite rispettivamente dallo scheduler a breve termine e dallo scheduler a medio termine. Il caricamento in memoria dell intero spazio virtuale, prima dell esecuzione del processo, implica che la dimensione dello spazio virtuale debba essere inferiore alla dimensione della memoria fisica disponibile. Appunti di Sistemi Operativi, 218-219 - Pietro Frasca 14

Memoria paginata La gestione della memoria fisica mediante partizioni ha lo svantaggio di produrre la frammentazione della memoria. La tecnica della memoria paginata consiste nel suddividere lo spazio virtuale del processo in blocchi di dimensione fissa dette pagine virtuali. Le pagine hanno dimensione di potenza di 2 (esempio 2 1 =124). Anche la memoria fisica è partizionata in pagine fisiche (dette anche frame) della stessa dimensione delle pagine virtuali. 124 248 Spazio virtuale di P pv pv 1 pv 2 372 pv 3 495 124 248 124*(k-1) Memoria fisica pf pf 1 pf 2 pf k Appunti di Sistemi Operativi, 218-219 - Pietro Frasca 124*(N-1) pf N 15

In tal modo ciascuna pagina virtuale di un processo può essere allocata in memoria in qualsiasi pagina fisica e in modo indipendente. La pagina fisica, allocata per l ultima pagina virtuale del processo potrebbe non essere completamente utilizzata. Infatti è molto difficile che la dimensione dello spazio virtuale di un processo sia un multiplo intero della dimensione della pagina. In tal caso si produce frammentazione interna. Spazio virtuale di P Memoria fisica 124 248 372 495 pv pv 1 pv 2 frammentazione 124 248 pv pf 1 pv pf 13 pf 2 pv 3 124*(k-1) pv pf k pv 2 124*(N-1) pf N Appunti di Sistemi Operativi, 218-219 - Pietro Frasca 16

Per ogni processo, il kernel, gestisce una tabella delle pagine che realizza la funzione di traduzione degli indirizzi tra le pagine virtuali e le pagine fisiche nelle quali le pagine virtuali sono caricate. L indirizzo della tabella delle pagine e il numero di pagine di cui è costituito lo spazio virtuale di un processo sono memorizzate in campi del descrittore del processo (PCB). Spazio virtuale di P Tabella delle pagine Memoria fisica 124 248 372 495 pv pv 1 pv 2 pv 3 1 2 3 2 5 4 1 124 248 372 496 pf pv 3 in pf 1 pv in pf 2 pf 3 pv 2 in pf 4 512 pv 1 in pf 5 Appunti di Sistemi Operativi, 218-219 - Pietro Frasca 17

La dimensione della tabella delle pagine dipende dalla dimensione dello spazio virtuale del processo e dalla dimensione delle pagine. In pratica, per tradurre un indirizzo virtuale Iv è necessario sapere a quale pagina virtuale esso appartiene. Dividendo l indirizzo virtuale per la dimensione D della pagina si ha che: Il quoziente della divisione è l indice della pagina virtuale; Il resto della divisione è l offset dell indirizzo all interno della pagina. Ad esempio se la pagina è di dimensioni di 124 byte, l indirizzo 256 appartiene alla pagina 2 ed ha offset pari a 8 (la numerazione delle pagine inizia da ). 124 248 372 495 pv pv 1 pv 2 pv 3 256%124 = 2 256-124*2 = 8 Appunti di Sistemi Operativi, 218-219 - Pietro Frasca 18

Per mantenere lo stato di allocazione della memoria fisica, il gestore della memoria mantiene aggiornata una tabella, detta tabella delle pagine fisiche, che ha un numero di righe pari al numero delle pagine fisiche in cui è suddivisa la memoria. L elemento della tabella indica se la pagina fisica è libera o occupata. Se la pagina è occupata l elemento contiene due campi: il pid del processo a cui appartiene la pagina e l indice pv della pagina virtuale corrispondente. 1 2 3 k N-1 pid pagina P1 1 P2 6 free P3 4 free P2 1 Tabella delle pagine fisiche Appunti di Sistemi Operativi, 218-219 - Pietro Frasca 19