Gestione della Memoria Principale
|
|
|
- Vittoria Corona
- 10 anni fa
- Просмотров:
Транскрипт
1 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 logico vs fisico 1 nsec 2 nsec 10 nsec Registers Cache Main memory <1 KB 1 MB MB Allocazione contigua 10 msec Magnetic disk 5-50 GB Paginazione 100 sec Magnetic tape GB Segmentazione La parte del sistema operativo che gestisce la memoria principale si chiama memory manager In alcuni casi, il memory manager pu gestire anche parte della memoria secondaria, al fine di emulare memoria principale 1 2 Fondamenti Dal codice sorgente al codice eseguibile La gestione della memoria mira a soddisfare i seguenti requisiti: Organizzazione logica: allocare e deallocare memoria ai processi su richiesta trattando i vari tipi di memoria (cache, main, dischi) come un unica entita Per capire meglio il funzionamento del MM rivediamo le fasi di gestione del codice source program Organizzazione fisica: tenere traccia della memoria libera e occupata compiler or assembler object compile time other module object Binding: mappare indirizzi logici in indirizzi fisici modules linkage editor load load Protezione: coordinare l accesso alla memoria da parte dei processi utente e di sistema library module loader time dynamically loaded Condivisione: aumentare l efficienza nella gestione della risorsa memoria library dynamic linking in-memory binary memory image execution time (run time) 3 4
2 Dal codice sorgente al codice eseguibile Indirizzi logici e indirizzi fisici Compile-time Compilazione: il codice scritto nel linguaggio ad alto livello viene tradotto in codice in linguaggio macchina Linking: il codice delle librerie importate viene incluso nel codice oggetto Load-time il codice binario viene caricato in memoria principale Execution-time il codice oggetto viene eseguito dalla CPU (che puo inviare richieste di lettura scrittura alla memoria principale) Spazio di indirizzamento logico ogni processo associato ad uno spazio di indirizzamento logico gli indirizzi usati in un processo sono indirizzi logici, ovvero riferimenti a questo spazio di indirizzamento (in generale indirizzi logici = indirizzi di memoria generati dalla CPU) Spazio di indirizzamento fisico ad ogni indirizzo logico corrisponde un indirizzo fisico il sistema operativo (e/o hardware) si occupa della traduzione da indirizzi logici a indirizzi fisici 5 6 Binding durante la compilazione Binding Con il termine binding si indica l associazione di indirizzi di memoria ai dati e alle istruzioni di un programma Gli indirizzi vengono calcolati al momento della compilazione e resteranno gli stessi ad ogni esecuzione del programma Il codice generato viene detto codice assoluto Il binding pu avvenire durante la compilazione durante il caricamento durante l esecuzione Il codice deve essere ricompilato ogni volta che si cambia locazione di esecuzione Ad es codice per microcontrollori o per il kernel É semplice e veloce e non richiede hardware speciale ma non funziona con la multiprogrammazione 7 8
3 Binding durante il caricamento Il codice generato dal compilatore non contiene indirizzi assoluti ma relativi (solitamente rispetto ad un indirizzo base) Binding durante l esecuzione Questo tipo di codice viene detto rilocabile Il programma loader si preoccupa di aggiornare tutti i riferimenti agli indirizzi di memoria coerentemente al punto iniziale di caricamento l individuazione dell indirizzo di memoria effettivo viene effettuata durante l esecuzione da un componente hardware apposito: la memory management unit (MMU) Permette di gestire multiprogrammazione e non richiede uso di hardware particolare Il programma può essere spostato da una zona all altra della memoria durante l esecuzione Richiede una traduzione degli indirizzi da parte del loader, e quindi un formato particolare dei file eseguibili 9 10 Esempi di MMU Esempi di MMU L esempio piu semplice di MMU si basa sul registro di rilocazione Se il valore del registro di rilocazione R, uno spazio logico 0Max viene tradotto in uno spazio fisico RR+MAX Esempio: processori Intel 80x86 Un altro esempio di MMU si basa sui registri di rilocazione e di limite il registro limite viene utilizzato per implementare meccanismi di protezione della memoria es se l indirizzo logico e > del valore del registro limite si genera un errore se si passa il test con il registro limite si utilizza il registro di rilocazione per calcolare l indirizzo fisico 11 12
4 Struttura generale della MMU Loading (caricamento) dinamico Relative address Base Register Process Control Block consente di poter caricare alcune routine di libreria solo quando vengono richiamate Bounds Register Adder Comparator Absolute address Program Tutte le routine a caricamento dinamico risiedono su un disco (codice rilocabile), quando servono vengono caricate Le routine poco utili (eg, casi di errore rari) non vengono caricate in Interrupt to operating Data memoria al caricamento dell applicazione Spetta al programmatore utilizzare questa possibilita Stack Process image in main memory Il sistema operativo fornisce semplicemente una libreria che implementa le funzioni di caricamento dinamico Linking (collegamento) dinamico Linking dinamico Linking statico se il linker collega e risolve tutti i riferimenti dei programmi le routine di libreria vengono copiate in ogni programma che le usa (eg printf in tutti i programmi C) Linking dinamico e possibile posticipare il linking delle routine di libreria al momento del primo riferimento durante l esecuzione consente di avere eseguibili pi compatti le librerie vengono implementate come codice reentrant: esiste una sola istanza della libreria in memoria e tutti i programmi eseguono il codice di questa istanza Vantaggi risparmio di memoria consente l aggiornamento automatico delle versioni delle librerie (le librerie aggiornate sono caricate alla successiva attivazione dei programmi) Svantaggi bisogna fare attenzione a tener traccia delle versioni richiede un supporto da parte del sistema operativo per far condividere segmenti di codice tra più processi Esempi: le so su Unix, le DLL su Windows 15 16
5 Allocazione - Definzioni Allocazione dei processi in memoria Allocazione contigua E una delle funzioni principali del gestore di memoria tutto lo spazio assegnato ad un programma deve essere formato da celle consecutive Consiste nel reperire ed assegnare uno spazio di memoria fisica a un programma che viene attivato Allocazione non contigua e possibile assegnare a un programma aree di memorie separate oppure per soddisfare ulteriori richieste effettuate dai programmi durante la loro esecuzione La MMU deve essere in grado di gestire la conversione degli indirizzi in modo coerente Esempio: la MMU basata su rilocazione gestisce solo l allocazione contigua Allocazione contigua a Partizionamento Fissato Allocazione statica Allocazione statica e dinamica La memoria disponibile (quella non occupata dal so) partizioni (di dimensione fissata) viene suddivisa in un programma deve mantenere la propria aerea di memoria dal caricamento alla terminazione non e possibile rilocare il programma durante l esecuzione Allocazione dinamica durante l esecuzione, un programma puo essere spostato all interno della memoria Ogni processo viene caricato in una delle partizioni libere che ha dimensione sufficiente a contenerlo E uno schema di allocazione contigua e statica Esempio: Spazio di indizzi del sistema operativo: [0-R] (parte bassa della memoria) Processi utente: [R+1-Max] 19 20
6 Gestione Partizioni - Code di input Frammentazione Interna Se la dimensione della partizione allocata ad un processo è superiore a quella necessaria al processo la parte di memoria rimanente viene sprecato Questo fenomeno viene chiamato frammentazione interna A causa di questo problema questo tipo di allocazione viene utilizzato solo per sistemi embedded 21 Il sistema operativo puo utilizzare delle code di input per scegliere come allocare le partizioni ai processi Quando arriva un processo, gli viene allocata completamente una partizione tra quelle libere Se si utilizza una coda per ogni partizione si corre il rischio si sottoutilizzare memoria Se si mantiene una sola coda per tutte le partizioni si pone il problema della mappatura processo partizione Ci sono varie strategie: First-fit: per ogni partizione si seleziona il primo processo nella coda con dimensione minore uguale della dimensione della partizione Best-fit: per ogni partizione si seleziona il processo piu grande tra i processi nella coda che hanno dimensione minore uguale della dimensione della partizione 22 Multiple input queues Partition 4 800K 700K Partition 4 Allocazione contigua a Partizionamento Dinamico I processi vengono sempre allocati in uno spazio contiguo di celle Partition 3 Single input queue Partition 3 La memoria disponibile (nella quantita richiesta) viene assegnata ai processi che ne fanno richiesta 400K Partition 2 Partition 1 Operating (a) 200K 100K 0 Partition 2 Partition 1 Operating (b) Nella memoria possono essere presenti diverse zone inutilizzate: per effetto della terminazione di processi oppure per non completo utilizzo dell area disponibile da parte dei processi attivi Il sistema operativo deve mantenere traccia delle partizioni allocate e degli spazi liberi 23
7 Esempio Time Frammentazione Esterna B C B C B C B C C A Dopo un certo numero di allocazioni e deallocazioni di memoria dovute all attivazione e alla terminazione dei processi lo spazio libero appare suddiviso in piccole aree A A A D D D Operating Operating Operating Operating Operating Operating Operating E il fenomeno della frammentazione esterna (a) (b) (c) (d) (e) (f) (g) 24 Compattazione Se e possibile rilocare i programmi durante la loro esecuzione, e allora possibile procedere alla compattazione della memoria Allocazione dinamica - Strutture dati Compattare la memoria significa spostare in memoria tutti i programmi in modo da riunire tutte le aree inutilizzate E un operazione volta a risolvere il problema della frammentazione esterna Quando la memoria assegnata dinamicamente abbiamo bisogno di una struttura dati per mantenere informazioni sulle zone libere e sulle zone occupate E un operazione molto onerosa: occorre copiare (fisicamente) in memoria grandi quantit di dati Strutture dati possibili: mappe di bit, liste con puntatori Non puo essere utilizzata in sistemi interattivi: fermi durante la compattazione i processi devono essere 25 26
8 Mappa di bit Liste di puntatori Struttura dati La memoria viene suddivisa in unit di allocazione ad ogni unit di allocazione corrisponde un bit in una bitmap Le unit libere sono associate ad un bit di valore 0, le unit occupate sono associate ad un bit di valore 1 La mappa di bit ha una dimensione fissa e calcolabile a priori per individuare uno spazio di memoria di dimensione k unita, e necessario cercare una sequenza di k bit 0 consecutivi Struttura dati Si mantiene una lista dei blocchi allocati e liberi di memoria Ogni elemento della lista specifica Se si tratta di un processo (P) o di un blocco libero (hole, H) la dimensione (inizio/fine) del segmento Allocazione: Quando un blocco libero viene selezionato viene suddiviso in due parti: un blocco processo della dimensione desiderata e un blocco libero con quanto rimane del blocco iniziale in generale, tale operazione e O(m), dove m rappresenta il numero di unit di allocazione 27 Deallocazione: A seconda dei blocchi vicini, lo spazio liberato puo creare un nuovo blocco libero, oppure essere accorpato ai blocchi vicini 28 Allocazione dinamica - Selezione blocco libero Allocazione contigua: esempi di allocazione L operazione di selezione di un blocco libero dalla struttura dati concettualmente indipendente 8K 12K First Fit 8K 12K First-fit: Alloca il primo spazio libero sufficientemente grande 22K Best Fit 6K Next-fit: Alloca il primo spazio libero sufficientemente grande a partire dall ultimo usato Last allocated block (14K) 18K 2K Best-fit: Alloca il più piccolo spazio libero sufficientemente grande Deve scandire l intera lista (a meno che non sia ordinata) Produce il più piccolo spazio libero di scarto 8K 6K 8K 6K Allocated block Worst-fit: Alloca il più grande spazio libero sufficientemente grande Deve scandire l intera lista (a meno che non sia ordinata) Produce il più grande spazio libero di scarto 14K Free block Next Fit 14K In generale, gli algoritmi migliori sono il first-fit e il next-fit Best-fit tende a frammentare molto Worst-fit è più lento 36K (a) Before 20 K (b) After 29 30
9 Paginazione Allocazione non contigua: Paginazione I meccanismi visti fino ad ora (partizionamento fisso/dinamico) non sono efficienti nell uso della memoria (frammentazione interna/esterna) La paginazione e l approccio utilizzato nei SO moderni per ridurre il fenomeno di frammentazione interna e minimizzare il fenomeno della frammentazione esterna Attenzione pero : necessita di hardware adeguato Paginazione - Definizione Lo spazio di indirizzamento logico di un processo viene suddiviso in un insieme di blocchi di dimensione fissa chiamati pagine Il SO tiene traccia dei frame liberi La memoria fisica viene suddivisa in un insieme di blocchi della stessa dimensione delle pagine, chiamati frame Per eseguire un programma di n pagine, servono n frame liberi in cui caricare il programma Quando un processo viene allocato in memoria: Il SO mantiene quindi anche una Page Table (tabella delle pagine) per tradurre indirizzi logici in indirizzi fisici vengono reperiti ovunque in memoria un numero sufficiente di frame per contenere le pagine del processo 33
10 Esempio di paginazione frame number page 0 page page 0 Schema di traduzione degli indirizzi page L indirizzo generato dalla CPU viene diviso in page 3 logical memory 3 4 page 2 page 1 Numero di pagina p: usato come indice in una che contiene il numero del frame contenente la pagina p 5 6 Offset di pagina d: combinato con il numero di frame fornisce l indirizzo fisico da inviare alla memoria 7 page 3 physical memory Paginazione: condivisione logical address physical address La paginazione permette la condivisione del codice CPU p d f d physical memory Una sola copia di codice read-only può essere condivisa tra più processi Il codice deve essere rientrante (separare codice eseguibile da record di attivazione) Es: editors, shell, compilatori, p f Il codice condiviso appare nelle stesse locazioni logiche per tutti i processi che vi accedono Ogni processo mantiene una copia separata dei proprî dati 36
11 ed 1 ed 2 ed data 1 data 3 Paginazione: protezione data 1 process P 1 for P 1 ed 1 ed 2 ed ed 1 ed 2 ed 3 La protezione della memoria è implementata associando bit di protezione ad ogni frame Valid bit collegato ad ogni entry nella ed 1 ed 2 ed 3 data for P 3 data 2 process P 2 for P data 2 valid = indica che la pagina associata è nello spazio logico del processo, e quindi è legale accedervi invalid = indica che la pagina non è nello spazio logico del processo violazione di indirizzi (Segment violation) process P 3 37 Segmentazione In un sistema con segmentazione la memoria associata ad un programma suddivisa in aree differenti (segmenti) dal punto di vista funzionale aree text: Allocazione non contigua: Segmentazione contengono il codice eseguibile e sono normalmente in sola lettura (solo i virus cambiano il codice) possono essere condivise tra piu processi (codice reentrant) aree dati: possono essere condivise oppure no area stack: non puo assolutamente essere condivisa 38 39
12 Segmentazione Architettura della Segmentazione In un sistema basato su segmentazione Un indirizzo logico consiste in un coppia nome-segmento, offset uno spazio di indirizzamento logico e dato da un insieme di segmenti un segmento e un area di memoria (logicamente continua) contenente elementi tra loro affini ogni segmento e caratterizzato da un nome (normalmente un indice) e da una lunghezza ogni riferimento di memoria e dato da una coppia nome segmento, offset Spetta al programmatore o al compilatore la suddivisione di un programma in segmenti 40 La segment table mappa gli indirizzi bidimensionali dell utente negli indirizzi fisici unidimensionali Ogni entry ha base: indirizzo fisico di inizio del segmento limit: lunghezza del segmento Il Segment-table base register (STBR) punta all inizio della tabella dei segmenti Il Segment-table length register (STLR) indica il numero di segmenti usati dal programma Il nome-segmento s è legale solo se s < STLR 41 Hardware per la segmentazione Rilocazione Architettura della Segmentazione (cont) s dinamica, attraverso tabella dei segmenti limit base Condivisione CPU s d segment table interi segmenti possono essere condivisi Allocazione gli stessi algoritmi dell allocazione contigua yes < + frammentazione esterna; non c è frammentazione interna no Protezione: ad ogni entry nella segment table si associa bit di validità: 0 segmento illegale privilegi di read/write/execute trap; addressing error physical memory I segmenti possono cambiare di lunghezza durante l esecuzione (es lo stack): problema di allocazione dinamica di memoria 42 43
13 editor Segmentazione vs Paginazione segment 0 data 1 segment 1 logical memory process P limit base segment table process P editor data 1 Paginazione la divisione in pagine automatica le pagine hanno dimensione fissa editor data 2 le pagine possono contenere informazioni disomogenee (ad es sia codice sia dati) segment una pagina ha un indirizzo data 2 segment 1 logical memory process P limit base segment table process P 2 physical memory dimensione tipica della pagina: 1-4 KB Partizionamento, Paginazione, Segmentazione Segmentazione Relative address = Logical address = Page# = 1, Offset = Logical address = Segment# = 1, Offset = la divisione in segmenti spetta al programmatore i segmenti hanno dimensione variabile Page 0 Segment bytes un segmento contiene informazioni omogenee per tipo di accesso e permessi di condivisione un segmento ha un nome User process (2700 bytes) Page Segment bytes 752 dimensione tipica di un segmento: 64KB - 1MB (a) Partitioning Page 2 (b) Paging (page size = 1K) Internal fragmentation (c) Segmentation 46
14 16-bit logical address 6-bit page # 10-bit offset Indirizzi usati nella paginazione Spazio di indirizzi logici = 2 m Dimensione di pagina = 2 n Numero di pagine = 2 m n m n bit più significativi di un indirizzo logico per il numero di pagina n bit meno significativi per offset 4-bit segment # Process 16-bit logical address 12-bit offset (a) Paging bit physical address Length Base Process segment table (b) Segmentation 16-bit physical address Implementazione della Page Table Idealmente, la dovrebbe stare in registri veloci della MMU Costoso al context switch (salvataggio/ripristino di tutta la tabella) Implementazione e Combinazione di Tecniche Improponibile se il numero delle pagine è elevato Es: indirizzi virtuali a 32 bit, pagine di 4K (2 12 ): ci sono 2 20 > 10 6 entry Se usiamo 2byte per ogni entry (max RAM = 256M) abbiamo bisogno di 2 21 = 2M in registri La viene tenuta in memoria principale Page-table base register (PTBR) punta all inizio della Page-table length register (PTLR) indica il numero di entry della page table 47 48
15 Paginazione con in memoria Virtual Address Page # Offset Frame # Register Page Table Ptr Offset Paginazione con in memoria (cont) Rimane comunque un grande consumo di memoria (1 per ogni processo) Nell es di prima: 100 processi 200M in s (su 256MB RAM complessivi) + P# Page Table Frame # Program Paging Main Memory Offset Page Frame Ogni accesso a dati/istruzioni richiede 2 accessi alla memoria: uno per la e uno per i dati/istruzioni degrado del 100% Il doppio accesso alla memoria si riduce con una cache dedicata per le entry delle s: registri associativi detti anche translation look-aside buffer (TLB) Registri Associativi (TLB) Virtual Address Main Memory Secondary Memory Traduzione indirizzo logico (A, A ) con TLB Page # Offset Translation Lookaside Buffer TLB hit Offset Il virtual page number A viene confrontato con tutte le entry contemporaneamente Se A è nel TLB (TLB hit), si usa il frame # nel TLB TLB miss Page Table Load page Altrimenti, la MMU esegue un normale lookup nelle in memoria, e sostituisce una entry della TLB con quella appena trovata Frame # Offset Real Address Il SO viene informato solo nel caso di un page fault Page fault 51 52
16 Variante: software TLB Tempo effettivo di accesso con TLB I TLB miss vengono gestiti direttamente dal SO nel caso di una TLB miss, la MMU manda un interrupt al processore (TLB fault) ɛ = tempo del lookup associativo t = tempo della memoria si attiva una apposita routine del SO, che gestisce le e la TLB esplicitamente Abbastanza efficiente con TLB suff grandi ( 64 entries) MMU estremamente semplice lascia spazio sul chip per ulteriori cache Molto usato (SPARC, MIPS, Alpha, PowerPC, HP-PA, Itanium ) α = Hit ratio: percentuale dei page # reperiti nel TLB (dipende dalla grandezza del TLB, dalla natura del programma ) EAT = (t + ɛ)α + (2t + ɛ)(1 α) = (2 α)t + ɛ In virtù del principio di località, l hit ratio è solitamente alto Con t = 50ns, ɛ = 1ns, α = 098 si ha EAT/t = Paginazione a più livelli Per ridurre l occupazione della, si pagina la stessa In questo modo solo le pagine effettivamente usate sono allocate in memoria RAM outer-page table page of memory 55
17 Esempio di paginazione a due livelli logical address p 1 p 2 d Un indirizzo logico (a 32 bit con pagine da 4K) è diviso in un numero di pagina consistente in 20 bit p 1 un offset di 12 bit p 2 La è paginata, quindi il numero di pagina è diviso in outer-page table d un directory number di 10 bit un page offset di 10 bit page of 56 Performance della paginazione a più livelli Dato che ogni livello è memorizzato in RAM, la conversione dell indirizzo logico in indirizzo fisico può necessitare di 4 accessi alla memoria (in caso di TLB miss: lookup in TLB, 2 accessi alla RAM per la rilocazione, 1 accesso per leggere la casella di memoria) Il caching degli indirizzi di pagina permette di ridurre drasticamente l impatto degli accessi multipli Ad esempio se in caso di TLB miss servono 5 accessi alla memoria (ad es 4 livelli di page tabling) EAT = α(t + ɛ) + (1 α)(5t + ɛ) = ɛ + (5 4α)t Nell esempio di prima, con un hit rate del 98%: EAT/t = 11: 10% di degrado Schema molto adottato da CPU a 32 bit (IA32 (Pentium), 68000, SPARC a 32 bit, ) Tabella delle pagine invertita Una tabella con una entry per ogni frame, non per ogni page Ogni entry consiste nel numero della pagina (virtuale) memorizzata in quel frame, con informazioni riguardo il processo che possiede la pagina Diminuisce la memoria necessaria per memorizzare le, ma aumenta il tempo di accesso alla tabella Questo schema è usato su diversi RISC a 32 bit (PowerPC), e tutti quelli a 64 bit (UltraSPARC, Alpha, HPPA, ), ove una occuperebbe petabytes (es: a pagine da 4k: = 32PB per ogni ) 57 58
18 Tabella delle pagine invertita con hashing Per ridurre i tempi di ricerca nella tabella invertita, si usa una funzione di hash (hash table) per limitare l accesso a poche entry (1 o 2, solitamente) CPU logical address pid p d i d physical address physical memory Virtual Address Page # Offset Page # Page Table Entry Chain search i (hash) pid p Frame # Hash Table Inverted Page Table Frame # Offset Real Address 59 Segmentazione con paginazione: MULTICS Segmentazione con paginazione a 2 livelli: la IA32 logical address logical address selector offset s d descriptor table Il MULTICS ha risolto il problema della frammentazione esterna paginando i segmenti Permette di combinare i vantaggi di entrambi gli approcci A differenza della pura segmentazione, nella segment table ci sono gli indirizzi base delle dei segmenti + STBR segment length page table base segment table trap no + f f d' for segment s yes p d d' physical address memory page directory base register segment descriptor linear address directory page offset page directory directory entry + entry page frame physical address 60 61
19 Sommario sulle strategie della Gestione della Memoria Supporto Hardware: da registri per base-limite a tabelle di mappatura per segmentazione e paginazione Sommario sulle strategie della Gestione della Memoria (Cont) Performance: maggiore compessità del sistema, maggiore tempo di traduzione Un TLB può ridurre sensibilmente l overhead Frammentazione: la multiprogrammazione aumenta l efficienza temporale Massimizzare il num di processi in memoria richiede ridurre spreco di memoria non allocabile Due tipi di frammentazione Rilocazione: la compattazione è impossibile con binding statico/al load time; serve la rilocazione dinamica Condivisione: permette di ridurre lo spreco di memoria e quindi aumentare la multiprogrammazione Generalmente, richiede paginazione e/o segmentazione Altamente efficiente, ma complesso da gestire (dipendenze sulle versioni) Protezione: modalità di accesso associate a singole sezioni dello spazio del processo, in caso di segmentazione/paginazione Permette la condivisione e l identificazione di errori di programmazione 62 63
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
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
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,
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à
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. 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
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
Gestione della memoria centrale
Gestione della memoria centrale Un programma per essere eseguito deve risiedere in memoria principale e lo stesso vale per i dati su cui esso opera In un sistema multitasking molti processi vengono eseguiti
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
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)
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:
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.
Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1
IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza
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
Corso di Sistemi di Elaborazione delle informazioni
Corso di Sistemi di Elaborazione delle informazioni Sistemi Operativi Francesco Fontanella Complessità del Software Software applicativo Software di sistema Sistema Operativo Hardware 2 La struttura del
Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione
IMPLEMENTAZIONE DEL FILE SYSTEM 9.1 Implementazione del File System Struttura del File System Implementazione Implementazione delle Directory Metodi di Allocazione Gestione dello spazio libero Efficienza
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
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
12. Implementazione di un File System. 12.1.1 Struttura a livelli. 12.2.1 Allocazione contigua
12. Implementazione di un File System 1 Struttura del file system Metodi di allocazione Gestione dello spazio libero Implementazione delle directory Prestazioni ed efficienza 2 Utente 12.1.1 Struttura
Sistemi Operativi Il Sistema Operativo Windows (parte 3)
Sistemi Operativi Il Sistema Operativo Windows (parte 3) Docente: Claudio E. Palazzi [email protected] Crediti per queste slides al Prof. Tullio Vardanega Architettura di NTFS 1 NTFS file system adottato
Memoria Virtuale. Anche la memoria principale ha una dimensione limitata. memoria principale (memoria fisica) memoria secondaria (memoria virtuale)
Memoria Virtuale Anche la memoria principale ha una dimensione limitata. Possiamo pensare di superare questo limite utilizzando memorie secondarie (essenzialmente dischi) e vedendo la memoria principale
I Thread. I Thread. I due processi dovrebbero lavorare sullo stesso testo
I Thread 1 Consideriamo due processi che devono lavorare sugli stessi dati. Come possono fare, se ogni processo ha la propria area dati (ossia, gli spazi di indirizzamento dei due processi sono separati)?
Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione.
Con il termine Sistema operativo si fa riferimento all insieme dei moduli software di un sistema di elaborazione dati dedicati alla sua gestione. Compito fondamentale di un S.O. è infatti la gestione dell
Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa. Raccolta prove scritte. Prova scritta
Corso di Sistemi Operativi Ingegneria Elettronica e Informatica prof. Rocco Aversa Raccolta prove scritte Realizzare una classe thread Processo che deve effettuare un numero fissato di letture da una memoria
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
La Gestione delle risorse Renato Agati
Renato Agati delle risorse La Gestione Schedulazione dei processi Gestione delle periferiche File system Schedulazione dei processi Mono programmazione Multi programmazione Gestione delle periferiche File
Il Software. Il software del PC. Il BIOS
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:
Calcolatori Elettronici. La memoria gerarchica La memoria virtuale
Calcolatori Elettronici La memoria gerarchica La memoria virtuale Come usare la memoria secondaria oltre che per conservare permanentemente dati e programmi Idea Tenere parte del codice in mem princ e
Architettura dei calcolatori II parte Memorie
Università degli Studi di Palermo Dipartimento di Ingegneria Informatica Informatica ed Elementi di Statistica 3 c.f.u. Anno Accademico 2010/2011 Docente: ing. Salvatore Sorce Architettura dei calcolatori
1. Spiegare le differenze fra le seguenti modalità di binding degli indirizzi:
1. Spiegare le differenze fra le seguenti modalità di binding degli indirizzi: compile time, load time, execution time. Quale delle modalità precedenti necessita di un supporto hardware per poter essere
Laboratorio di Informatica
per chimica industriale e chimica applicata e ambientale LEZIONE 4 - parte II La memoria 1 La memoriaparametri di caratterizzazione Un dato dispositivo di memoria è caratterizzato da : velocità di accesso,
Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.
I Sistemi Operativi Il Software di Base Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer. Il sistema operativo è il gestore di tutte le risorse
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
Secondo biennio Articolazione Informatica TPSIT Prova Quarta
Sistema operativo: gestione memoria centrale La Memoria Virtuale consente di superare i limiti della Memoria Centrale : A. no B. a volte C. si, ma non sempre e' adeguata D. si, attraverso tecniche di gestione
Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo
Sistema Operativo Fondamenti di Informatica 1 Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al
Architettura dei computer
Architettura dei computer In un computer possiamo distinguere quattro unità funzionali: il processore (CPU) la memoria principale (RAM) la memoria secondaria i dispositivi di input/output Il processore
Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1
GESTIONE DELLA MEMORIA SECONDARIA 11.1 Memoria Secondaria Struttura del disco Scheduling del disco Gestione del disco Gestione dello spazio di swap Struttura RAID Affidabilità Implementazione della memoria
Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco
GESTIONE DELLA MEMORIA SECONDARIA 11.1 Memoria Secondaria Struttura del disco Scheduling del disco Gestione del disco Gestione dello spazio di swap Struttura RAID Affidabilità Implementazione della memoria
Sistemi Operativi Kernel
Approfondimento Sistemi Operativi Kernel Kernel del Sistema Operativo Kernel (nocciolo, nucleo) Contiene i programmi per la gestione delle funzioni base del calcolatore Kernel suddiviso in moduli. Ogni
Il Sistema Operativo
Il Sistema Operativo Il Sistema Operativo Il Sistema Operativo (S.O.) è un insieme di programmi interagenti che consente agli utenti e ai programmi applicativi di utilizzare al meglio le risorse del Sistema
Architettura hardware
Architettura dell elaboratore Architettura hardware la parte che si può prendere a calci Sistema composto da un numero elevato di componenti, in cui ogni componente svolge una sua funzione elaborazione
La memoria centrale (RAM)
La memoria centrale (RAM) Mantiene al proprio interno i dati e le istruzioni dei programmi in esecuzione Memoria ad accesso casuale Tecnologia elettronica: Veloce ma volatile e costosa Due eccezioni R.O.M.
Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1
MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati
MECCANISMI E POLITICHE DI PROTEZIONE 13.1
MECCANISMI E POLITICHE DI PROTEZIONE 13.1 Protezione Obiettivi della Protezione Dominio di Protezione Matrice di Accesso Implementazione della Matrice di Accesso Revoca dei Diritti di Accesso Sistemi basati
Gestione della memoria centrale
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Facoltà di Ingegneria Università degli Studi di Udine Gestione della memoria centrale 2000 Pier Luca Montessoro (si veda la nota di copyright alla slide
9. Memoria Virtuale. 9. Memoria Virtuale. 9. Memoria Virtuale
1 (es. 1) Consideriamo un processo con m frame inizialmente vuoti. La stringa di riferimento è lunga p e contiene riferimenti a n pagine diverse. Per un qualsiasi algoritmo di rimpiazzamento: a) qual è
SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09
SISTEMI OPERATIVI Prof. Enrico Terrone A. S: 2008/09 Che cos è il sistema operativo Il sistema operativo (SO) è il software che gestisce e rende accessibili (sia ai programmatori e ai programmi, sia agli
STRUTTURE DEI SISTEMI DI CALCOLO
STRUTTURE DEI SISTEMI DI CALCOLO 2.1 Strutture dei sistemi di calcolo Funzionamento Struttura dell I/O Struttura della memoria Gerarchia delle memorie Protezione Hardware Architettura di un generico sistema
Hardware di un Computer
Hardware di un Computer Monitor Mouse Tastiera Printer Disk CPU Graphics Adapter USB Controller Parallel Port Disk Controller BUS Memoria RAM Memoria ROM (BIOS) DMA CPU esegue istruzioni, effettua calcoli,
Il sistema operativo. Sistema operativo. Multiprogrammazione. Il sistema operativo. Gestione della CPU
Il sistema operativo Sistema operativo Gestione della CPU Primi elaboratori: Monoprogrammati: un solo programma in memoria centrale Privi di sistema operativo Gestione dell hardware da parte degli utenti
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
Organizzazione della memoria
Memorizzazione dati La fase di codifica permette di esprimere qualsiasi informazione (numeri, testo, immagini, ecc) come stringhe di bit: Es: di immagine 00001001100110010010001100110010011001010010100010
Tesina per l esame di Sistemi Operativi a cura di Giuseppe Montano. Prof. Aldo Franco Dragoni
Sistemi operativi real time basati su Linux: gestione delle risorse e dei processi. Tesina per l esame di Sistemi Operativi a cura di. Prof. Aldo Franco Dragoni Corso di laurea in Ingegneria Informatica
Il Sistema Operativo (1)
E il software fondamentale del computer, gestisce tutto il suo funzionamento e crea un interfaccia con l utente. Le sue funzioni principali sono: Il Sistema Operativo (1) La gestione dell unità centrale
Modello dei processi. Riedizione delle slide della Prof. Di Stefano
Modello dei processi Riedizione delle slide della Prof. Di Stefano 1 Processi Modello di Processi asincroni comunicanti Process Scheduling Operazioni sui Processi Cooperazione tra Processi Interprocess
1.4b: Hardware. (Memoria Centrale)
1.4b: Hardware (Memoria Centrale) Bibliografia Curtin, Foley, Sen, Morin Informatica di base, Mc Graw Hill Ediz. Fino alla III : cap. 3.11, 3.13 IV ediz.: cap. 2.8, 2.9 Questi lucidi Memoria Centrale Un
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
Il file system. meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate. in memoria di massa
Il File System 1 Il file system E quella componente del SO che fornisce i meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate in memoria di massa Realizza i concetti astratti
Il calcolatore elettronico. Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi
Il calcolatore elettronico Parte dei lucidi sono stati gentilmente forniti dal Prof. Beraldi Introduzione Un calcolatore elettronico è un sistema elettronico digitale programmabile Sistema: composto da
Architettura del calcolatore
Architettura del calcolatore La prima decomposizione di un calcolatore è relativa a due macro-componenti: Hardware Software Architettura del calcolatore L architettura dell hardware di un calcolatore reale
Architettura dei calcolatori e sistemi operativi. Assemblatore e Collegatore (Linker) Capitolo 2 P&H Appendice 2 P&H
Architettura dei calcolatori e sistemi operativi Assemblatore e Collegatore (Linker) Capitolo 2 P&H Appendice 2 P&H Sommario Il processo di assemblaggio Il collegatore (linker) 2 Assemblatore: traduzione
Sistemi Operativi (modulo di Informatica II) I processi
Sistemi Operativi (modulo di Informatica II) I processi Patrizia Scandurra Università degli Studi di Bergamo a.a. 2009-10 Sommario Il concetto di processo Schedulazione dei processi e cambio di contesto
Sistemi Operativi (modulo di Informatica II)
Sistemi Operativi (modulo di Informatica II) Implementazione del file system Patrizia Scandurra Università degli Studi di Bergamo a.a. 2011-12 Implementazione del File System Sommario Realizzazione del
File system II. Sistemi Operativi Lez. 20
File system II Sistemi Operativi Lez. 20 Gestione spazi su disco Esiste un trade-off,tra spreco dello spazio e velocità di trasferimento in base alla dimensione del blocco fisico Gestione spazio su disco
La gestione della memoria
La gestione della memoria Nella gestione della memoria il sistema operativo deve perseguire l'obiettivo di allocare il maggior numero di processi in memoria centrale per aumentare la probabilità che ci
Il SOFTWARE DI BASE (o SOFTWARE DI SISTEMA)
Il software Software Il software Il software è la sequenza di istruzioni che permettono ai computer di svolgere i loro compiti ed è quindi necessario per il funzionamento del calcolatore. Il software può
Introduzione alle tecnologie informatiche. Strumenti mentali per il futuro
Introduzione alle tecnologie informatiche Strumenti mentali per il futuro Panoramica Affronteremo i seguenti argomenti. I vari tipi di computer e il loro uso Il funzionamento dei computer Il futuro delle
INFORMATICA. Il Sistema Operativo. di Roberta Molinari
INFORMATICA Il Sistema Operativo di Roberta Molinari Il Sistema Operativo un po di definizioni Elaborazione: trattamento di di informazioni acquisite dall esterno per per restituire un un risultato Processore:
Il Software e Il Sistema Operativo. Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10
Il Software e Il Sistema Operativo Prof. Francesco Accarino IIS Altiero Spinelli A.S. 09/10 Cosa Impareremo Programmi e Processi Struttura del Sistema Operativo Sviluppo di Programmi I files e la loro
Architettura di un sistema di calcolo
Richiami sulla struttura dei sistemi di calcolo Gestione delle Interruzioni Gestione della comunicazione fra processore e dispositivi periferici Gerarchia di memoria Protezione. 2.1 Architettura di un
AXO. Operativi. Architettura dei Calcolatori e Sistemi. memoria virtuale
AXO Architettura dei Calcolatori e Sistemi Operativi memoria virtuale concetto di memoria virtuale Separare il concetto di: spazio di indirizzamento di un programma eseguibile e dimensione effettiva della
Sistemi Operativi. Organizzazione logica ed implementazione di un File System
Modulo di Sistemi Operativi per il corso di Master RISS: Ricerca e Innovazione nelle Scienze della Salute Unisa, 17-26 Luglio 2012 Sistemi Operativi Organizzazione logica ed implementazione di un File
Memoria Virtuale. Lezione 29 Sistemi Operativi
Memoria Virtuale Lezione 29 Sistemi Operativi I Principi Abbiamo sinora assunto che durante l esecuzione di un programma, lo stesso debba risiedere completamente in MC Intorno alla metà degli anni 70 viene
Il File System. Il file system
Il File System Il file system Parte di SO che fornisce i meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate in memoria di massa Realizza i concetti astratti di file:
Corso di Informatica
Corso di Informatica Modulo T2 3-Compilatori e interpreti 1 Prerequisiti Principi di programmazione Utilizzo di un compilatore 2 1 Introduzione Una volta progettato un algoritmo codificato in un linguaggio
INFORMATICA 1 L. Mezzalira
INFORMATICA 1 L. Mezzalira Possibili domande 1 --- Caratteristiche delle macchine tipiche dell informatica Componenti hardware del modello funzionale di sistema informatico Componenti software del modello
La gestione di un calcolatore. Sistemi Operativi primo modulo Introduzione. Sistema operativo (2) Sistema operativo (1)
La gestione di un calcolatore Sistemi Operativi primo modulo Introduzione Augusto Celentano Università Ca Foscari Venezia Corso di Laurea in Informatica Un calcolatore (sistema di elaborazione) è un sistema
Architettura di un sistema operativo
Architettura di un sistema operativo Dipartimento di Informatica Università di Verona, Italy Struttura di un S.O. Sistemi monolitici Sistemi a struttura semplice Sistemi a livelli Virtual Machine Sistemi
Il Sistema Operativo. Introduzione di programmi di utilità. Elementi di Informatica Docente: Giorgio Fumera
CPU Memoria principale Il Sistema Operativo Elementi di Informatica Docente: Giorgio Fumera Corso di Laurea in Edilizia Facoltà di Architettura A.A. 2009/2010 ALU Unità di controllo Registri A indirizzi
Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory
FILE SYSTEM : INTERFACCIA 8.1 Interfaccia del File System Concetto di File Metodi di Accesso Struttura delle Directory Montaggio del File System Condivisione di File Protezione 8.2 Concetto di File File
