DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Sistemi Operativi Marco D. Santambrogio – marco.santambrogio@polimi.it Ver. aggiornata al 24 Gennaio 2014 Agenda DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Intro e un po’ di storia • Qualche curiosità • Accenni sul funzionamento di un SO 2 Cosa vediamo adesso… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Intro e un po’ di storia • Qualche curiosità • Accenni sul funzionamento di un SO 3 Le generazioni DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • 40’: Prima generazione § E’ in realtà difficile parlare di SO • 50’: Seconda generazione § La General Motors Research Laboratories crea il 1mo SO per l’IBM 701 • 60’: Terza generazione § Multiprogramming, più programmi simultaneamente nella memoria centrale § Time-sharing • 70’-90’: Quarta generazione § Circuiti LSI (Large Scale Integration) • Nascita dei Personal Computer • 00’: Quinta generazione § Sistemi multicore 4 UNIX DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • 1969: La storia di UNIX inizia nei laboratori Bell della AT&T • 1973: La svolta, UNIX viene scritto in C. • 1975: Viene scritta la Versione 6 di UNIX § Divenne largamente utilizzata anche fuori dai laboratori Bell § Il problema/il vantaggio: • Essendo allora UNIX libero, ogni venditore di macchine si faceva una versione proprietaria esclusiva, un po' diversa ed spesso incompatibile con le versioni degli altri venditori 5 DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 6 *NIX DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 7 GNU Operating System DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • 1984: Nasce il progetto GNU § GNU’s Not Unix • GNU è un sistema operativo tipo Unix distribuito come SW libero • Il Kernel di GNU è Hurd § Kernel in continuo sviluppo § GNU/Linux • Nota: il kernel (nucleo) è un programma che si occupa di dare le funzionalità di base per il funzionamento di un computer 8 Linux DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • 1991: Nascita di Linux § Linus Torvalds § Si scontra in un newsgroup Usenet con il professor Andrew Tanenbaum • Tanenbaum è l’invetore di Minix • Divieto di modifcare il codice per fini non educational e sotto approvazione dell’autore • Kernel monolitici Vs microkernel 9 microkernel Vs kernel modulare DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • microkernel § kernel minimale con “lo stretto indispensabile” ad utilizzare l’hardware § si scrivono tutti i servizi (chiamate di sistema) in user-space • comunicano direttamente con il kernel minimale • le altre applicazioni in user-space possono decidere di utilizzare le chiamate di sistema o riferirsi direttamente al microkernel. • kernel monolitico § Tutto quanto necessario ad usare il sistema e a fornirne un utilizzo ai programmi che vi girano è programmato in un unico programma (monolitico) che gira in kernel-space 10 Linux e la sua comunità DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • I LUG: Linux User Group § Associazioni senza fine di lucro § Diffondere l’uso del SW Libero § Diffondere l’uso dei SO basati sul kernel di Linux • Il Linux DAY § Evento per la promozione del SW libero e dei sistemi basati su Linux 11 shell di DOS DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 12 DOS DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • CP/M § Control Program for Microcomputers § Gary Kildall della Digital Research • 1980: 86-DOS/QDOS § Quick and Dirty Operating System § Tim Paterson della Seattle Computer Products • 1981: § Luglio: Microsoft compra per$50K(?) l’86-DOS § Agosto: Microsoft Disk Operating System • MS-DOS 1.0 13 Windows DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • • • • • • • Nov. 1983: Annuncio di Windows Nov. 1955: Windows 1.0 rilasciato 1998: Windows 98 2000: Windows 2000 2001: Windows XP 2007: Windows Vista 2009: Windows 7 • kernel ibrido § microkernel fatto comunicare tramite messaggi con i restanti servizi, tutto in kernel-space 14 Mac OS e Mac OS X DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • 1984: Mac OS § Macintosh Operating System § Primo OS ad usare con successo una GUI • ‘86-’95: NextSTEP (’98 Rhapsody) § kernel Mach (microkernel) § Objective-C § Gestione orientata agli oggetti • Diventerà Cocoa • Mac OS X § Rhapsody + Mac OS 15 Calcolo parallelo DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE N Cores #Cores 1000 cores 64 cores 32 Larrabee Sun 8-24 cores Intel 4 Quad core 2 Dual core 1 2005 16 2006 2007 2014 Time Il mondo dell’informatica è pronto per una rivoluzione Sistemi Operativi per multicore DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Barrelfish Operating System § @ ETH § http://www.barrelfish.org/ • K42/Tornado OS § @ IBM/Uniersity of Toronto § http://www.eecg.toronto.edu/~tornado/ • fos: Factored Operating System § @ MIT § groups.csail.mit.edu/carbon/fos • Tessellation OS § @ Berkeley § http://tessellation.cs.berkeley.edu/ 17 Cosa vediamo adesso… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Intro e un po’ di storia • Qualche curiosità • Accenni sul funzionamento di un SO 18 In Italia…Alessandro Rubini DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Co-autore di Linux Device Drivers • Pagina personale § http://ar.linux.it/ • Intervista: Il kernel? Non è vecchio, solo complicato § http://linea-dombra.blogspot.com/ 2010/04/il-kernel-non-e-vecchiosolo-complicato.html 19 … il Politecnico di Milano DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • RTAI: RealTime Application Interface § Patch Real Time per Linux § DIAPM: DiparAmento di Ingegneria Aerospaziale § hEps://www.rtai.org/ • AcOS: Autonomic Operating System for Adaptive Computing § Patch Self-‐Aware per Linux e FreeBSD § DEI: DiparAmento di EleEronica e Informazione § www.changegrp.org/acos • morphone.OS § Patch Self-‐Aware per Android § DEI: DiparAmento di EleEronica e Informazione § www.changegrp.org/morphone Cosa vediamo adesso… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Intro e un po’ di storia • Qualche curiosità • Accenni sul funzionamento di un SO 21 Ma prima… DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE PAUSA!!!... 10’ 22 Il sistema Operativo DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Il sistema operativo (SO) è uno strato software che nasconde agli utenti i dettagli dell’architettura hardware del calcolatore • Fornisce diverse funzionalità ad alto livello che facilitano l’accesso alle risorse del calcolatore • Supporta l’esecuzione dei programmi applicativi definendo una macchina virtuale, cioè un modello ideale del calcolatore, sollevando il software applicativo dal compito di gestire i limiti delle risorse disponibili 23 Il SO e la macchina reale DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE utilizzo a rotazione suddivisione in blocchi utilizzo a rotazione RAM CPU A, B, C, D A B C D Periferiche A, B, C, D bus 24 Il SO e le macchine virtuali DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Il sistema operativo può gestire più processi simultaneamente • Rende quindi visibile ad ogni processo una macchina virtuale ad esso interamente dedicata e quindi con risorse proprie RAM B HD B CPU C RAM C HD C bus OD B Rete B I/O B OD C Rete C" I/O C" CPU A RAM A HD A CPU D RAM D HD D OD A Rete A I/O A OD D Rete D I/O D proc. D proc. A CPU B proc. C proc. B § nella figura OD = other devices (altri dispositivi) 25 Architettura del SO DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Il SO è tipicamente organizzato a strati • Ciascun strato costituisce una macchina virtuale che gestisce una risorsa del calcolatore • Le principali funzionalità offerte sono: § La gestione dei processi § La gestione della memoria § La gestione delle periferiche (tra cui la rete) § La gestione del file system § La gestione dell’interfaccia utente • Le prime tre funzionalità sono indispensabili per il funzionamento del sistema e pertanto costituiscono il nucleo del SO (Kernel) Programmi utente Interprete comandi File system Gestione delle periferiche Gestione della memoria Gestione dei processi Macchina fisica Kernel 26 Tipi di Sistema Operativo DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Esistono diversi tipi di sistema operativo, ma in generale si possono dividere in: § Monoutente e monoprogrammato • Esecuzione un solo programma applicativo alla volta • Viene utilizzato da un solo utente per volta • Esempio: DOS § Monoutente e multiprogrammato (multitasking) • Consente di eseguire contemporaneamente più programmi applicativi • Esempio: Windows 95 § Multiutente • Consente l’utilizzo contemporaneo da parte di più utenti • E’ inerentemente multiprogrammato • Esempio: Linux 27 Gestione dell’interfaccia utente DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Il SO fornisce un interprete dei comandi inseriti dall’utente attraverso la tastiera o il mouse • L’interfaccia utente può essere § Testuale (esempio: DOS) § Grafica (esempio: Windows) • Consente l’inserimento di diversi comandi: § § § § Esecuzione di programmi applicativi Operazioni sulle periferiche Configurazione dei servizi del SO Operazioni sul file system (creazione, rimozione, copia, ricerca, ecc.) 28 Gestione del file system DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Il SO si occupa di gestire i file sulla memoria di massa: § Creare un file § Dargli un nome § Collocarlo in un opportuno spazio nella memoria di massa § Accedervi in lettura e scrittura • Gestione dei file indipendente dalle caratteristiche fisiche della memoria di massa • I file vengono inclusi all’interno di directory (o cartelle, o cataloghi) § In genere, le directory sono organizzate ad albero 29 La struttura ad albero DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 30 Organizzazione dei file DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • A ciascun utente è normalmente associata una directory specifica, detta home directory • Il livello di protezione di un file indica quali operazioni possono essere eseguite da ciascun utente • Ciascun file ha un pathname (o nome completo) che include l’intero cammino dalla radice dell’albero • Il contesto di un utente all’interno del file system è la directory in cui correntemente si trova 31 Gestione delle periferiche DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Sono meccanismi software a cui è affidato il compito di trasferire dati da e verso le periferiche • Consentono ai programmi applicativi di leggere o scrivere i dati con primitive di alto livello che nascondono la struttura fisica delle periferiche § e.g., nel sistema Unix le periferiche sono viste come file speciali 32 Gestione dei processi DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Il SO multiprogrammato e multiutente si occupa di gestire l’esecuzione concorrente di più programmi utente • La CPU del calcolatore (o le CPU nei sistemi multiprocessore) deve essere distribuita in maniera opportuna fra i programmi da eseguire • Ogni programma eseguito ha a disposizione una macchina virtuale realizzata dal SO che ne consente l’esecuzione come se la CPU del calcolatore fosse interamente dedicata a esso 33 Che cosa è un processo per il SO? DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Processo ≠ programma ! • Processo = esecuzione di un programma, composto da: § codice eseguibile (il programma stesso) § dati • Lo stesso programma può essere associato a più processi: § Un programma può essere scomposto in varie parti e ognuna di esse può essere associata a un diverso processo § Lo stesso programma può essere associato a diversi processi quando esso viene eseguito più volte, anche simultaneamente 34 Processi e strutture dati DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Ad un processo sono associate le seguenti strutture dati: § Uno o più segmenti di codice § Uno o più segmenti di memoria dati § I descrittori di eventuali risorse in uso (file, finestre, periferiche, ecc.) § Uno o più thread • Un processo consta di tre zone di memoria chiamate regioni: dati, codice e stack 35 Ambiente di esecuzione DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • L’ambiente di esecuzione di una funzione (variabili e parametri formali) viene creato al momento della chiamata e rilasciato quando la funzione termina • In una sequenza di chiamate, l’ultima chiamata è la prima a terminare • La zona di memoria di lavoro che contiene l’ambiente di esecuzione di un sottoprogramma è gestito con la logica di una pila (stack) § L’ultimo elemento inserito nello stack è il primo ad essere estratto § Logica LIFO (Last In First Out) 36 Record di attivazione DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Alla chiamata di una funzione § si alloca uno spazio di memoria (record di attivazione) in cima allo stack per contenere i parametri formali e le variabili locali § lo spazio viene rilasciato quando la funzione termina • Il record di attivazione contiene: § L’ambiente locale della funzione § L’indirizzo di ritorno al chiamante • Funzionamento: § Ad ogni attivazione viene allocato un record di attivazione § Al termine dell’attivazione il record viene rilasciato (l’area di memoria è riutilizzabile) § La dimensione del record di attivazione è già nota in fase di compilazione § Il numero di attivazioni della funzione non è noto § Il primo record di attivazione è destinato al main() 37 Lo stack DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • • • • Nello stack, i record vengono allocati “uno sopra l’altro”; il primo record dello stack è relativo all’ultima funzione attivata e non ancora terminata Lo stack cresce dal basso verso l’alto Stack pointer: registro della CPU che contiene l’indirizzo della cima della pila Una parte della RAM è destinata a contenere lo stack § Stack overflow: quando l’area della RAM destinata allo stack viene superata (troppi annidamenti di chiamate) SP 312 Operazione di inserimento: -incremento SP -scrittura in parola indirizzata da SP Operazione di estrazione: -lettura da parola indirizzata da SP -decremento SP 312 311 310 ... 303 38 Lo stato di un processo DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Lo stato del processo può essere distinto fra stato interno e stato esterno. • Lo stato interno indica: § la prossima istruzione del programma che deve essere eseguita; § i valori delle variabili e dei registri utilizzati dal processo. • Lo stato esterno indica se il processo è: § in attesa di un evento, ad es. la lettura da disco o l’inserimento di dati da tastiera; § in esecuzione; § pronto per l’esecuzione, e quindi in attesa di accedere alla CPU. 39 Stato di un processo (1) DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Inizio esecuzione • In esecuzione: assegnato al processore ed eseguito da esso - Fine quanto di tempo - Interruzione esterna • Pronto: può andare in esecuzione, se il gestore dei processi lo decide Processo pronto Primo processo pronto Processo in esecuzione Evento esterno atteso • In attesa: attende Interruzione interna il verificarsi di un evento esterno per andare in stato di - Fine esecuzione pronto Processo in attesa - Abort per errore 40 Stato di un processo (2) DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • I processi appena creati sono messi in stato di pronto • Il kernel decide quale processo pronto mettere in stato di esecuzione • Il kernel assegna il processore a un processo per un quanto di tempo Inizio esecuzione P1 P2 Processo pronto - Fine quanto di tempo - Interruzione esterna Primo processo pronto Processo in esecuzione Evento esterno atteso § Coda dei processi Interruzione interna pronti § Round-robin § Priorità dei processi - Fine esecuzione - Abort per errore Processo in attesa 41 Stato di un processo (3) DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Il processo in esecuzione passa in stato di attesa se richiede operazioni di I/O (interruzione interna) § Corrisponde alla esecuzione dell’istruzione “chiamata supervisore” (SuperVisor Call, SVC) Inizio esecuzione P2 Processo pronto - Fine quanto di tempo - Interruzione esterna P1 Processo in esecuzione Primo processo pronto Evento esterno atteso Interruzione interna - Fine esecuzione - Abort per errore Processo in attesa 42 Stato di un processo: cambio contesto DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Inizio esecuzione P2 Processo pronto - Fine quanto di tempo q Cambiamento di contesto: - Interruzione esterna " Salvare il contesto di P1 nel suo descrittore di Primo processo processo pronto q Il processore è ora libero, un altro processo passerà in Processo in Evento esterno esecuzione esecuzione atteso Interruzione interna - Fine esecuzione - Abort per errore P1 Processo in attesa 43 Stati di un processo (5) DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE q Quando l’operazione di I/O è finita viene generata una interruzione esterna q Il processo in esecuzione viene interrotto q Il kernel esegue il gestore delle interruzioni che esegue le azioni opportune q P1 può tornare pronto q Il kernel sceglie quale processo mandare in esecuzione Inizio esecuzione - Fine quanto di tempo - Interruzione esterna P2 Processo in esecuzione Processo pronto Primo processo pronto Evento esterno atteso Interruzione interna - Fine esecuzione - Abort per errore P1 Processo in attesa 44 Stato di un processo: Preemption DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE q Preemption: quando il quanto di tempo è scaduto, il kernel interrompe il processo in esecuzione q Si cerca di garantire un uso equo della CPU a tutti i processi Inizio esecuzione P2 Processo pronto - Fine quanto di tempo - Interruzione esterna P1 Processo in esecuzione Primo processo pronto Evento esterno atteso Interruzione interna - Fine esecuzione - Abort per errore Processo in attesa 45 Pausa DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 46 Gestione della memoria DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • La gestione concorrente di molti programmi applicativi comporta la presenza di molti programmi in memoria centrale • Il SO offre a ogni programma applicativo la visione di una memoria virtuale, che può avere dimensioni maggiori di quella fisica • Per gestire la memoria virtuale il SO dispone di diversi meccanismi: § Rilocazione § Paginazione § Segmentazione 47 Il SO e la gestione della memoria DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • E’ un modello lineare MEMORIA 0 • La memoria è una sequenza di celle numerate da 0 fino a un valore massimo M 1 2 • Il numero che identifica ogni cella è detto indirizzo • La dimensione della cella dipende dal tipo di calcolatore (per noi sarà di 8 bit, ossia un byte) M 48 Spazio di indirizzamento DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Lo spazio di indirizzamento è il numero massimo di indirizzi possibili della memoria • Dipende dalla lunghezza in bit degli indirizzi • Se gli indirizzi sono lunghi N bit, lo spazio di indirizzamento è di 2N celle • Tutte le celle devono essere indirizzabili (cioè devono avere un indirizzo), quindi § Dimensione memoria ≤ Spazio indirizzamento • Le dimensioni della memoria sono generalmente espresse in: § KB (Kilobyte) = 210 byte § MB (Megabyte) = 220 byte § GB (Gigabyte) = 230 byte 49 Memoria virtuale vs. fisica DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • La memoria virtuale e quella fisica non coincidono per i seguenti motivi: § nella memoria fisica risiedono contemporaneamente il SO e i diversi processi § conviene mantenere nella memoria fisica una sola copia di parti di programmi che sono uguali in diversi processi (memoria condivisa) • Per evitare la frammentazione della memoria (spazi vuoti in memoria inutilizzabili) è utile allocare i programmi suddividendoli in pezzi • La memoria fisica può essere insufficiente a contenere la memoria virtuale di tutti processi • Gli indirizzi contenuti in un programma eseguibile sono indirizzi virtuali e fanno riferimento alla memoria virtuale • La memoria effettivamente presente nel calcolatore è la memoria fisica e i suoi indirizzi sono detti indirizzi fisici 50 Rilocazione DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Rilocazione: meccanismo di trasformazione da indirizzo virtuale (detto anche rilocabile) a fisico § Statica: i nuovi indirizzi vengono calcolati al caricamento del programma in memoria § Dinamica: ogni indirizzo viene calcolato al momento durante l’esecuzione Registro base + Indirizzo calcolato (fisico) Indirizzo virtuale (rilocabile) 51 Rilocazione: esempio DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE MEMORIA PROCESSORE Registro base 999 RB 1000 + 1000 0 1001 1 1002 2 1003 3 processo in esecuzione 1004 PC 3 indirizzi fisici indirizzi virtuali 52 Problema della frammentazione DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE MEMORIA Sistema Operativo Processo P MEMORIA Processo S Sistema Operativo Processo P Processo S (1) Processo Q Processo Q Processo S (2) Processo R Processo R Paginazione DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si rinuncia ad avere una zona contigua della memoria fisica per ciascun processo • La memoria virtuale del programma viene suddivisa in porzioni (pagine virtuali) di lunghezza fissa (pot. di 2, e.g., 4K) • La memoria fisica viene divisa in pagine fisiche della stessa dimensione • Le pagine virtuali di un programma vengono caricate in altrettante pagine fisiche, non necessariamente contigue 54 Paginazione: esempio DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE MEMORIA FISICA MEMORIA VIRTUALE P dimensione pagina MEMORIA VIRTUALE Q Struttura degli indirizzi virtuali DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Un indirizzo virtuale è costituito da un numero di pagina virtuale (NPV) e da uno spiazzamento (offset) all’interno della pagina indirizzo virtuale NPV offset 56 Struttura degli indirizzi fisici DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • E’ del tutto analoga: si hanno un numero di pagina fisica (NPF) e da uno spiazzamento (offset) all’interno della pagina indirizzo fisico NPF offset 57 Traduzione dal virtuale al fisico DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE indirizzo virtuale offset NPV traduzione NPF offset indirizzo fisico le pagine virtuali e quelle fisiche hanno la stessa dimensione, quindi l’offset è lo stesso Esempio DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Spazio di indirizzamento virtuale: § indirizzi da 32 bit ð 232 indirizzi • Dimensione di pagina: 4K parole (o celle) ð 212byte (1 cella occupa 1 byte) § Offset ð numero di bit necessari per indirizzare una cella all'interno di una pagina = log2(dimensione_pagina)=12 • Numero di pagine dello spazio di indirizzamento virtuale § 232/212 = 220 pagine • Spazio di indirizzamento fisico: § 4M parole (o celle) ð 222 indirizzi • Numero di pagine dello spazio di indirizzamento fisico § 222/ 212 = 210 pagine 59 Esempio (segue) DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE indirizzo virtuale offset NPV 20bit 12bit 10bit 12bit NPF offset indirizzo fisico 60 La tabella delle pagine DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • E’ il meccanismo più semplice per la traduzione da virtuale a fisico indirizzo virtuale NPV = 0 NPV offset NPF 0 1 2 3 NPF offset indirizzo fisico C’è una tabella delle pagine per ciascun processo 61 Memory Management Unit DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Per accelerare la traduzione da NPV a NPF si ricorre allora alla MMU • La MMU è una memoria particolarmente veloce (memoria associativa) dalle dimensioni ridotte, contenente le informazioni per la traduzione da NPV a NPF delle pagine più utilizzate • Visto che gli NPV e gli NPF si riferiscono alle pagine di un processo, ogni volta che il processo in esecuzione cambia la MMU dovrebbe essere tutta riscritta • Per evitare ciò si aggiunge una colonna che dice a quale processo appartengono le pagine e un registro che dice qual è il processo attualmente in esecuzione 62 Pagine residenti e non DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Durante l’esecuzione di un programma solo un certo numero delle sue pagine virtuali è caricato in altrettante pagine fisiche • Tali pagine sono dette pagine residenti • A ogni accesso alla memoria si controlla che all’indirizzo virtuale corrisponda una pagina residente, altrimenti si produce un interrupt di segnalazione di errore detto page-fault • Il processo viene sospeso in attesa che la pagina richiesta venga caricata in memoria, eventualmente scaricando su disco una pagina già residente per liberare lo spazio necessario 63 La memoria cache DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Il problema della memoria: costo vs. prestazioni • Obiettivo: § fornire agli utenti una memoria grande e veloce § fornire al processore i dati alla velocità con cui è in grado di elaborarli • Problema: Il tasso di crescita nella velocità dei processori non è stato seguito da quello delle memorie § Tempo di accesso alle SRAM (Static Random Access Memory): • 2 - 25ns al costo di $100 - $250 per Mbyte. § Tempo di accesso alle DRAM (Dynamic Random Access Memory): • 60-120ns al costo di $5 - $10 per Mbyte. § Tempo di accesso al disco: • da 10 a 20 million ns al costo di $0.10 - $0.20 per Mbyte. 64 Prestazioni di processori e cache DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE 1000! CPU! Legge di Moore Divario di prestazioni Processore-Memoria (cresce 50% / anno) 10! DRAM 1! DRAM 9%/anno (2X/10yr) 1980! 1981! 1982! 1983! 1984! 1985! 1986! 1987! 1988! 1989! 1990! 1991! 1992! 1993! 1994! 1995! 1996! 1997! 1998! 1999! 2000! Prestazioni 100! µProc 60%/anno (2X/1.5yr) Tempo 65 Gerarchia di memoria DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Tipicamente costituita da 1. 2. 3. 4. 5. registri contenuti nella CPU (qualche KB) cache (da circa 32KB a circa 4096KB) memoria principale (da circa 512MB a qualche GB) dischi fissi (da qualche centinaio di GB a qualche TB) nastri magnetici e dischi ottici (da qualche centinaio di GB a qualche TB per ogni supporto) Man mano che ci si sposta verso il basso nella gerarchia aumenta il valore dei parametri fondamentali: § § § aumenta il tempo di accesso; aumenta la capacità di memorizzazione; ma diminuisce il costo per bit. Una gerarchia di memoria RAM Supporti esterni tecnologia tecnologia magnetica ottica (HD esterni) (CD, DVD) tecnologia elettronica (flash disk) Disco fisso (hard disk) tecnologia magnetica Involucro esterno del calcolatore (case) Cache II liv Scheda madre (motherboard) Cache I liv Circuito Integrato (chip) Registri CPU DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Caratteristiche dei diversi livelli DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Livello Capacità Tempo di accesso Transfer rate (GB/s) Registri ~ 1 KB ~ 0.2 ns (1 ciclo di clock) – Cache I livello ~ 32 KB ~ 0.4 ns (2/4 cicli di clock) – Cache II livello ~ 1/2 MB ~ 1/2 ns (5/10 cicli di clock) ~ 100 Cache III livello ~ 2/8 MB ~ 5 ns ~ 50 Memoria centrale ~ 2/8 GB ~ 50 ns (1ª parola richiesta) ~ 10 ns (parole successive) ~ 5/10 Dischi interni > 300 GB ~ 10 ms 0.15/0.6 Dischi esterni > 300 GB ~ 10 ms ~ 0.05 Località DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • E’ la proprietà fondamentale dei programmi che rende possibile sfruttare l’organizzazione gerarchica della memoria per incrementarne le prestazioni • Località: in ogni istante di tempo un programma accede a una parte relativamente piccola del suo spazio di indirizzamento § Località temporale: se un dato viene referenziato in un dato istante, è probabile che lo stesso dato venga nuovamente richiesto entro breve § Località Spaziale: Se un dato viene utilizzato in un dato istante, è probabile che dati posizionati in celle di memoria adiacenti vengano 69 Cache DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Memoria al livello superiore della gerarchia • Sfruttare il principio di località dei programmi e tenere in memoria cache i dati utilizzati più di recente • Obiettivo: fornire dati al processore in uno o due cicli di clock • Memoria cache: veloce nei tempi di accesso ma di dimensioni ridotte 70 Gerarchia di memoria DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Si considerino solo due livelli di gerarchia • Il processore richiede un dato al sistema di memoria: § La richiesta viene prima inviata al livello di memoria superiore (più vicino al processore) § Se il dato non è presente nel livello superiore (fallimento della richiesta) la ricerca viene effettuata nel livello inferiore Al Processore Livello sup. di memoria Livello inf di memoria blocco X Dal Processore blocco Y 71 Gerarchia di memoria: definizioni DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Hit (successo): dati presenti in un blocco del livello superiore (esempio: Blocco X) § Hit Rate (“%” di successo): numero di accessi a memoria che trovano il dato nel livello superiore sul numero totale di accessi § Hit Time (tempo di successo): tempo per accedere al dato nel livello superiore della gerarchia 72 Gerarchia di memoria: definizioni DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Miss (fallimento): i dati devono essere recuperati dal livello inferiore della memoria (Blocco Y) § Miss Rate (“%” di fallimento) = 1 - (Hit Rate) § Miss Penalty (tempo di fallimento): tempo per determinare il MISS + tempo necessario a sosituire un blocco nel livello superiore + tempo per trasferire il blocco al processore § tipicamente si ha: Hit Time << Miss Penalty • Tempo medio di accesso in presenza di memoria cache: semplicemente la media pesata con le probabilità § HitTime*HitRate + MissRate*MissPenalty 73 Cache e principio di località DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Le memorie cache sfruttano il principio di località spaziale trasferendo dal livello inferiore della gerarchia più dati di quanti non ne siano stati strettamente richiesti (blocco o linea di cache) • La località temporale viene sfruttata nella scelta del blocco da sostituire nella gestione di un fallimento (es: sostituire il blocco a cui si è fatto accesso meno di recente) 74 Fine DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Grazie di tutto, è stato un bel cammino! Vi auguro il meglio! 75 Fine DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Grazie di tutto, è stato un bel cammino! Vi auguro il meglio! 76 Fine DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE Grazie di tutto, è stato un bel cammino! Vi auguro il meglio! 77 Fonti per lo studio + Credits DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE • Fonti per lo studio § Il Sistema di elaborazione, Slide Info B, M. D. Santambrogio § Informatica arte e mestiere, S. Ceri, D. Mandrioli, L. Sbattella, McGrawHill • Capitolo 2 § Introduzione ai sistemi informatici, D. Sciuto, G. Buonanno, L. Mari, 4a Ed, McGrawHill • Capitolo 1, 2, 5 § The Art & Craft of Computing, S. Ceri, D. Mandrioli, L. Sbattella, Addison-Wesley • Capitolo 2 • Approfondimenti § Struttura e progetto dei calcolatori, D. A. Patterson, J. Hennessy, 3a Ed, Zanichelli • Capitolo 1, 2 • Credits § Prof. G. Buonanno e D. Sciuto, LIUC 78
© Copyright 2024 Paperzz