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

Dimensione: px
Iniziare la visualizzazioe della pagina:

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

Transcript

1 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 istruzione può a sua volta generare nuovi accessi alla memoria (load, store) Non ci interessa come un programma generi un indirizzo di memoria, ma solo cosa accade 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, veloce e costosa Cache: volatile, veloce, piccola e costosa La gerarchia di memorie è gestita dal memory manager (gestore della memoria) Tipica Gerarchia di Memoria Sia il tempo di accesso che la capacità sono approssimazioni abbastanza grossolane Modelli di gestione della memoria Tipicamente un programma risiede su disco in forma di binario eseguibile Per essere eseguito deve essere portato in RAM e divenire processo Modelli che non spostano i processi dalla RAM una volta iniziata l esecuzione monoprogrammazione multiprogrammazione a partizioni fisse Modelli che spostano un processo in esecuzione da RAM a disco swapping paginazione 5 Associazione degli indirizzi Tipicamente un programma risiede su disco in forma di binario eseguibile Per essere eseguito deve essere portato in RAM e divenire processo Durante la sua esecuzione, può ripetutamente essere traseferito disco RAM (coda d ingresso) Si seleziona uno dei processi in coda d ingresso e lo si porta in RAM Durante la sua esecuzione, un processo accede a istruzioni e dati in memoria Al suo termine, viene liberata la memoria che occupava Il programma può essere trasferito in qualsiasi putno della RAM prima di essere eseguito, un programma passa attraverso vari stadi in cui gli indirizzi vengono rappresentati in modi diversi 6

2 Associazione degli indirizzi Altri moduli oggetto Libreria di sistema Libreria di sistema caricata dinamicamente Programma sorgente Compilatore o assemblatore Modulo oggetto Editor dei collegamenti Modulo rilocabile Caricatore Modulo eseguibile Generalmente, gli indirizzi del programma sorgente sono simbolici (es.: nomi di variabili) Un compilatore associa (bind) questi indirizzi simbolici a indirizzi rilocabili (es.: byte dall inizio di questo modulo) L editor dei collegamenti linkage editor (o il caricatore loader) fa corrispondere questi indirizzi rilocabili a indirizzi assoluti 7 Associazione degli indirizzi In genere, l associazione istruzione/datiindirizzi di memoria si può compiere in qualsiasi momento Compilazione: se in questa fase si sa dove il processo risiederà in memoriasi può generare codice assoluto (i programmi MS-DOS con estension.com sono codice aasoluto generato in compilazione). Cosa succede se l indirizzo iniziale in RAM cambia???? Caricamento: se in compilazione non si sa dove andrà in memoria il processo, il compilatore genera codice rilocabile. In questo caso l associazione finale degli indirizzi avviene in fase di caricamento. Cosa succede se l indirizzo iniziale in RAM cambia???? Esecuzione: se in esecuzione il processo utente può essere spostato da una zona di memoria a un altra, l associazione degli indirizzi deve avvenire durante l esecuzione. Sono necessarie specifiche caratteristiche dell architettura. La maggior parte dei SO generici usa questo metodo 8 Indirizzi logici e fisici Un indirizzo generato dalla CPU è indicato solitamente come logico, mentre un indirizzo visto dalla memoria come fisico (questo indirizzo viene caricato nel MAR memory address register) Associando gli indirizzi in fase di compilazione: indirizzo logico indirizzo fisico???? Associando gli indirizzi in fase di caricamento: indirizzo logico indirizzo fisico???? Associando gli indirizzi in fase di esecuzione: indirizzo logico indirizzo fisico???? Nell ultimo caso gli indirizzi logici sono detti virtuali Spazio degli indirizzi logici: insieme di tutti gli indirizzi logici generati da un programma Spazio degli indirizzi fisici: insieme di tutti gli indirizzi fisici corrispondenti a quelli logici Indirizzi logici e fisici L associazione virtualifisici in fase d esecuzione è svolta dall unità di gestione della memoria (MMU memory management unit) Un esempio semplice di possibile funzionamento della MMU è come visto con i registri base (ora MMU detto di rilocazione) e limite CPU Indirizzo logico 6 Registro di rilocazione Indirizzo fisico 6 Memoria 9 0 La Memory Management Unit Indirizzi logici e fisici Il programma utente non considera MAI indirizzi fisici reali Solo quando un indirizzo logico (es.: 6) assume il ruolo di indirizzo di memoria (es.: load, store indiretta) e si compie effettivamente il riferimento, si effettua la conversione Il programma utente tratta indirizzi logici, mentre l architettura del sistema converte logicifisici Indirizzi logici vanno da 0 a max; quelli fisici da r+0 a r+max (con r contenuto registro di rilocazione) Organizzazione tipica dell hw: posizione e funzione della MMU

3 Caricamento dinamico Caricamento dinamico (dynamic loading): si carica una procedura in memoria solo quando viene chiamata Tutte le procedure si tengono su disco in formato rilocabile Se durante l esecuzione il programma ha bisogno di qualche procedura che non è caricata, la si carica Utile per grandi quantità di codice che gestiscono casi poco frequenti Collegamento dinamico Collegamento statico: le librerie di sistema sono collegate staticamente e combinate dal caricatore nell immagine binaria del programma Collegamento dinamico: si differisce il collegamento a tempo d esecuzione (soprattutto per librerie di sistema) Permette di salvare spazio (tutti i programmi di sistema dovrebbero avere incluse una copia delle librerie che usano) Invece, per ogni riferimento a una procedura di libreria s inserisce nell eseguibile una piccola porzione di codice (stub) che indica come localizzare la giusta procedura di libreria residente nella memoria o come caricarla se non in memoria In esecuzione, lo stub controlla se la libreria è in memoria (altrimenti provvede a caricarla) e sostituisce se stesso con l indirizzo della libreria, che viene eseguita Ogni riferimento successivo alla libreria, eseguirà la stessa procedura di libreria appena caricata Tutti i processi che riferiscono quella libreria, eseguiranno la stessa copia Collegamento dinamico Vantaggi: una libreria si può aggiornare senza problemi Senza il collegamento dinamico, tutti i programmi che usano la libreria aggiornata devono subire una nuova fase di collegamento Librerie condivise: è possibile avere diverse versioni della stessa libreria Nel programma e nella libreria ci sono informazioni relative alla versione per evitare che i programmi usino versioni incompatibili di librerie Solo i programmi compilati per la nuova versione della libreria la utilizzeranno 5 Sovrapposizione di sezioni Overlay: permette a un processo di essere più grande della memoria che gli si assegna Si tengono in memoria solo i dati e le istruzioni usati con maggior frequenza Es.: assemblatore a due passi Passo : crea una tabella dei simboli Passo : genera il codice nel linguaggio macchina Può essere diviso in parti (00Kb) Passo : 70Kb Passo : 80Kb Tabella dei simboli: 0Kb Procedure comuni: 0Kb Se sono disponibili solo 50Kb, il programma non potrebbe essere eseguito. Però Si definiscono sezioni: A (tabella simboli+procedure comuni+passo ) e B (tabella simboli+procedure comuni+passo ) Aggiungiamo un gestore sovrapposizioni (0kb) Si inizia A. All fine del passo, in gestore legge B in memoria sovrapponendolo a A e trasferisce il controllo al passo 6 Sovrapposizione di sezioni Tabella dei simboli Procedure comuni Gestore 0Kb 0Kb 0Kb Passo Passo 70Kb 80Kb 7 Swapping Trasferire i processi che interrompono l esecuzione da RAM a memoria ausiliaria Es.: scheduling Round robin. Trascorso un quanto di tempo, il gestore della memoria scarica il processo in esecuzione e lo mette in memoria ausiliaria (disco veloce). Stessa cosa con scheduling a priorità Se l associazione logicofisico avviene in compilazione o caricamento, il processo deve essere ricaricato nelle stesse posizioni Il SO mantiene una coda dei pronti costituita dai processi pronti in RAM o in memoria ausiliaria Quando deve essere caricato un processo, il dispatcher controlla se il primo processo in coda si trova in RAM. Altrimenti, se non c è spazio libero in RAM, si scarica un processo dalla RAM in memoria ausiliaria e si porta il processo scelto in RAM Tempo di cambio di contesto elevato È necessario che il tempo d esecuzione di un processo sia lungo rispetto al tempo per lo swapping È necessario sapere quanta memoria effettivamente il proceso usa Bisogna essere sicuro che il processo da scaricare sia effettivamente inattivo (es.: I/O asincrono) 8

4 Swapping Caricamento in partizioni variabili L allocazione della memoria cambia quando: I processi vengono caricati in memoria I processi rilasciano la memoria 9 Swapping Rilocazione e protezione possono usare ancora i registri base e limite Problema: la frammentazione della memoria molte aree piccole compattazione Problema: stabilire quanto spazio allocare per ogni processo area dati, stack Problema: come tenere traccia della memoria libera 0 Assegnazione contigua memoria La memoria è tipicamente è divisa in due partizioni: SO e processi utente Il SO può collocarsi sia in memoria alta, ma tipicamente viene collocato dove si trova il vettore delle interruzioni, cioè nella parte...???? Gestione della Memoria Ambiente monoprogrammato senza swapping nè paginazione Tre modi semplici di organizzare la memoria - un sistema operativo con un solo processo utente Assegnazione contigua memoria Normalmente molti processi utente sono caricati in RAM: bisogna stabilire come assegnare la memoria disponibile Assegnazione contigua: ogni processo è mantenuto in una sola zona contigua di memoria Protezione memoria Registro di rilocazione+limite CPU Indirizzo logico Registro limite < Registro di rilocazione + trap Caricati ai cambi di contesto no si Indirizzo fisico Memoria

5 Assegnazione della memoria Ambiente multiprogrammato con partizioni fisse Partizioni fisse Ogni partizione contiene un processo Una partizione libera viene occupata da un processo in coda d ingresso 5 Partizioni fisse Con code dei job distinte per ogni partizione Con unica coda dei job 6 Assegnazione della memoria Variante: il SO conserva una tabella in cui sono indicate le partizioni libere All inizio tutta la memoria non occupata dal SO è una partizione (buco) Quando si carica un processo, viene occupata la memoria necessaria, e aggiornata la tabella. Al termine rilascia la memoria assegnata SO mantiene lista dimensioni buchi: assegna ai processi in coda buchi disponibili (di adeguata dimensione e partizionandoli se necessario) Se non si possono assegnare buchi al processo in testa, o si attende o si assegna memoria al primo processo in coda per cui è possibile soddisfare i requisiti di memoria richiesta Al termine di un processo, la sua memoria viene rilasciata e, se il buco creato è adiacente ad altri buchi, essi vengono uniti e il SO controlla se qualche processo in attesa può essere caricato 7 Assegnazione della memoria Il problema in generale è di assegnazione dinamica della memoria: Data una lista di buchi liberi, soddisfare una richiesta di dimensione n Criteri più usati per selezionare un buco libero tra i disponibili sono Si assegna il primo buco abbastanza grande (firstfit) Si assegna il buco più piccolo che può contenere il processo (best-fit) Crea parti inutilizzate piccole Si assegna il buco più grande (worst-fit) Crea parti inutilizzate più grandi (e più usabili) 8 Assegnazione della memoria Frammentazione esterna Sperimentalmente i primi due criteri sono migliori in termini di tempo e di utilizzo di memoria. La scelta first-fit richiede meno tempo Questi algoritmi soffrono di frammentazione esterna: Dopo successivi caricamenti e rimozioni di processi, la memoria si frammenta in piccole parti Si ha frammentazione esterna se lo spazio di memoria totale è sufficiente per soddisfare una richiesta, ma non è contiguo Problema serio: ad es., l analisi statistica del first-fit mostra che per n blocchi assegnati si perdono altri 0,5n blocchi per la frammentazione 9 0 5

6 Frammentazione Tipicamente la memoria fisica viene divisa in blocchi di dimensione fissata Es.: se ho un buco di 8.6 byte, e assegno 8.6 byte a un processo, avanzano byte. Per tener traccia di questi byte si spreca di piùsi divide la memoria in blocchi fissi Questo può causare frammentazione interna Ci può essere memoria inutilizzata all interno di un blocco, se il processo che occupa quel blocco è più piccolo della dimensione del blocco stesso Soluzioni Frammentazione esterna Compattazione: riordinare il contenuto della memoria per riunire la memoria libera Possibile solo con rilocazione dinamica Consentire la non contiguità dello spazio degli indirizzi logici di un processo, assegnando la memoria fisica dove essa sia disponibile Paginazione e segmentazione Gestione della memoria Problemi della assegnazione contigua Limite all ampiezza dello spazio indirizzamento Attualmente ogni processo usa almeno GB di spazio di indirizzamento, con RAM assai più piccole Memoria sottoutilizzata aree dello spazio di indirizzamento che non sono utilizzate occupano RAM Frammentazione anche su disco, quando si scaricano i processi dalla memoria Soluzione: memoria virtuale ad ogni istante carico in RAM solo le parti di spazio degli indirizzi che servono per una certa fase dell esecuzione diverse soluzioni: vedremo la paginazione Paginazione: idea base Lo spazio di indirizzamento di ogni processo è diviso in fette (pagine logiche) tutte della stessa ampiezza 0.. Processo Pagina Logica: fetta dello spazio di indirizzamento 0.. Processo 0.. Processo Paginazione: idea base Anche la RAM disponibile per i processi utente è divisa in pagine della stessa ampiezza (pagine fisiche o frame) Pagina Fisica: fetta dello RAM stessa ampiezza della pagina logica RAM vuota RAM vuota RAM RAM vuota vuota Sistema Operativo Paginazione: idea base Ad ogni istante solo le pagine necessarie per i processi in esecuzione sono caricate in RAM (sono prelevate dalla memoria ausiliaria, anch essa divisa in blocchi dim blocco=dim pagina) 0.. Processo RAM vuota RAM vuota Sistema Operativo 0.. Processo 0.. Processo 5 Paginazione Tabella delle pagine: memorizza in quale pagina fisica è memorizzata ogni pagina logica Ogni indirizzo generato dalla CPU è diviso in Numero di pagina (p) Serve come indice nella tabella delle pagine Scostamento di pagina offset (d) Dove si trova all interno della pagina la parola di memoria indirizzata 6 6

7 Architettura di paginazione Architettura di paginazione indirizzo indirizzo logico fisico CPU p d f d p tabella delle pagine f f f f... memoria fisica La dimensione di pagina è definita dall architettura del calcolatore Tipicamente una potenza di tra 5byte e 6Mb La scelta di potenza di facilita la traduzione da indirizzo logico a fisico Se la dimensione dello spazio degli indirizzi logici è m e la dimensione di una pagina è di n unità di indirizzamento (byte o parole)m-n bit più significativi di un indirizzo logico indicano il numero di pagina, e gli n bit meno significativi l offset m-n p n d 7 8 Paginazione: problema Traduzione indirizzi Esecuzione (corretta) dei programmi utente parzialmente caricati: tradurre correttamente l indirizzo logico X (relativo allo spazio di indirizzamento) nell indirizzo fisico Y (parola di RAM) in cui è caricato bloccare automaticamente accessi ad aree non caricate in RAM (page fault) aggiornare automaticamente l insieme delle pagine in memoria scaricando/caricando da memoria secondaria quelle necessarie in una certa fase 9 Vogliamo tradurre X (ind. logico) in Y (ind fisico)... X 0 Spazi Indirizzi Y RAM Traduzione indirizzi Traduzione indirizzi Osservate che X = #paglogica * s + offset s ampiezza della pagina (logica e fisica) offset indirizzo dentro la pagina (fra 0 ed s-) quindi Y= f(#paglogica) *s + offset f() funzione che associa ad ogni pagina logica il numero di pagina fisica in cui è caricata NB f() è definita solo per le pagine caricate X= *s + offset Y= f() *s + offset... Ampiezza di pagina (s) offset f X offset SI RAM Y

8 Traduzione indirizzi Es. Fig. 9.8 La paginazione può essere vista come una forma di rilocazione dinamica: a ogni indirizzo logico l architettura di paginazione fa corrispondere un indirizzo fisico L uso della tabella delle pagine (una per ogni processo) è simile all uso di una tabella di registri base e rilocazione, uno per ciascun blocco di memoria Traduzione indirizzi La traduzione degli indirizzi deve essere veloce! Va fatta ad ogni accesso in memoria Come si calcolano #paglogica e offset? Sono quoziente e resto della divisione per s in generale la divisione è molto costosa! È semplice se s= k perché stiamo lavorando con indirizzi binari k k- 0 quoziente resto Traduzione indirizzi Quindi il calcolo è veloce Es. pagine di KB= B basta selezionare (hw) i primi bit per offset ed il resto per #paglogica Come si calcola la funzione di corrispondenza f()? Serve una tabella (la tabella delle pagine, TP) TP[#pagLogica] è il descrittore di pagina e contiene il numero di pagina fisica corrispondente bit Presente-Assente (se la pagina è in memoria o no) altro 5 Traduzione indirizzi Cosa succede se la pagina non è in memoria? Presente-Assente = 0, si genera un page fault l esecuzione del processo viene bloccata va in esecuzione il gestore della memoria la pagina logica viene localizzata su disco e caricata in RAM se la RAM è piena si individua una pagina vittima da scaricare dalla RAM algoritmi di rimpiazzamento : servono a selezionare la pagina vittima 6 Paginazione Elimina la frammentazione esterna, ma si può avere frammentazione interna Si ha sull ultima delle pagine assegnate a un processo (il caso peggiore????) Frammentazione media di mezza pagina a processo Conviene usare pagine piccole Con pagine grandi diminusce il costo di gestione delle pagine (essendoci meno pagine) e sono più efficienti i trasferimenti I/O (più dati trasferiti per ogni pagina) Alcuni SO (ad es. Solaris) consentono pagine di diverse dimensioni Paginazione Un processo richiede n pagine Se sono disponibili in RAM, le si assegnano Si carica la prima pagina del processo in uno dei blocchi assegnati e si aggiorna la tabella delle pagine per quel processo, e così via Netta distinzione tra visione logica e visione fisica della memoria Il SO tiene una tabella dei blocchi di memoria Es. Fig

9 La MMU Operazioni di una MMU con 6 pagine di KB Architettura di paginazione Una tabella delle pagine per processo Il descrittore di processo contiene un puntatore alla tabella delle pagine Per realizzarla Insieme di registri Devono essere progettati per lavorare molto velocemente (utilizzati ad ogni accesso in memoria) Questa soluzione è efficiente se l insieme dei registri è piccolo (56 elementi) 9 50 Architettura di paginazione Oggi le tabelle sono molto grandi (un milione di elementi) Cambio di contesto richederebbe di aggiornare tutti i registri!!!! Soluzione: si mantiene la tabella in RAM e un registro (page-table base register PTBR) punta alla tabella stessa Cambio di contesto consiste solo nel modificare il contenuto del PTBR Problema nel tempo d accesso. Per accedere alla locazione i, bisogna Usare il PTBR (per localizzare la tabella) incrementato di i, e accedere la memoria (tabella) Tradurre il numero di pagina i, e accedere la pagina cercata Quindi, per accedere un byte occorrono due accessi in memoria 5 Architettura di paginazione Soluzione a questo problema Impiego di una piccola cache veloce, TLB (translation look-aside buffer). Memoria associativa ad alta velocità Ogni elemento consiste di due parti: chiave e valore Quando si presenta un elemento, la memoria lo confronta contemporaneamente con tutte le chiavi. Se trova una corrispondenza, riporta il valore correlato Memoria molto veloce, ma altrettanto costosa (tipicamente tra 6 e 0 elementi) 5 Architettura di paginazione con TLB indirizzo logico CPU p d Vari criteri di sostituzione elementi in TLB Possono esserci elementi voncolati (nel #pagina TLB miss #blocco di mem p tabella delle pagine TLB OK f f d f indirizzo fisico f f... memoria fisica Esempio di TLB TLB) 5 5 9

10 TLB Alcuni TLB memorizzano gli identificatori dello spazio d indirizzi (address-space identifier ASID) in ogni elemento Si usa per fornire al processo corrispondente la protezione del suo spazio d indirizzi Se non si ha ASID A ogni cambio di contesto bisogna cancellare il TLB in modo da evitare che il processo successivo faccia uso di errate informazioni di traduzione Tempo effettivo d accesso alla memoria Hit ratio (tasso di successi): percentuale di volte che un numero di pagina si trova nel TLB Es.: hit ratio 80%, ricerca in TLB 0nanosec, accesso memoria 00 nanosec Se il numero di pagina è in TLB accesso alla memoria costa???? Altrimenti:???? Tempo effettivo d accesso alla memoria Hit ratio (tasso di successi): percentuale di volte che un numero di pagina si trova nel TLB Es.: hit ratio 80%, ricerca in TLB 0nanosec, accesso memoria 00 nanosec Se il numero di pagina è in TLB accesso alla memoria costa 0 nanosec Altrimenti:???? Tempo effettivo d accesso alla memoria Hit ratio (tasso di successi): percentuale di volte che un numero di pagina si trova nel TLB Es.: hit ratio 80%, ricerca in TLB 0nanosec, accesso memoria 00 nanosec Se il numero di pagina è in TLB accesso alla memoria costa 0 nanosec Altrimenti: 0nanosec(accessoTLB)+00nanosec (acceso alla tabella pagine)+00(accesso al byte desiderato) =0 nanosec Tempo effettivo d accesso alla memoria Hit ratio (tasso di successi): percentuale di volte che un numero di pagina si trova nel TLB Es.: hit ratio 80%, ricerca in TLB 0nanosec, accesso memoria 00 nanosec Se il numero di pagina è in TLB accesso alla memoria costa 0 nanosec Altrimenti: 00nanosec (acceso alla tabella pagine)+00(accesso al byte desiderato) =00 nanosec Tempo effettivo d accesso: 0,80 x 0 + 0,0 x 0 =0 nanosec Da 00 a 0 nanosec Migliorando l hit ratio, diminuisce il tempo di rallentamento per accedere ai dati in memoria 59 Sommario paginazione L accesso alla tabella delle pagine deve essere veloce non può stare solo in RAM se no duplica il tempo di accesso non può stare tutta in MMU prenderebbe troppo spazio indirizzi a bit e pagine di K, la size(tp)= 0 record non tutti i descrittori servono contemporaneamente si usa una piccola cache dei descrittori in MMU TLB (Translation Lookaside Buffer) o memoria associativa tutta la tabella è in RAM 60 0

11 Protezione Con la paginazione, la protezione è assicurata dai bit di protezione (nella tabella delle pagine) Si possono controllare letture, scritture, esecuzioni (ad es. con bit) Ogni accesso illegale è segnalato da una eccezione Bit di validità: indica che la pagina corrispondente è nello spazio di indirizzi logico del processo (per riconoscere gli indirizzi illegali) Fig Protezione Tipicamente un processo non fa uso di tutto il suo intervallo di indirizziè inutile creare tabella delle pagine contenente tutte le pagine logiche Alcune architetture usano i registri di lunghezza delle pagine (page-table length register PTLR) per indicare le dimensioni della tabella Questo valore si controlla rispetto a ogni indirizzo logico per verificare che si trovi nell intervallo valido per il processo 6 Tabella delle Pagine Struttura della tabella delle pagine Paginazione gerarchica Hash Tabella delle pagine invertita Informazioni contenute in un descrittore di pagina il formato dipende dall hw NON ci sono informazioni su dove trovare la pagina su disco (dipende dal SO) 6 6 Paginazione gerarchica Attualmente lo spazio d indirizzi logico di un processo è tipicamente molto grande ( 6 elementi) La tabella delle pagine rischia di essere a sua volta troppo grande (un milione di elementi; se ogni pagina bytemb solo per la tabella delle pagine) Soluzione: suddividere la tabella delle pagine in parti più piccole Paginazione a due livelli Si pagina la stessa tabella delle pagine Quindi ora abbiamo: La tabella delle pagine suddivisa in pagine Ogni pagina della tabella della pagine contiene le info sulle pagine in memoria Es.: macchina a bit e pagine di Kb Ogni indirizzo logico è suddiviso in numero di pagina (?? bit) e uno scostamento (?? bit) 65 66

12 Paginazione a due livelli Si pagina la stessa tabella delle pagine Quindi ora abbiamo: La tabella delle pagine suddivisa in pagine Ogni pagina della tabella della pagine contiene le info sulle pagine in memoria Es.: macchina a bit e pagine di kb Ogni indirizzo logico è suddiviso in numero di pagina ( 0 bit) e uno scostamento ( bit) Paginazione a due livelli Paginando la tabella delle pagine, il numero di pagine viene a sua volta suddiviso in numero di pagina (0 bit) e offset (0 bit) p p: indice della tabella delle pagine di primo livello (tabella esterna) p: scostamento all interno della pagina indicata dalla tabella esterna p 0 0 d Paginazione a due livelli Tabella delle pagine Paginazione a due livelli Tabella delle pagine Tabella delle pagine ad associazione diretta (forward-mapped page table) Tabella esterna delle pagine Tabella esterna delle pagine PT PT offset 0 0 Descrittori di pagina 0 5 offset Paginazione a più livelli Non applicabile a indirizzi logici a 6 bit Dimensione pagine Kb ( ) Pagina della tabella esterna: bit (tabella grande) La si può suddividere in altri livelli Se ci sono troppi livelliinefficiente Tabella delle pagine con hash Un metodo comune nelle architetture oltre i bit consiste nell utilizzo di una tabella delle pagine di tipo hash L argomento della funzione hash è il numero di pagina virtuale Gestione collisioni Ogni elemento della tabella hash contiene una lista concatenata di elementi Ogni elemento della lista è costituito da Numero di pagina virtuale Indirizzo del blocco della memoria fisica (pagina fisica) corrispondente Un puntatore al successivo elemento della lista 7 7

13 Tabella delle pagine con hash Algoritmo traduzione Si applica la funzione hash al numero della pagina virtuale contenuto nell indirizzo logico, e si accede a un elemento della tabella Si scandisce la lista associata all elemento acceduto fino a trovare (se esiste) la pagina virtuale cercata Trovato l elemento, si usa l indirizzo fisico corrispondente Tabella delle pagine a gruppi Se l architettura è a 6 bit, sono necessari 8 bit per memorizzare numero di pagina virtuale + puntatore al successivo elemento nella lista Si usa un approccio alternativo per utilizzare meno spazio Ciascun elemento della tabella delle pagine contiene i riferimenti alle pagine fisiche corrispondenti a un gruppo di pagine virtuali contigue Si riduce lo spazio richiesto, e si sfrutta la località dei programmi 7 7 Tabella delle pagine invertite Tabella delle pagine invertite Generalmente ogni tabella delle pagine contiene un elemento per ogni pagina virtuale, ed esiste una tabella per processo Questo può portare a tabelle enormi (programmi con molte pagine) Soluzione: tabella delle pagine invertita Una sola tabella delle pagine per tutti i processi Questa tabella ha un elemento per ogni pagina reale (blocco di memoria fisica) Ogni elemento contiene l indirizzo virtuale della pagina memorizzata in quella locazione fisica, con informazioni sul processo che possiede tale pagina UltraSparc (a 6 bit) e PowerPC 75 indirizzo indirizzo logico fisico CPU pid p d i d Tabella delle pagine ordinata pe rindirizzo fisiconecessaria scansione tabella Per velocizzare: uso tabella hash (ogni accesso necessita di due accessi: uno per tabella hash e l altro per la tabella pagine) Uso TLB ricerca tabella delle pagine pid p i memoria fisica 76 Tabella delle pagine invertite Pagine condivise Altro vantaggio della paginazione: condividere codice comune Fig. 9.6 Difficile realizzazione con pagine invertite Confronto tra tabella delle pagine tradizionale e tabella delle pagine inversa 77 78

14 Paginazione Il Sistema operativo invoca i meccanismi di paginazione in quattro circostanze:. Creazione di un Processo - Determina la dimensione dello spazio di indirizzamento - Crea la tabella delle pagine. Esecuzione di un Processo (context switch) - Reset della MMU per il nuovo processo - Aggiornamento del TLB (flush). Page fault - Determina l indirizzo logico che ha causato il page fault - Sposta una pagina su disco (se necessario) e carica la pagina richiesta. Terminazione di un Processo - Dealloca la tabella delle pagine e le pagine del processo 79 Segmentazione Abbiamo finora considerato la memoria logica come contigua Una visione realistica della memoria logica è Come un insieme di pezzi di codice e strutture dati (segmenti) Procedura, pila, programma principale, sqrt, ecc... La segmentazione è uno schema che consente di gestire questa visione della memoria 80 Segmentazione Uno spazio di indirizzi logici è una raccolta di segmenti, ciascuno con un nome e una lunghezza Gli indirizzi logici sono coppie <nome segmento, scostamento> Il nome di un segmento è un numero La traduzione è affidata alla tabella dei segmenti Ogni elemento è una coppia <base,limite> La base contiene l indirizzo fisico iniziale del segmento Il limite contiene la lunghezza del segmento 8 Architettura di segmentazione CPU s d Fig. 9.9 s < Trap lim base tabella dei segmenti + memoria fisica 8 Protezione La segmentazione si presta bene alla protezione Dato che tipicamente i segmenti sono definiti in base alla loro funzionalità semantica, è probabile che tutti gli elementi di un segmenti vengano usati nello stesso modo (scrittura, lettura) Si possono definire i segmenti come di sola lettura, scrittura o esecuzione Condivisione Anche la condivisione si applica bene con la segmentazione Fig. 9.0 Problema: è possibile che i programmi debbano numerare i segmenti allo stesso modo (per i riferimenti a se stessi es.: salti ) 8 8

15 Frammentazione I segmenti hanno lunghezza variabile Il problema di assegnare memoria ai segmenti è utilizzando le soluzioni al problema di assegnazione dinamica della memoria (first-fit, best-fit, worst-fit) Presenza di frammentazione???? La serietà della frammentazione dipende dalla dimensione dei segmenti Uno per processo (si ricade nello schema delle partizioni a dimensione variabile) Uno per byte (ogni byte necessita di registro di rilocazione) Dimensioni fissepaginazione Segmentazione con paginazione I segmenti vengono paginati Per ridurre frammentazione Fig. 9. (Intel 8086) Esercizi.,.,.5,.8.5.,.6,.7,.8 5., 5., 5.8 o 5.9 (Java) 6., 6.7, 6.8, , 7., 7.5, 7.7, , 8.6, 8.7, 8.8, 8.0, 8., , 9.5, 9.6 Per oggi basta!!!!

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

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

Dettagli

Gestione della memoria. Paginazione Segmentazione Segmentazione con paginazione

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

Dettagli

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. 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,

Dettagli

Gestione della Memoria

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,

Dettagli

Il memory manager. Gestione della memoria centrale

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

Dettagli

Sistemi Operativi. 5 Gestione della memoria

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

Dettagli

Calcolatori Elettronici. La memoria gerarchica La memoria virtuale

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

Dettagli

Sistema operativo: Gestione della 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

Dettagli

Gestione della memoria centrale

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

Dettagli

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

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.

Dettagli

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

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)

Dettagli

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. Implementazione del File System. Struttura del File System. Implementazione

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

Dettagli

La memoria - generalità

La memoria - generalità Calcolatori Elettronici La memoria gerarchica Introduzione La memoria - generalità n Funzioni: Supporto alla CPU: deve fornire dati ed istruzioni il più rapidamente possibile Archiviazione: deve consentire

Dettagli

Sistemi Operativi IMPLEMENTAZIONE DEL FILE SYSTEM. D. Talia - UNICAL. Sistemi Operativi 9.1

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

Dettagli

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

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 è

Dettagli

Architettura hardware

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

Dettagli

GESTIONE DELLA MEMORIA CENTRALE

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:

Dettagli

La Gestione delle risorse Renato Agati

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

Dettagli

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

Il contesto! Gestione della Memoria! Reg. di Base e reg. Limite! Associazione tra dati/istruzioni e memoria! Il contesto Gestione della Memoria Per essere eseguiti, i programmi devono essere trasferiti (dal disco) in memoria e tradotti in processi. Obiettivi: accesso rapido e protezione. Accesso rapido La CPU

Dettagli

Capitolo 11 La memoria cache

Capitolo 11 La memoria cache Capitolo 11 La memoria cache Gerarchie di Memoria Dati sperimentali mostrano che i riferimenti alla memoria godono della proprietà di località spaziale e temporale. Località spaziale: tendenza a generare

Dettagli

memoria virtuale protezione

memoria virtuale protezione Memoria Virtuale Le memorie cache forniscono un accesso veloce ai blocchi di memoria usati più di recente La memoria virtuale fornisce un accesso veloce ai dati sulle memorie di massa usati più di recente.

Dettagli

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

Sistemi Operativi 1. Mattia Monga. a.a. 2008/09. Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi. 1 Mattia Dip. di Informatica e Comunicazione Università degli Studi di Milano, Italia mattia.monga@unimi.it a.a. 2008/09 1 c 2009 M.. Creative Commons Attribuzione-Condividi allo stesso modo 2.5 Italia

Dettagli

Capitolo 9: Memoria centrale

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

Dettagli

Sistemi Operativi Kernel

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

Dettagli

Capitolo 11 -- Silberschatz

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

Dettagli

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. 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

Dettagli

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

Il software. la parte contro cui si può solo imprecare. Funzioni principali del sistema operativo. (continua) Gestione della memoria principale Funzioni principali del sistema operativo Il software la parte contro cui si può solo imprecare Avvio dell elaboratore Gestione del processore e dei processi in Gestione della memoria principale Gestione

Dettagli

La memoria centrale (RAM)

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.

Dettagli

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. 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

Dettagli

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. 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

Dettagli

Laboratorio di Informatica

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,

Dettagli

12. Implementazione di un File System. 12.1.1 Struttura a livelli. 12.2.1 Allocazione contigua

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

Dettagli

Varie tipologie di memoria

Varie tipologie di memoria Varie tipologie di memoria velocita` capacita` registri CPU memoria cache memoria secondaria (Hard Disk) Gestione della memoria Una parte della viene riservata per il SO I programmi per poter essere eseguiti

Dettagli

Corso di Sistemi di Elaborazione delle informazioni

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

Dettagli

Architettura dei calcolatori II parte Memorie

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

Dettagli

Organizzazione della memoria principale Il bus

Organizzazione della memoria principale Il bus Corso di Alfabetizzazione Informatica 2001/2002 Organizzazione della memoria principale Il bus Organizzazione della memoria principale La memoria principale è organizzata come un insieme di registri di

Dettagli

Sistemi Operativi Il Sistema Operativo Windows (parte 3)

Sistemi Operativi Il Sistema Operativo Windows (parte 3) Sistemi Operativi Il Sistema Operativo Windows (parte 3) Docente: Claudio E. Palazzi cpalazzi@math.unipd.it Crediti per queste slides al Prof. Tullio Vardanega Architettura di NTFS 1 NTFS file system adottato

Dettagli

SISTEMI OPERATIVI. Prof. Enrico Terrone A. S: 2008/09

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

Dettagli

I processi Unix. Entry della tabella dei processi

I processi Unix. Entry della tabella dei processi I processi Unix Ciascun processo Unix può evolvere in stato utente o in stato kernel. Il passaggio dall uno all altro stato avviene mediante SVC. Poiché il processo può andare in attesa di un evento nell

Dettagli

Corso di Informatica

Corso di Informatica CdLS in Odontoiatria e Protesi Dentarie Corso di Informatica Prof. Crescenzio Gallo crescenzio.gallo@unifg.it La memoria principale 2 izzazione della memoria principale ria principale è organizzata come

Dettagli

PROGETTAZIONE FISICA

PROGETTAZIONE FISICA PROGETTAZIONE FISICA Memorizzazione su disco, organizzazione di file e tecniche hash 2 Introduzione La collezione di dati che costituisce una BDD deve essere fisicamente organizzata su qualche supporto

Dettagli

1.4b: Hardware. (Memoria Centrale)

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

Dettagli

DMA Accesso Diretto alla Memoria

DMA Accesso Diretto alla Memoria Testo di rif.to: [Congiu] - 8.1-8.3 (pg. 241 250) 08.a DMA Accesso Diretto alla Memoria Motivazioni Organizzazione dei trasferimenti DMA Arbitraggio del bus di memoria Trasferimento di un blocco di dati

Dettagli

La gestione della memoria

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

Dettagli

Esercitazione E6 Esercizi d esame

Esercitazione E6 Esercizi d esame Esercitazione E6 Esercizi d esame Sistemi Operativi - prof. Silvio Salza - a.a. 2008-2009 E6-1 Memoria virtuale Si consideri un sistema a memoria virtuale con indirizzi a 32 bit, indirizzi fisici a 20

Dettagli

Pronto Esecuzione Attesa Terminazione

Pronto Esecuzione Attesa Terminazione Definizione Con il termine processo si indica una sequenza di azioni che il processore esegue Il programma invece, è una sequenza di azioni che il processore dovrà eseguire Il processo è quindi un programma

Dettagli

Sistemi operativi. Esempi di sistemi operativi

Sistemi operativi. Esempi di sistemi operativi Sistemi operativi Un sistema operativo è un programma che facilita la gestione di un computer Si occupa della gestione di tutto il sistema permettendo l interazione con l utente In particolare un sistema

Dettagli

Strutture di Memoria 1

Strutture di Memoria 1 Architettura degli Elaboratori e Laboratorio 17 Maggio 2013 Classificazione delle memorie Funzionalitá: Sola lettura ROM, Read Only Memory, generalmente usata per contenere le routine di configurazione

Dettagli

Il supporto al Sistema Operativo

Il supporto al Sistema Operativo Il supporto al Sistema Operativo Obiettivi e funzioni del S.O. Il Sistema Operativo è il software che controlla l esecuzione dei programmi e amministra le risorse del sistema. Ha due obiettivi principali:

Dettagli

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

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

Dettagli

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

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)?

Dettagli

Il Software. Il software del PC. Il BIOS

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:

Dettagli

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi

Software relazione. Software di base Software applicativo. Hardware. Bios. Sistema operativo. Programmi applicativi Software relazione Hardware Software di base Software applicativo Bios Sistema operativo Programmi applicativi Software di base Sistema operativo Bios Utility di sistema software Software applicativo Programmi

Dettagli

Memoria Virtuale. Lezione 29 Sistemi Operativi

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

Dettagli

Il File System. Il file system

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:

Dettagli

Il file system. meccanismi di accesso e memorizzazione delle informazioni (programmi e dati) allocate. in memoria di massa

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

Dettagli

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario

Lezione 2 Principi Fondamentali di SO Interrupt e Caching. Sommario Lezione 2 Principi Fondamentali di SO Interrupt e Caching Sommario Operazioni di un SO: principi fondamentali Una visione schematica di un calcolatore Interazione tra SO, Computer e Programmi Utente 1

Dettagli

Gestione della memoria centrale

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

Dettagli

Il software. la parte contro cui si può solo imprecare. Il software

Il software. la parte contro cui si può solo imprecare. Il software Il software la parte contro cui si può solo imprecare Il software L hardware da solo non è sufficiente per il funzionamento dell elaboratore ma è necessario introdurre il software ovvero un insieme di

Dettagli

Tipi classici di memoria. Obiettivo. Principi di localita. Gerarchia di memoria. Fornire illimitata memoria veloce. Static RAM. Problemi: Dynamic RAM

Tipi classici di memoria. Obiettivo. Principi di localita. Gerarchia di memoria. Fornire illimitata memoria veloce. Static RAM. Problemi: Dynamic RAM Obiettivo Tipi classici di memoria Fornire illimitata memoria veloce Problemi: costo tecnologia Soluzioni: utilizzare diversi tipi di memoria... Static RAM access times are 2-25ns at cost of $100 to $250

Dettagli

Sistemi Operativi GESTIONE DELLA MEMORIA SECONDARIA. D. Talia - UNICAL. Sistemi Operativi 11.1

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

Dettagli

Sistemi Operativi. Memoria Secondaria GESTIONE DELLA MEMORIA SECONDARIA. Struttura del disco. Scheduling del disco. Gestione del disco

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

Dettagli

Sistemi Operativi. Interfaccia del File System FILE SYSTEM : INTERFACCIA. Concetto di File. Metodi di Accesso. Struttura delle Directory

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

Dettagli

1. Spiegare le differenze fra le seguenti modalità di binding degli indirizzi:

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

Dettagli

STRUTTURE DEI SISTEMI DI CALCOLO

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

Dettagli

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

= 0, 098 ms. Da cui si ricava t 2 medio 1. Una macchina ha uno spazio degli indirizzi a 32 bit e una pagina di 8 KB. La tabella delle pagine è completamente nell hardware, con una parola a 32 bit per voce. Quando parte un processo, la tabella

Dettagli

Sistemi Operativi MECCANISMI E POLITICHE DI PROTEZIONE. D. Talia - UNICAL. Sistemi Operativi 13.1

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

Dettagli

MECCANISMI E POLITICHE DI PROTEZIONE 13.1

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

Dettagli

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

Uniamo VM e CACHE. Physically addressed. Physically Addressed. Prestazioni. Ci sono varie alternative architetturali. Sono quelle piu semplici Uniamo VM e CACHE Physically addressed Ci sono varie alternative architetturali physically addressed virtually addressed virtually indexed Sono quelle piu semplici un dato puo essere in cache solo se e

Dettagli

Un sistema operativo è un insieme di programmi che consentono ad un utente di

Un sistema operativo è un insieme di programmi che consentono ad un utente di INTRODUZIONE AI SISTEMI OPERATIVI 1 Alcune definizioni 1 Sistema dedicato: 1 Sistema batch o a lotti: 2 Sistemi time sharing: 2 Sistema multiprogrammato: 3 Processo e programma 3 Risorse: 3 Spazio degli

Dettagli

Il software di base comprende l insieme dei programmi predisposti per un uso efficace ed efficiente del computer.

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

Dettagli

C. P. U. MEMORIA CENTRALE

C. P. U. MEMORIA CENTRALE C. P. U. INGRESSO MEMORIA CENTRALE USCITA UNITA DI MEMORIA DI MASSA La macchina di Von Neumann Negli anni 40 lo scienziato ungherese Von Neumann realizzò il primo calcolatore digitale con programma memorizzato

Dettagli

La Memoria Virtuale Ottimizzazione della memoria centrale

La Memoria Virtuale Ottimizzazione della memoria centrale La Memoria Virtuale Ottimizzazione della memoria centrale 1) Introduzione- Gerarchia della memoria Da un punto di vista funzionale, ogni dispositivo di memorizzazione elettronica di informazioni presenta

Dettagli

Secondo biennio Articolazione Informatica TPSIT Prova Quarta

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

Dettagli

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux

Scheduling della CPU. Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Scheduling della CPU Sistemi multiprocessori e real time Metodi di valutazione Esempi: Solaris 2 Windows 2000 Linux Sistemi multiprocessori Fin qui si sono trattati i problemi di scheduling su singola

Dettagli

Informatica 3. LEZIONE 23: Indicizzazione. Modulo 1: Indicizzazione lineare, ISAM e ad albero Modulo 2: 2-3 trees, B-trees e B + -trees

Informatica 3. LEZIONE 23: Indicizzazione. Modulo 1: Indicizzazione lineare, ISAM e ad albero Modulo 2: 2-3 trees, B-trees e B + -trees Informatica 3 LEZIONE 23: Indicizzazione Modulo 1: Indicizzazione lineare, ISAM e ad albero Modulo 2: 2-3 trees, B-trees e B + -trees Informatica 3 Lezione 23 - Modulo 1 Indicizzazione lineare, ISAM e

Dettagli

Il Sistema Operativo

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

Dettagli

Sistemi Operativi. Principi di ges tione della memoria S wapping Memoria virtuale

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

Dettagli

Sistemi Operativi (modulo di Informatica II)

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. 2009-10 Implementazione del File System Sommario Realizzazione del

Dettagli

Architettura dei computer

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

Dettagli

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

Gerarchie di memoria Divide et impera. Gerarchie di memoria La congettura 90/10. Gerarchie di memoria Schema concettuale Memorie Caratteristiche principali Tecnologie di memoria Locazione: processore, interna (principale), esterna (secondaria) Capacità: dimensione parola, numero di parole Unità di trasferimento: parola,

Dettagli

INFORMATICA. Il Sistema Operativo. di Roberta Molinari

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:

Dettagli

Organizzazione della memoria

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

Dettagli

Calcolatori Elettronici

Calcolatori Elettronici Calcolatori Elettronici La memoria gerarchica L hard disk Introduzione alla memoria virtuale Scendiamo di un altro livello CPU Banco Cache Memoria principale Memoria secondaria Dimensioni < 1KB < 1 MB

Dettagli

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 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

Dettagli

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

Il processore. Il processore. Il processore. Il processore. Architettura dell elaboratore Il processore Architettura dell elaboratore Il processore La esegue istruzioni in linguaggio macchina In modo sequenziale e ciclico (ciclo macchina o ciclo ) Effettuando operazioni di lettura delle istruzioni

Dettagli

La Gestione della Memoria

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

Dettagli

Esercizi su. Funzioni

Esercizi su. Funzioni Esercizi su Funzioni ๒ Varie Tracce extra Sul sito del corso ๓ Esercizi funz_max.cc funz_fattoriale.cc ๔ Documentazione Il codice va documentato (commentato) Leggibilità Riduzione degli errori Manutenibilità

Dettagli

SISTEMI OPERATIVI. Realizzazione del file system. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II)

SISTEMI OPERATIVI. Realizzazione del file system. Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) (MODULO DI INFORMATICA II) SISTEMI OPERATIVI (MODULO DI INFORMATICA II) Realizzazione del file system Prof. Luca Gherardi Prof.ssa Patrizia Scandurra (anni precedenti) Università degli Studi di Bergamo a.a. 2012-13 Sommario Realizzazione

Dettagli

AXO Architettura dei Calcolatori e Sistema Operativo. processo di assemblaggio

AXO Architettura dei Calcolatori e Sistema Operativo. processo di assemblaggio AXO Architettura dei Calcolatori e Sistema Operativo processo di assemblaggio linguaggio assembly è il linguaggio simbolico che consente di programmare un calcolatore utilizzando le istruzioni del linguaggio

Dettagli

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

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

Dettagli

Architettura di un sistema di calcolo

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

Dettagli

Gestione del processore e dei processi

Gestione del processore e dei processi Il processore è la componente più importante di un sistema di elaborazione e pertanto la sua corretta ed efficiente gestione è uno dei compiti principali di un sistema operativo Il ruolo del processore

Dettagli

Materiali per il modulo 1 ECDL. Autore: M. Lanino

Materiali per il modulo 1 ECDL. Autore: M. Lanino Materiali per il modulo 1 ECDL Autore: M. Lanino RAM, l'acronimo per "random access memory", ovvero "memoria ad acceso casuale", è la memoria in cui vengono caricati i dati che devono essere utilizzati

Dettagli

Sistema Operativo. Fondamenti di Informatica 1. Il Sistema Operativo

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

Dettagli

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

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

Dettagli

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche

Input/Output. Moduli di Input/ Output. gestiscono quantità di dati differenti a velocità diverse in formati diversi. n Grande varietà di periferiche Input/Output n Grande varietà di periferiche gestiscono quantità di dati differenti a velocità diverse in formati diversi n Tutti più lenti della CPU e della RAM n Necessità di avere moduli di I/O Moduli

Dettagli

CPU. Maurizio Palesi

CPU. Maurizio Palesi CPU Central Processing Unit 1 Organizzazione Tipica CPU Dispositivi di I/O Unità di controllo Unità aritmetico logica (ALU) Terminale Stampante Registri CPU Memoria centrale Unità disco Bus 2 L'Esecutore

Dettagli

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput

Valutazione delle Prestazioni. Valutazione delle Prestazioni. Architetture dei Calcolatori (Lettere. Tempo di risposta e throughput Valutazione delle Prestazioni Architetture dei Calcolatori (Lettere A-I) Valutazione delle Prestazioni Prof. Francesco Lo Presti Misura/valutazione di un insieme di parametri quantitativi per caratterizzare

Dettagli

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica

Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica Università degli Studi di Padova Dipartimento di Matematica. - Corso di Laurea in Informatica Il presente esame scritto deve essere svolto in forma individuale in un tempo massimo di 60 minuti dalla sua

Dettagli