Gestione della memoria
|
|
|
- Antonino Fiore
- 8 anni fa
- Visualizzazioni
Transcript
1 Gestione della memoria Gestione della Memoria Introduzione Spazi di indirizzamento Allocazione contigua Paginazione Segmentazione Segmentazione con paginazione 2 1
2 Introduzione La condivisione della memoria da parte di più processi è essenziale per l efficienza del sistema Problematiche: Allocazione della memoria ai singoli job Protezione dello spazio di indirizzamento Condivisione dello spazio di indirizzamento Gestione dello swap Nei sistemi moderni: Gestione della memoria inseparabile dal concetto di memoria virtuale 3 Introduzione Vincolo: ogni programma deve essere portato in memoria e trasformato in processo per essere eseguito La CPU preleva le istruzioni da eseguire dalla memoria in base al valore del program counter L istruzione viene codificata e può prevedere il prelievo di operandi dalla memoria Al termine dell esecuzione dell istruzione, il risultato può essere scritto in memoria Quando il processo termina, la sua memoria viene rilasciata 4 2
3 Introduzione La trasformazione da programma a processo avviene attraverso varie fasi precedenti all esecuzione In ogni fase si ha una diversa semantica degli indirizzi Spazio logico vs. spazio fisico Gli indirizzi del programma sorgente sono simbolici Come diventano indirizzi fisici? Il compilatore associa agli indirizzi simbolici indirizzi rilocabili Il linker o il loader associano agli indirizzi rilocabili indirizzi assoluti 5 Fasi della trasformazione Lib x 100 Lib Lib (memoria) Prog Sorgente Compilatore Modulo oggetto Linker Modulo caricabile Loader immagine Tempo di compilazione Tempo di caricamento Tempo di esecuzione Gli indirizzi hanno diverse rappresentazioni nelle varie fasi di costruzione di un programma Il collegamento tra indirizzi simbolici e indirizzi fisici viene detto binding 6 3
4 statico dinamico Binding & indirizzi Il binding di dati e istruzioni a indirizzi di memoria può avvenire in tre momenti distinti Al tempo di compilazione (compile time) Se è noto a priori in quale parte della memoria risiederà il processo, è possibile generare codice assoluto Se la locazione di partenza cambia, necessario (ri)compilare Al tempo di caricamento (load time) Necessario generare codice rilocabile (=riposizionabile) Indirizzi relativi (es. 128 byte dall inizio del programma) Se cambia l indirizzo di riferimento, devo (ri)caricare Al tempo di esecuzione (run time) Binding posticipato se il processo può essere spostato durante l esecuzione in posizioni diverse della memoria Richiesto supporto hardware (per efficienza) 7 Binding - esempio Compile Time Load time Run time jump A 100! jump 150 A: 150: ! jump A 0! jump ! 1100! jump 150 jump 1150 A: 50: 150: 1150: 50! 150! 1150! jump A 0! jump ! 1000 jump ! jump 150 A: 50: 50! 150: 150! ASSEMBLER 150: 1150! (compilatore) LINKER LOADER 1000! HW" 1150! 8 4
5 Collegamento (linking) Statico Tradizionale: tutti i riferimenti sono definiti prima dell esecuzione L immagine del processo contiene una copia delle librerie usate Dinamico Link posticipato al tempo di esecuzione Il codice del programma non contiene il codice delle librerie ma solo un riferimento (stub) per poterle recuperare (es. Windows DLL) 9 Caricamento (loading) Statico Tradizionale: tutto il codice è caricato in memoria al tempo dell esecuzione Dinamico Caricamento posticipato dei moduli in corrispondenza del primo utilizzo Codice non utilizzato, non caricato Utile per codice con molti casi speciali 10 5
6 Spazi di indirizzamento Lo spazio di indirizzamento logico è legato a uno spazio di indirizzamento fisico indirizzo logico: generato dalla CPU detto anche indirizzo virtuale indirizzo fisico: visto dalla memoria Nel binding a compile o load-time indirizzo fisico e logico coincidono Nel binding a run-time indirizzo fisico e logico sono generalmente diversi 11 Binding statico vs. dinamico CPU Indirizzo logico Indirizzo fisico MEM STATICO: Compile time & load time Indirizzo logico Indirizzo fisico CPU HW (MMU) MEM DINAMICO: Run time (tempo di esecuzione) 12 6
7 Memory Management Unit (MMU) Dispositivo hardware che mappa indirizzi virtuali (logici) inindirizzi fisici Schema base: Il valore del registro di rilocazione è aggiunto ad ogni indirizzo generato da un processo, e inviato alla memoria MMU Registro base Indirizzo logico + Indirizzo fisico 13 Considerazioni In un sistema multiprogrammato non è possibile conoscere in anticipo dove un processo può essere posizionato in memoria Binding a tempo di compilazione non possibile L esigenza di avere lo swap impedisce di poter utilizzare indirizzi rilocati in modo statico Binding a tempo di caricamento non possibile Conseguenze: Rilocazione dinamica: Usata per per sistemi complessi Gestione della memoria nel S.O. Rilocazione statica: Possibile in sistemi per applicazioni specifiche Limitata gestione della memoria nel S.O. 14 7
8 SCHEMI DI GESTIONE DELLA MEMORIA 15 Schemi di gestione della memoria Allocazione contigua Paginazione Segmentazione Segmentazione paginata Prevedono che il programma sia interamente caricato in memoria NOTA Soluzioni realistiche utilizzano memoria virtuale 16 8
9 ALLOCAZIONE CONTIGUA 17 Allocazione contigua Processi allocati in memoria in posizioni contigue all interno di una partizione La memoria è suddivisa in partizioni: Partizioni fisse Partizioni variabili Esempio: Processo con dimensione dell immagine di 10K Occupa 10K consecutivi 18 9
10 Tecnica delle partizioni fisse La memoria è: insieme di partizioni di dimensioni predefinite (tipicamente diverse) Problematiche: Assegnazione di memoria ai job Supporto per la rilocazione dinamica 19 Assegnazione della memoria Effettuata dallo scheduling a lungo termine Due opzioni: Una coda per partizione Coda singola 20 10
11 Assegnazione della memoria Una coda per partizione: Il processo viene assegnato alla partizione più piccola in grado di contenerlo Poco flessibile Possono esserci partizioni vuote e job nelle altre code Coda unica gestita con politica: FCFS Facile, ma vi è un basso utilizzo della memoria Scansione della coda Best-fit-only Scelta del job con dimensioni più simili alla partizione Best-available-fit Scelta del primo job che può stare nella partizione 21 Supporto per la rilocazione MMU consiste di registri di rilocazione per proteggere lo spazio dei vari processi (attivamente e passivamente) Contengono: Valore dell indirizzo più basso (registro base o di rilocazione) Limite superiore dello spazio logico (registro limite) Ogni indirizzo logico deve risultare < del limite MMU Registro limite Registro base Indirizzo logico < OK + Indirizzo fisico errore 22 11
12 Considerazioni Vantaggi Relativa semplicità Svantaggi Grado di multiprogrammazione limitato dal n di partizioni Frammentazione à spreco di memoria Frammentazione interna Interna alla partizione Se la dimensione della partizione è più grande della dimensione del job Frammentazione esterna Se vi sono partizioni non utilizzate che non soddisfano le esigenze dei processi in attesa 23 Tecnica delle partizioni variabili Spazio utente diviso in partizioni di dimensioni variabili di dimensioni identiche alla dimensione dei processi Motivazione: Eliminare la frammentazione interna Problematiche: Assegnazione di memoria ai job Supporto per la rilocazione dinamica 24 12
13 Assegnazione della memoria Vista della memoria: insieme di buche (hole) Buca = blocco di memoria disponibile Il S.O. mantiene informazioni su: partizioni allocate buche Quando arriva un processo, gli viene allocata memoria usando la buca che lo può contenere Buca 1 2K Buca 2 8K Buca 3 128K 25 Assegnazione memoria - esempio OS OS OS OS OS Processo 5 Processo 5 Processo 5 Processo 5 Processo 5 Processo 9 Processo 9 Processo 8 Processo 10 Processo 10 Processo 2 Processo 2 Processo 2 Processo 2 Processo
14 Assegnazione della memoria Come soddisfare la richiesta di n celle di memoria data una lista di buche libere? Strategie: First-fit: alloca la prima buca grande a sufficienza Best-fit: alloca la più piccola buca grande a sufficienza richiede la scansione della lista minimo spreco Worst-fit: alloca la buca più grande richiede la scansione della lista lascia la buca di dimensioni più grandi First fit è tipicamente la migliore 27 Supporto per la rilocazione Come per partizioni fisse Registri di rilocazione per proteggere lo spazio dei vari processi (attivamente e passivamente) MMU Registro limite Registro base Indirizzo logico < OK + Indirizzo fisico errore 28 14
15 Considerazioni Vantaggi No frammentazione interna per costruzione Svantaggi Frammentazione esterna: esiste lo spazio disponibile in memoria, ma non è contiguo Con first fit, dati N blocchi allocati, 0.5*N blocchi vanno persi 29 Riduzione della frammentazione Soluzione intuitiva: compattazione Contenuto della memoria spostato in modo da rendere contigui i blocchi di un processo Possibile solo se la rilocazione è dinamica Richiede modifica del registro base Costosa: quanta memoria sposto? 30 15
16 Compattazione - esempio os OS A B C P1 P2 P3 P1 P2 P3 P4 P4 A+B+C+D D 31 Tecnica del buddy system Compromesso tra partizioni fisse e variabili La memoria è vista come una serie di liste di blocchi di dimensione 2 K, con L<k<U 2 L = più piccolo blocco allocato (es. 4K) 2 U = più grande blocco allocato (es. tutta la memoria) La memoria è disponibile sotto forma di blocchi di dimensione 2 k All inizio tutta la memoria è disponibile La lista di blocchi di dimensione 2 U contiene un solo blocco che rappresenta tutta la memoria Le altre liste sono vuote 32 16
17 Tecnica del buddy system Quando arriva una richiesta di dimensione s, si cerca un blocco libero con dimensione adatta purché sia pari a una potenza del 2 Se 2 U-1 < s <= 2 U l intero blocco di dimensione 2 U viene allocato Altrimenti il blocco 2 U è diviso in due blocchi di dimensione 2 U-1 Se 2 U-2 < s <= 2 U-1 l intero blocco di dimensione 2 U-1 viene allocato Altrimenti il blocco 2 U-1 è diviso in due blocchi di dimensione 2 U-2 e così via fino ad arrivare (al limite) al blocco di dimensione 2 L 33 Tecnica del buddy system Quando un processo rilascia la memoria, il suo blocco torna a far parte della lista dei blocchi di dimensione corrispondente Se si formano 2 blocchi adiacenti di dimensione 2 K, è possibile compattarli ottenendo un unico blocco libero di dimensione 2 K+1 Vantaggio La compattazione richiede solo di scorrere la lista dei blocchi di dimensione 2 K, quindi è veloce Svantaggio Frammentazione interna dovuta solo ai blocchi di dimensione 2 L 34 17
18 Buddy system - esempio 35 Buddy system - esempio 1M 512K 256K 128K 64K 36 18
19 PAGINAZIONE 37 Paginazione Tecnica per eliminare la frammentazione esterna Idea: Permettere che lo spazio di indirizzamento fisico di un processo sia non-contiguo Si alloca memoria fisica dove essa è disponibile Memoria fisica: divisa in blocchi di dimensione fissa detti frame Tipico 512 byte... 8K byte Memoria logica: divisa in blocchi della stessa dimensione detti pagine 38 19
20 Paginazione Per eseguire un programma avente dimensione n pagine, bisogna trovare n frame liberi Si utilizza una tabella delle pagine (page table) per mantenere traccia di quale frame corrisponde a quale pagina Una tabella delle pagine per ogni processo ciene usata per tradurre un indirizzo logico in un indirizzo fisico 39 Paginazione - esempio Dimensione della pagina = 1KB Dimensione del programma = 2.3KB Necessarie 3 pagine dell ultima pagina si userà solo 0.3KB E ancora possibile della frammentazione interna, ma solo nell ultima pagina 40 20
21 Traduzione degli indirizzi L indirizzo generato dalla CPU viene diviso in due parti: numero di pagina (p) Usato come indice nella tabella delle pagine che contiene l indirizzo di base di ogni frame offset (d) Combinato con l indirizzo base definisce l indirizzo fisico che viene inviato alla memoria Se la dimensione della memoria è 2 m e quella di una pagina è 2 n (parole/byte), l indirizzo è suddiviso così: numero di pagina p m n bit offset d n bit 41 Traduzione degli indirizzi - architettura MMU Indirizzo base del frame Scostamento all interno del frame f 42 21
22 Traduzione degli indirizzi esempio Memoria da 8KB Pagine di 1KB L indirizzo logico 936 diventa l indirizzo fisico 1960 pagina 0 (0 1K) (inizio pagina = 0) offset = 936 pagina 0 à frame 1 ( ) indirizzo fisico = offset = = 1960 L indirizzo logico 2049 diventa l indirizzo fisico 3073 pagina 2 ( ) inizio pagina = 2048 offset = 1 pagina 2 à frame 3 ( ) indirizzo fisico = = Implementazione della tabella delle pagine L efficienza è fondamentale Soluzioni: Implementazione tramite registri Implementazione in memoria Tabella delle pagine multilivello Tabella delle pagine invertita 44 22
23 Implementazione tramite registri Le entry (righe) della tabella delle pagine sono mantenute nei registri Soluzione efficiente ma fattibile se il numero di entry è limitato (perché ci sono pochi registri) allunga i tempi di contex switch perché richiede salvataggio dei registri 45 Implementazione in memoria La tabella risiede in memoria Vengono utilizzati due registri: Page-table base register (PTBR) punta alla tabella delle pagine Page-table length register (PTLR) [opzionale] contiene la dimensione della tabella delle pagine Il context switch è più breve perché richiede solo modifica del PTBR (PTLR) Problema: ogni accesso a dati/istruzioni richiede due accessi in memoria (tabella delle pagine + dato/istruzione) 46 23
24 Implementazione in memoria Il problema del doppio accesso può essere risolto tramite una cache veloce detta translation look-aside buffers (TLB) Funzionamento: Confronto dell elemento fornito con il campo chiave di tutte le entry (contemporaneamente) Tabella delle pagine Chiave = n di pagina Valore = n di frame Page # Frame # 47 Implementazione in memoria Il TLB è molto costoso quindi nel TLB viene memorizzato solo un piccolo sottoinsieme delle entry della tabella delle pagine ad ogni context switch il TLB viene ripulito per evitare mapping di indirizzi errati Durante un accesso alla memoria: se la pagina cercata è nel TLB, il TLB restituisce il numero di frame con un singolo accesso tempo richiesto < 10% tempo richiesto in assenza di TLB altrimenti è necessario accedere alla tabella delle pagine in memoria hit ratio α = % delle volte in cui una pagina si trova nel TLB Necessario definire il concetto di tempo di accesso effettivo 48 24
25 Tempo di accesso effettivo Tempo di accesso effettivo (EAT) EAT = (T MEM + T TLB ) α + (2 T MEM + T TLB )(1 α) dove: T TLB = tempo di accesso a TLB T MEM = tempo di accesso a memoria Esempio: T MEM = 90ns T TLB = 10ns α = 90% EAT = 100 * * 0.1 = 109 ~ 1.2 T MEM 49 Protezione Realizzata associando bit di protezione ad ogni frame Esempio: Bit di validità (valid-invalid bit) per ogni entry della tabella delle pagine Utile per memoria virtuale valid : la pagina associata è nello spazio di indirizzamento logico del processo invalid : la pagina associata NON è nello spazio di indirizzamento logico del processo Bit di accesso Per marcare una pagina modificabile o meno (read-only) Per marcare una pagina eseguibile o meno 50 25
26 Pagine condivise Codice condiviso Vi è un unica copia fisica, ma più copie logiche (una per processo) Il codice read-only (rientrante) può essere condiviso tra processi es.: text editor, compilatori, window manager I dati in generale saranno diversi da processo a processo (più copie fisiche e logiche) Non cambia mai durante l esecuzione 51 Codice condiviso - esempio 52 26
27 Spazio di indirizzamento Nelle architetture moderne con 32 (o 64) bit di indirizzo, lo spazio di indirizzamento virtuale è 2 32 (o 2 64 ), ovvero molto maggiore dello spazio fisico! Es.: se frame = 4K = 2 12 Æ 2 32 /2 12 = entry nella tabella delle pagine (per processo!) Sono necessari meccanismi per gestire il problema della dimensione della tabella delle pagine: Paginazione della tabella delle pagine Tabella delle pagine multilivello Tabella delle pagine invertita 53 Paginazione multilivello Equivalente a paginare la tabella delle pagine In pratica, solo alcune parti della tabella delle pagine sono memorizzate esplicitamente in memoria, le altre sono su disco Possibili versioni a 2,3,4 livelli 54 27
28 Paginazione a due livelli 55 Indirizzo logico a 32-bit Dimensione pagina = 4K = bit per offset (d ) 20 bit per numero di pagina p1: indice della tabella delle pagine esterna (10 bit) p2: offset all interno della pagina della page table interna (10 bit) Esempio 56 28
29 Esempio (continua) p1 p2 offset p1 = 1 recuperare la tabella di 2 livello corrispondente all indirizzo indicato dalla prima riga p2 = 3 recuperare l indirizzo I3 indicato nella terza riga della tabella di 2 livello offset = 4 da sommare al valore I3 fornito dalla tabella di 2 livello 57 Paginazione multilivello e prestazioni Ogni livello è memorizzato come una tabella separata in memoria, la conversione dell indirizzo logico in quello fisico può richiedere 4 accessi a memoria (per paginazione a 3 livelli) Il TLB mantiene comunque le prestazioni ragionevoli Esempio: TMEM = 90ns TTLB = 10ns α = 90% EAT = (10+90)*0,9 + (10+360)*0,1 = 127ns ~ 1.4 TMEM 58 29
30 Tabella delle pagine invertita Tabella unica nel sistema (non per processo!) avente una entry per ogni frame (pagina fisica), contenente: indirizzo virtuale della pagina che occupa quel frame Informazioni sul processo che usa quella pagina Problema: Più di un indirizzo virtuale può corrispondere ad un dato indirizzo fisico (frame) Conseguenza: E necessario cercare il valore desiderato Vi è un aumento del tempo necessario per cercare un riferimento ad una pagina 59 Tabella delle pagine invertita La ricerca non può essere sequenziale (efficienza)! Soluzione Usiamo l equivalente di una tabella hash Riduzione del tempo di ricerca da O(n) a O(1) In pratica, è necessario un meccanismo per gestire le collisioni quando diversi indirizzi virtuali corrispondono allo stesso frame 60 30
31 Tabella delle pagine invertita: architettura concettuale Funzione hash Tabella unica nel sistema ordinata per frame 61 SEGMENTAZIONE 31
32 Segmentazione - motivazioni Schema di gestione della memoria che supporta la vista che l utente ha della memoria Programma: collezione di segmenti Segmento: unità logica quale: main procedure funzioni variabili locali e globali stack symbol table vettori 63 Segmentazione - vista logica Segmenti Non hanno tutti la stessa dimensione Sono indicati da nome e lunghezza 3 4 Spazio indirizzi logici 2 3 Spazio fisico 64 32
33 Segmentazione - architettura Indirizzo logico <numero di segmento, offset> Tabella dei segmenti (segment table) mappa indirizzi logici bidimensionali in indirizzi fisici unidimensionali Ogni entry contiene: base l indirizzo fisico di partenza del segmento in memoria limite la lunghezza del segmento 65 Tabella dei segmenti Simile a tabella delle pagine In memoria: Segment-table base register (STBR) punta alla locazione della tabella dei segmenti in memoria Segment-table length register (STLR) indica il numero di segmenti usati da un programma un indirizzo logico <s,d> è valido se s < STLR STBR + s = indirizzo dell elemento della tabella dei segmenti da recuperare TLB usato per memorizzare le entry maggiormente usate (come per paginazione) 66 33
34 Architettura Indirizzo inizio tabella memorizzato in STBR Lunghezza della tabella memorizzato in STLR 67 Traduzione indirizzi - esempio Tabella dei segmenti Segmento Limite Base Indirizzi logici <0, 430> segmento 0, offset < 600? OK indirizzo fisico = base di 0 = = 649 <1, 20> segmento 1, offset < 14 NO! indirizzo non valido! 68 34
35 Protezione Segmentazione supporta naturalmente la protezione (e la condivisione) di porzioni di codice Segmento = entità con semantica ben definita (es. dati, istruzioni, ) Protezione ad ogni segmento sono associati bit di modalità (read/write/execute) valid bit (0 segmento non legale) Es: scrittura su segmento read-only è facilmente riconosciuta e bloccata 69 Condivisione A livello di segmento Se si vuole condividere qualcosa basta inserirlo in un segmento Possibilità di condividere anche parti di un programma (es. funzioni di libreria) 70 35
36 Esempio di condivisione Codice dell editor condiviso Sezione dati privata per ogni processo 71 Segmentazione e frammentazione S.O. deve allocare spazio in memoria per (tutti) i segmenti di un programma Segmenti hanno lunghezza variabile Allocazione dei segmenti problema di allocazione dinamica risolto con first-fit o best-fit Possibilità di frammentazione esterna (specie per segmenti di dimensione significativa) 72 36
37 Paginazione vs. segmentazione Paginazione Vantaggi Non esiste frammentazione (minima interna) Allocazione dei frame non richiede algoritmi specifici Svantaggi Separazione tra vista utente e vista fisica della memoria Paginazione Vantaggi Consistenza tra vista utente e vista fisica della memoria Associazione di protezioni/condivisione ai segmenti Svantaggi Richiesta allocazione (dinamica) dei segmenti Potenziale frammentazione esterna 73 SEGMENTAZIONE PAGINATA 37
38 Segmentazione paginata E possibile combinare i due schemi per migliorarli entrambi La soluzione utilizzata consiste nel paginare i segmenti Ogni segmento è suddiviso in pagine Ogni segmento possiede la sua tabella delle pagine La tabella dei segmenti non contiene l indirizzo base di ogni segmento, ma l indirizzo base delle tabelle delle pagine per ogni segmento Elimina il problema dell allocazione dei segmenti e della frammentazione esterna! 75 Architettura (MULTICS) Offset diviso in numero di pagina (p) e e offset di pagina (d ) 76 38
Calcolatori Elettronici Parte VIII: linguaggi assemblativi
Anno Accademico 2013/2014 Calcolatori Elettronici Parte VIII: linguaggi assemblativi Prof. Riccardo Torlone Universita di Roma Tre Linguaggi di Programmazione Linguaggi ad alto livello Maggiore espressività
Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione
Gestione della memoria Paginazione Segmentazione Segmentazione con paginazione Modello di paginazione Il numero di pagina serve come indice per la tabella delle pagine. Questa contiene l indirizzo di base
La gerarchia delle memorie
La gerarchia delle memorie Gestione della memoria Ogni processo, per avanzare necessità che il relativo programma risieda nella memoria centrale, Tale programma è costituito da memoria e dati. Lo spazio
SISTEMI OPERATIVI. Gestione della memoria. Gestione della memoria. Partizionamento Paginazione Segmentazione Memoria virtuale. 08.
SISTEMI OPERATIVI 08.a Gestione della memoria Gestione della memoria Partizionamento Paginazione Segmentazione Memoria virtuale 1 Obiettivi La gestione della memoria (effettuata dal SO usando gli accorgimenti
Sistemi Operativi GESTIONE DELLA MEMORIA CENTRALE. D. Talia - UNICAL. Sistemi Operativi 6.1
GESTIONE DELLA MEMORIA CENTRALE 6.1 Gestione della Memoria Background Spazio di indirizzi Swapping Allocazione Contigua Paginazione 6.2 Background Per essere eseguito un programma deve trovarsi (almeno
Architettura degli elaboratori Docente:
Politecnico di Milano Il File System Architettura degli elaboratori Docente: Ouejdane Mejri [email protected] Sommario File Attributi Operazioni Struttura Organizzazione Directory Protezione Il File
Il file system. Le caratteristiche di file, direttorio e partizione sono del tutto indipendenti dalla natura e dal tipo di dispositivo utilizzato.
Il File System Il file system È quella parte del Sistema Operativo che fornisce i meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate in memoria di massa. Realizza i concetti
SISTEMI OPERATIVI. Gestione della memoria Domande di verifica. Luca Orrù Centro Multimediale Montiferru 18/06/2007
2007 SISTEMI OPERATIVI Gestione della memoria Domande di verifica Luca Orrù Centro Multimediale Montiferru 18/06/2007 Gestione della memoria 1. Si descriva il concetto di memoria virtuale (esame del 19-06-2006)
Memoria. Sistemi Operativi Giuseppe Prencipe. Tipica Gerarchia di Memoria. Gestione della Memoria. Modelli di gestione della memoria
Sistemi Operativi Giuseppe Prencipe Gestione della Memoria Memoria La memoria è un ampio vettore di parole, ciascuna con il suo indirizzo La CPU preleva le istruzioni dalla memoria (basandosi sul PC) Una
Capitolo 9: Memoria centrale
Capitolo 9: Memoria centrale Concetti generali. Swapping Allocazione contigua di memoria. Paginazione. Segmentazione. Segmentazione con paginazione. 9.1 Concetti generali Per essere eseguito un programma
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14. Pietro Frasca.
Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A. 2013-14 Pietro Frasca Lezione 11 Martedì 12-11-2013 1 Tecniche di allocazione mediante free list Generalmente,
La memoria virtuale. La gerarchia di memorie. Indirizzo fisico. Memoria virtuale. Architetture Avanzate dei Calcolatori. Valeria Cardellini
La memoria Architetture Avanzate dei Calcolatori Valeria Cardellini Nelle lezioni precedenti { Memoria La gerarchia di memorie Registri Istruzioni, operandi L Cache Blocchi L2 Cache Blocchi Memoria Pagine
SOLUZIONI: Memoria virtuale
SOLUZIONI: Memoria virtuale INTRODUZIONE Memoria Virtuale: Si parla di memoria virtuale quando la memoria principale viene utilizzata come cache per la memoria di massa (dischi, nastri): - I programmi
Gerarchie di memoria Memorie a componenti dinamici 1
Gerarchie di memoria Memorie a componenti dinamici 1 Denominate Dynamic RAM Memorizzazione su componenti capacitivi 1 transistor per bit (4-6 per Static RAM), dunque maggiore densità Richiede un ciclo
La Gestione della Memoria
La Gestione della Memoria Gestione della Memoria Centrale A livello hardware: ogni sistema di elaborazione è equipaggiato con un unico spazio di memoria. Compiti del Sistema Operativo: allocare memoria
GESTIONE DELLA MEMORIA CENTRALE
GESTIONE DELLA MEMORIA CENTRALE E MEMORIA VIRTUALE 7.1 Gestione della memoria Segmentazione Segmentazione con paginazione Memoria Virtuale Paginazione su richiesta Sostituzione delle pagine Trashing Esempi:
COMPILAZIONE. Tarsformazione di linguaggi
COMPILAZIONE Tarsformazione di linguaggi Le fasi della compilazione File sorgente Compilazione File sorgente File sorgente File sorgente Compilazione Compilazione Compilazione Libreria di run-time File
Calcolo prestazioni cache (1)
Calcolo prestazioni cache (1) Consideriamo gcc: miss rate x istruzioni = 2% miss rate x dati = 4% frequenza di letture e scritture=36% Consideriamo inoltre un sistema con: CPU: Clock=3Ghz, CPI ideale =1
Il linguaggio Assembly
Il linguaggio Assembly Linguaggio macchina Linguaggio definito da un insieme di istruzioni, codificate come stringhe di bit, che il processore può interpretare ed eseguire direttamente Linguaggio Assembly
Gestione della Memoria Principale
Fondamenti Gestione della Memoria Principale La memoria di un elaboratore e organizzata nella seguente gerarchia Typical access time Typical capacity Fondamenti Binding, Loading, Linking Spazio indirizzi
LA GESTIONE DELLA I/O
LA GESTIONE DELLA I/O Il S.O. È l interfaccia tra l hardware e i programmi che effettuano richieste di I/O Sottosistema di I/O strutturato in moduli chiamati DRIVER uno per ogni dispositivo I Driver rendono
Sistemi Operativi Esercizi Gestione Memoria
Sistemi Operativi Esercizi Gestione Memoria Docente: Claudio E. Palazzi [email protected] Crediti per queste slides ad A. Memo e T. Vardanega Sistemi Operativi - C. Palazzi 64 Esercizio 1 Dato un
Concetti di Base sulla Programmazione. Prof.Ing.S.Cavalieri
Concetti di Base sulla Programmazione Prof.Ing.S.Cavalieri 1 La Programmazione Dato un problema INFORMATICO, programmare significa: Definire i dati in ingresso e il risultato che si vuole raggiungere Definire
I THREAD O PROCESSI LEGGERI
I THREAD O PROCESSI Processi (pesanti): LEGGERI entità autonome con poche risorse condivise (si prestano poco alla scrittura di applicazioni fortemente cooperanti) Ogni processo può essere visto come Immagine
Gestione della memoria principale
Gestione della memoria principale Gestione della memoria principale Background Swapping Allocazione contigua della memoria Segmentazione Paginazione Struttura della tabella delle pagine Esempi Le architetture
Sistemi Operativi. 5 Gestione della memoria
Gestione della memoria Compiti del gestore della memoria: Tenere traccia di quali parti della memoria sono libere e quali occupate. Allocare memoria ai processi che ne hanno bisogno. Deallocare la memoria
Accesso a memoria. Accesso a memoria. Accesso a memoria. Modalità di indirizzamento. Lezione 5 e 6. Architettura degli Elaboratori A.
< < } } Lezione 5 e 6 Accesso a memoria A questo livello di astrazione, la memoria viene vista come un array di byte Per ogni richiesta di un dato ad un certo indirizzo, la CPU ottiene un numero di byte
Sistemi Operativi. Principi di ges tione della memoria S wapping Memoria virtuale
Sistemi Operativi Principi di ges tione della memoria S wapping Memoria virtuale Necessità di gestire la memoria La memoria è una risorsa importante e deve essere gestita attentamente Un programmatore
Sistema operativo: Gestione della memoria
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Sistema operativo: Gestione della memoria La presente dispensa e
Il Sistema Operativo. Informatica Sistema Operativo 1
Il Sistema Operativo Informatica Sistema Operativo 1 O.S.:.: un intermediario SW Applicativo Sistema Operativo HW Informatica Sistema Operativo 2 O.S. vs applicativi Applicativi accesso a un insieme ridotto
Gestione della Memoria
Gestione della Memoria Idealmente la memoria dovrebbe essere grande veloce non volatile Gerarchia di memorie Disco: capiente, lento, non volatile ed economico Memoria principale: volatile, mediamente grande,
Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova. Sistemi Operativi. Gianluca Della Vedova.
Programmi applicativi Un programma applicativo (o applicativo) è un eseguibile che può essere utilizzato dall utente e che ha funzionalità di alto livello (word processor, spreadsheet, DBMS) Univ. Milano-Bicocca
Esercizio: memoria virtuale
Siano dati un indirizzo logico con la struttura ed il contenuto mostrati in figura, dove è anche riportata la funzione di rilocazione. Si indichi l indirizzo fisico corrispondente all indirizzo logico
Strutture dati e loro organizzazione. Gabriella Trucco
Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi
Il Sistema Operativo
Il Sistema Operativo Il sistema operativo Con il termine sistema operativo si intende l insieme di programmi e librerie che opera direttamente sulla macchina fisica mascherandone le caratteristiche specifiche
Il memory manager. Gestione della memoria centrale
Il memory manager Gestione della memoria centrale La memoria La memoria RAM è un vettore molto grande di WORD cioè celle elementari a 16bit, 32bit, 64bit (2Byte, 4Byte, 8Byte) o altre misure a seconda
Sommario. Tabelle ad indirizzamento diretto e hash Funzioni Hash
Funzioni Hash Sommario Tabelle ad indirizzamento diretto e hash Funzioni Hash Requisiti Metodo della divisione Metodo della moltiplicazione Funzione Hash Universale La ricerca Talvolta si richiede che
Lezione 21 e 22. Valentina Ciriani ( ) Laboratorio di programmazione. Laboratorio di programmazione. Lezione 21 e 22
Lezione 21 e 22 - Allocazione dinamica delle matrici - Generazione di numeri pseudocasuali - Funzioni per misurare il tempo - Parametri del main - Classificazione delle variabili Valentina Ciriani (2005-2008)
Gestione della Memoria
Gestione della Memoria Nicola Fanizzi Dipartimento di Informatica Università degli Studi di Bari Linguaggi di Programmazione [010194] 27 apr, 2016 Sommario 1 Tecniche di gestione Progetto della gestione
Sistemi operativi e distribuiti
Sistemi operativi e distribuiti La memoria virtuale Memoria Virtuale Separazione della memoria logica da quella fisica Un programma potrebbe risiedere in memoria solo parzialmente Lo spazio di indirizzamento
Sistemi Operativi: Prof.ssa A. Rescigno Anno Acc. 2008-2009. Esercitazione. Memoria virtuale
Sistemi Operativi: Prof.ssa A. Rescigno Anno Acc. 2008-2009 Esercitazione Università di Salerno Memoria virtuale 1. Si assuma che un processo abbia m frames (inizialmente tutti vuoti) a disposizione e
DAGLI ALGORITMI AI LINGUAGGI. Linguaggi di Programmazione
DAGLI ALGORITMI AI LINGUAGGI Linguaggi di Programmazione E` una notazione con cui e` possibile descrivere gli algoritmi. Programma: e` la rappresentazione di un algoritmo in un particolare linguaggio di
AXO - Architettura dei Calcolatori e Sistema Operativo. organizzazione strutturata dei calcolatori
AXO - Architettura dei Calcolatori e Sistema Operativo organizzazione strutturata dei calcolatori I livelli I calcolatori sono progettati come una serie di livelli ognuno dei quali si basa sui livelli
Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina. Linguaggio Macchina ADD A,B ISTRUZIONE SUCCESSIVA
Lezione n.11 n.11 Lezione n. 11 ARCHITETTURA INTERNA ARCHITETTURA ESTERNA CODICE MACCHINA MODI DI INDIRIZZAMENTO ARCHITETTURE A PIU' INDIRIZZI In questa lezione verranno introdotti i concetti di base relativi
Gestione della memoria
Università di Udine Facoltà di Scienze MM.FF.NN. A.A. 2007-2008 Copyright c 2000 04 Marino Miculan ([email protected]) La copia letterale e la distribuzione di questa presentazione nella sua integrità
Sistema Operativo (Software di base)
Il Software Il software del PC Il computer ha grandi potenzialità ma non può funzionare senza il software. Il software essenziale per fare funzionare il PC può essere diviso nelle seguenti componenti:
Il set istruzioni di MIPS Modalità di indirizzamento. Proff. A. Borghese, F. Pedersini
Architettura degli Elaboratori e delle Reti Il set istruzioni di MIPS Modalità di indirizzamento Proff. A. Borghese, F. Pedersini Dipartimento di Scienze dell Informazione Università degli Studi di Milano
Sistemi Operativi. [email protected] 8 LEZIONE MEMORIA CENTRALE 1 PARTE CORSO DI LAUREA TRIENNALE IN INFORMATICA. Sistemi Operativi 2007/08
Sistemi Operativi Docente: Ugo Erra [email protected] 8 LEZIONE MEMORIA CENTRALE 1 PARTE CORSO DI LAUREA TRIENNALE IN INFORMATICA UNIVERSITA DEGLI STUDI DELLA BASILICATA Sommario della lezione Introduzione
FONDAMENTI DI INFORMATICA Lezione n. 11
FONDAMENTI DI INFORMATICA Lezione n. 11 ARCHITETTURA INTERNA ARCHITETTURA ESTERNA CODICE MACCHINA MODI DI INDIRIZZAMENTO ARCHITETTURE A PIU' INDIRIZZI In questa lezione verranno introdotti i concetti di
Algoritmo. La programmazione. Algoritmo. Programmare. Procedimento di risoluzione di un problema
Algoritmo 2 Procedimento di risoluzione di un problema La programmazione Ver. 2.4 Permette di ottenere un risultato eseguendo una sequenza finita di operazioni elementari Esempi: Una ricetta di cucina
Modi di indirizzamento
Vari modi di specificare l indirizzo degli operandi Modi di indirizzamento Capitolo 11 Immediato Diretto Indiretto Registro Registro indiretto Spiazzamento Pila 1 2 Indirizzamento immediato L operando
I sistemi operativi (prima parte) Agostino Lorenzi I sistemi operativi - Atlas
I sistemi operativi (prima parte) Le esigenze dell informatica moderna Computer facili da usare Gestione di grandi archivi di dati Esecuzione di più programmi sulla stessa macchina Collegamento in rete
interoperabilità fra dispositivi forniti da diversi produttori; superare i problemi legati alla limitazione del numero di risorse.
Capitolo 7 Le infrastrutture SoftWare Funzioni del sistema operativo Rendere utilizzabili le risorse fisiche presenti nel sistema informatico: correttezza e precision; anywhere, anytime; affidabilità,
Il Sistema Operativo
Il Sistema Operativo Prof. Orazio Mirabella Il sistema operativo Strato di interfaccia fra l utente e l hardware che permette di: Superare problemi legati alla gestione delle risorse hardware Favorire
Parte III: Gestione della Memoria. 8 Memoria Centrale ( gestione della ) 8.1. Introduzione. Memoria Centrale (cap. 8) Memoria Virtuale (cap.
Parte III: Gestione della Memoria 1 Memoria Centrale (cap. 8) Memoria Virtuale (cap. 9) 8 Memoria Centrale ( gestione della ) 2 Introduzione Binding degli indirizzi Spazio degli indirizzi logici e fisici
Capitolo 11 -- Silberschatz
Implementazione del File System Capitolo 11 -- Silberschatz Implementazione del File System File system: Definizione dell aspetto del sistema agli occhi dell utente Algoritmi e strutture dati che permettono
Linguaggi di alto livello, compilatori e interpreti
Linguaggi di alto livello, compilatori e interpreti Percorso di Preparazione agli Studi di Ingegneria Università degli Studi di Brescia Docente: Massimiliano Giacomin Il punto della situazione STATO DATI
INDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso
INDICI PER FILE Strutture ausiliarie di accesso 2 Accesso secondario Diamo per scontato che esista già un file con una certa organizzazione primaria con dati non ordinati, ordinati o organizzati secondo
File System. Capitolo 13
Capitolo 13 File System Problema 1: Le copie di un file possono essere inconsistenti, quindi per sbaglio si potrebbero leggere dati vecchi. È meglio creare un link a data nella home di ogni utente. Tuttavia,
Il Sistema Operativo. C. Marrocco. Università degli Studi di Cassino
Il Sistema Operativo Il Sistema Operativo è uno strato software che: opera direttamente sull hardware; isola dai dettagli dell architettura hardware; fornisce un insieme di funzionalità di alto livello.
Memoria virtuale. Capitolo 9 - Silberschatz
Memoria virtuale Capitolo 9 - Silberschatz Processo in memoria Istruzioni in memoria prima di essere eseguite. Condizione necessaria e ragionevole ma le dimensioni del programma devono essere correlate
Primi passi col linguaggio C
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta
Sistemi Operativi. A.M. Fanelli Architettura dei Sistemi a. a Livello di Sistema Operativo. Livello di Linguaggi Applicativi
Sistemi Operativi A.M. Fanelli Architettura dei Sistemi a. a. 2008-09 1 Livello di Sistema Operativo Livello di Linguaggi Applicativi Livello di Linguaggio Assembly Livello di Sistema Operativo Livello
Architettura dei computer
Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore la memoria principale (memoria centrale, RAM) la memoria secondaria i dispositivi di input/output La
Fondamenti di Informatica: Sistemi Operativi 1. Introduzione
Introduzione Fondamenti di Informatica: Sistemi Operativi 1 Elaboratori necessitano di SOFTWARE SOFTWARE DI SISTEMA (SISTEMI OPERATIVI): fanno funzionare le varie componenti del computer e permettono all
I Processi. Il Concetto di Processo
I Processi Il Concetto di Processo Il processo è un programma in esecuzione È l unità di esecuzione all interno del SO Solitamente, l esecuzione di un processo è sequenziale (le istruzioni vengono eseguite
Modelli di programmazione parallela
Modelli di programmazione parallela Oggi sono comunemente utilizzati diversi modelli di programmazione parallela: Shared Memory Multi Thread Message Passing Data Parallel Tali modelli non sono specifici
