Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoJacopo Fantini Modificato 8 anni fa
1
1 Introduzione pag. 52 Cap.1 - Caratteristiche generali dei sistemi operativi 1
2
Caratt. gen. dei sis.op. (2.1, Introduzione, pag.52-54) 2 SISTEMA OPERATIVO Un software (o meglio un insieme di programmi) che sovrintende il funzionamento di un computer, eseguendo molti compiti diversi. Tra i più noti: DOS (pc), ), Windows (pc), Linux (pc), Mac OS X (pc), Unix (mini), VMS (mini), MVS (mainframe),. I compiti e gli aspetti funzionali più importanti di un S.O.: 1.Gestire l’interazione Utente – Computer 2.Fornire una interfaccia tra applicazioni e risorse 3.Gestire la condivisione di risorse 4.Ottimizzare l’uso delle risorse 5.Fornire servizi per lo sviluppo del software e per l’amministrazione del Sistema
3
3 1. Interazione utente - computer L’utente interagisce con la macchina grazie all’interfaccia messa a disposizione dal S.O (shell). L’utente non deve conoscere i dettagli del funzionamento della macchina ma deve solo conoscere i comando o le modalità di svolgimento delle varie operazioni (es.: cliccare su una icona per avviare un programma, premere Canc per cancellare un file, ecc.) L’interfaccia di un S.O. può utilizzare due modalità: Modalità a linea di comando (DOS, UNIX, MVS, …) Modalità grafica (Windows, Linux, Mac OS X) In realtà i sistemi che adottano la modalità grafica consentono anche l’interazione attraverso comandi, per utenti più esperti. Caratt. gen. dei sis.op. (2.1, Introduzione, pag.52-54)
4
2. Interfaccia tra applicazioni e risorse Le applicazioni software possono interfacciarsi con la macchina senza conoscerne i dettagli di funzionamento. Il S.O. fornisce i servizi necessari per lo svolgimento dei diversi compiti. Il programma deve solo sapere come utilizzare questi servizi. In questo modo scrivere programmi è molto più semplice. Es.: un programma di video scrittura (es. Word) deve salvare un testo. Il programma prepara i dati da salvare su disco (il testo creato dall’utente) e invia una richiesta al s.o. Il S.O. preleva i dati dalla memoria centrale e li copia su disco. Il programma non deve conoscere i dettagli dell’operazione (a che indirizzo di memoria si prelevano i dati, in quale posizione su disco vanno salvati, ecc.). Queste informazioni le conosce e le gestisce il sistema operativo. 4 Caratt. gen. dei sis.op. (2.1, Introduzione, pag.52-54)
5
3. Gestire la condivisione di risorse Le risorse di un computer sono: CPU, memoria centrale, memorie di massa (disco, ecc.), periferiche. Queste risorse devono poter essere utilizzate da diversi utenti o programmi, a volte anche “contemporaneamente”. Ma i diversi programmi non devono intralciarsi a vicenda. Es: CPU: la usano molti programmi: chi ha la precedenza? quanto tempo può usarla? Memoria centrale: quanto spazio può occupare un programma? Come evitare che un programma scriva sullo spazio di un altro? Disco: dove e come registrare un file? Come gestire gli spazi disponibili? Come garantire la riservatezza dell’accesso a un file? Periferiche (es. stampante): diversi utenti o programmi lanciano contemporaneamente un stampa. Come evitare che le stampe si mescolino? 5 Caratt. gen. dei sis.op. (2.1, Introduzione, pag.52-54)
6
4. Ottimizzare l’uso di risorse Le risorse condivise devono essere utilizzate in modo efficiente. Devono essere evitati sprechi e sotto-utilizzi. Es: CPU: se diversi programmi la richiedono, bisogna evitare che rimanga inutilizzata in certi momenti. Memoria centrale: non basta mai! Bisogna evitare di tenere in memoria dati che al momento non sono utilizzati. Bisogna evitare che un programma occupi aree di memoria più grandi di quelle di cui ha bisogno. Disco: gli accessi a disco richiedono molto tempo. Bisogna cercare di minimizzare questi tempi. Gli spazi disponibili devono essere usati in modo efficiente. Periferiche: considerazioni analoghe valgono per diversi tipi di periferiche. 6 Caratt. gen. dei sis.op. (2.1, Introduzione, pag.52-54)
7
5. Fornire servizi per la gestione e l’amministrazione del computer Il S.O. deve mettere a disposizione dell’utente (o dell’amministratore di sistema) i servizi attraverso cui controllare l’uso del computer e delle sue risorse. Es: Quanto spazio è occupato sul disco? Come si fa a liberare spazio? Quali programmi stanno usando molta memoria? Quali stanno monopolizzando il processore? Come modificare i diritti di accesso a un file o a una cartella? 7 Caratt. gen. dei sis.op. (2.1, Introduzione, pag.52-54)
8
Alcune caratteristiche di un S.O. Multiutenza / Monoutenza Un sistema multiutente (multiuser) consente a diversi utenti (anche decine o centinaia) di utilizzare lo stesso computer contemporaneamente mediante dei “terminali”. In un sistema monoutente solo un utente per volta può usare il computer. Multitasking / Monotasking In un sistema multitask possono essere in esecuzione diverse applicazioni in uno stesso intervallo di tempo. In un sistema monotask, una sola. Quando le applicazioni possono essere di diversi utenti si usa anche il termine multiprogrammazione. Dos: monoutente, monotask Windows XP, Mac OS-X: monoutente, multitask Unix, Linux, VMS: multiutente, multitask (o multiprogrammato) 8 Caratt. gen. dei sis.op. (2.1, Introduzione, pag.52-54)
9
2 Risorse hardware e software del computer pag. 54 Cap.2 - Caratteristiche generali dei sistemi operativi 9
10
Caratt. gen. dei sis.op. (2.2, Risorse, pag.54-58)10 Computer System = Sistema per l’elaborazione di dati Un computer system comprende: hardware, sistema operativo, software (di sistema e applicativo) Hardware Sistema operativo Software di Sistema Shell, editor, Compilatori, Loader, DBMS, ecc. Software Applicativo Word, Excel, Giochi, browser, ecc. Programmatori di applicazioni Programmatori di sistema Utenti finali Ogni strato usa servizi e funzionalità del livello sottostante … con qualche eccezione es. DBMS che gestiscono direttamente l’Hw per una migliore efficienza I programmatori interagiscono direttamente con il S.O. tramite le System Call
11
System call = Chiamate a sistema Possono essere effettuate dal linguaggio assembly e da alcuni linguaggi ad alto livello, come C. Sono note anche come API (Application Programming Interface). Permettono di interagire direttamente con il S.O. per richiederne i servizi (es.: aprire un file, avviare un programma, ecc.) Per l’utente finale il computer è essenzialmente un esecutore di applicazioni. L’utente interagisce con il sistema solo attraverso la shell (shell dei comandi oppure shell grafica) Il S.O. dal p.d.v. dell’utente finale ShellSistema Operativo 11 Caratt. gen. dei sis.op. (2.2, Risorse, pag.54-58)
12
Shell a comandi Prompt dei comandi Comando richiesto dall’utente Risposta dal S.O. 12
13
Shell grafica 13Caratt. gen. dei sis.op. (2.2, Risorse, pag.54-58)
14
Il kernel (nucleo) di un s.o. ha il compito di fornire ai processi in esecuzione sull'elaboratore un accesso sicuro e controllato all'hardware e di gestire il processore. Di solito il kernel è sempre residente in memoria centrale, pronto per l’esecuzione. KERNEL di un S.O. Ogni processore moderno può funzionare in due modalità: riservata e utente. Solo il Sistema Operativo deve poter eseguire istruzioni in modalità riservata. Modalità riservata: possono essere eseguiti tutti i tipi di istruzioni. Modalità utente: per ragioni di sicurezza, può essere eseguito solo un sottoinsieme di istruzioni. La modalità riservata è anche detta modalità supervisor, modalità kernel, o modo di sistema. 14 Nota: In alcuni s.o. (detti a kernel monolitico) il kernel comprende anche i meccanismi di gestione di altre risorse (es. Linux). L’intero sistema operativo tende a identificarsi con il nucleo. In altri s.o. (detti a microkernel) le funzioni del kernel riguardano il minimo indispensabile cioè la gestione del processore e dei processi. Le altre risorse sono gestite da processi separati. Altri s.o. (detti a kernel ibrido, tra cui Windows NT e successivi) sono dei microkernel che includono anche funzioni aggiuntive rispetto alla sola gestione dei processi. Caratt. gen. dei sis.op. (2.2, Risorse, pag.54-58)
15
3 Caratteristiche dei primi sistemi operativi pag. 58 Cap.2 - Caratteristiche generali dei sistemi operativi 15
16
Caratt. gen. dei sis.op. (2.3, I primi s.o., pag.58-61) Evoluzione dei S.O. Primi calcolatori (anni 40): nessun s.o. Il programma in codice binario viene caricato direttamente in memoria. Ingressi e uscite mediante lettori e perforatori di schede. Successivamente, passaggio ai linguaggi simbolici (assembly). Si carica in memoria il programma e l’assemblatore. Sistemi batch (anni 50). Compaiono i primi linguaggi ad alto livello (fortran). Il programma viene compilato, linkato, eseguito. Ogni lavoro dell’utente è chiamato job. L’input e l’output avviene mediante lettori di schede e stampe risultati. I programmi non sono interattivi. Il sistema è monoprogrammato. Viene eseguito un solo job per volta. Programma memoria Interprete JCL memoria Routine di servizio Programmi utente e di sistema 16
17
Nei primi sistemi batch e in generale in un sistema monoprogrammato la CPU risulta sempre sottoutilizzata. Perché? Esiste una netta differenza nei tempi di accesso alla memoria centrale e alle memorie di massa (da 1000 a 10000 volte). Es.: anni ’60: istruzioni eseguite in … microsecondi, operazioni su disco in … centesimi di secondo oggi: istruzioni eseguite in … nanosecondi, operazioni su disco in … millisecondi. Anche se le velocità attuali sono molto maggiori, in proporzione la differenza tra i due tipi di accesso è sempre altissima. Quando un programma deve effettuare anche una singola operazione di lettura (input) o scrittura (output) di dati su disco, la CPU rimane inutilizzata, in attesa del completamento. Di solito la maggior parte del tempo di esecuzione di un job è dovuta all’I/O, solo una piccolissima percentuale è tempo di uso della CPU. 17 Caratt. gen. dei sis.op. (2.3, I primi s.o., pag.58-61)
18
Programmi: P1 e P2. T cpu = Tempo utilizzo della CPU T i/o = Tempo per input /output T tot = Tempo totale = T cpu + T i/o Esecuzione monoprogrammata: esempio Esecuzione in sequenza: P2 deve aspettare che termini P1, anche se nei primi 12 ms la CPU in realtà è quasi sempre libera! Altro problema: I job possono avere differenti durate. Es.: P1 (3 ore), P2 (5 ore), P3 (2 minuti). Se i job vengono eseguiti in questo ordine, P3 deve aspettare 8 ore. Come si può minimizzare il tempo medio di attesa? 18 Caratt. gen. dei sis.op. (2.3, I primi s.o., pag.58-61)
19
4 Sistemi operativi multiprogrammati pag. 61 Cap.2 - Caratteristiche generali dei sistemi operativi 19
20
Caratt. gen. dei sis.op. (1.4, s.o. multiprog., pag.61-63) 20 S.O. multiprogrammati Anni ’60: Per migliorare l’utilizzazione della CPU si passa al concetto di elaborazione batch multiprogrammata. Sistema operativo memoria P1 P2 P3 Multiprogrammazione Più programmi sono contemporaneamente residenti in memoria centrale. Quando il programma in esecuzione deve fare un’operazione di i / o, la CPU, invece di rimanere inattiva, inizia ad eseguire un altro programma. Grado di multiprogrammazione = numero programmi residenti in memoria Maggiore è il G mp, minore è la probabilità che la CPU rimanga inattiva. Si presentano però nuove problematiche e nuove esigenze: 1.Necessità di protezione della memoria da accessi illeciti 2.Controllare l’uso della CPU e evitare la monopolizzazione 3.Limitare l’intervento della CPU nelle operazioni di lettura / scrittura su disco (introduzione del DMA) 4.Gestione degli interrupt 5.Tecniche di spooling per l’input / output
21
1. Protezione della memoria Utilizzo di registri limite I due registri vengono caricati al momento in cui il programma entra in esecuzione. L’hardware controlla che ogni indirizzo rientri nei limiti ammessi, altrimenti interrompe l’esecuzione e dà il controllo al s.o. Sistema operativo memoria P1 P2 P3 24568 35897 2. Controllo dell’uso della CPU E’ necessario utilizzare un timer Quando scade il tempo limite prefissato il controllo deve tornare al s.o. 3. Evitare di impegnare la CPU nel controllo di operazioni di i/o Si introduce il DMA (Direct Memory Access) Il DMA si occupa di gestire autonomamente il trasferimento di dati da disco a memoria centrale e viceversa. Il processore deve solo inizializzare l’operazione. Durante il trasferimento dei dati la CPU può eseguire altri programmi. 21 Caratt. gen. dei sis.op. (1.4, s.o. multiprog., pag.61-63)
22
4. Gestione degli interrupt L’interruzione può avvenire per vari motivi (es: violazione di memoria, necessità di effettuare i/o, ecc.) Il s.o. deve interrompere il programma in esecuzione, salvando lo stato di esecuzione, in modo da poterlo fare riprendere successivamente dal punto in cui era stato interrotto. Far partire un altro programma. 5. SPOOL per le operazioni di input / output SPOOL = Simultaneous Peripheral Operation On Line In ambiente multiprogrammato due programmi in esecuzione (processi) che effettuano stampe potrebbero produrre in stampa righe mescolate. (Il problema è analogo per la lettura da un lettore di schede) La tecnica dello spooling consiste nell’utilizzare un’apposita area del disco per effettuare virtualmente le operazioni di input / output. In questo modo non è necessario bloccare l’esecuzione di un programma fino a quando il primo non ha terminato la sua stampa. Stampe di P1Stampe di P2 Processo di spool del s.o. P1 P2 Disco 22 Caratt. gen. dei sis.op. (1.4, s.o. multiprog., pag.61-63)
23
Multiprogrammazione Esercizio: Calcolare la percentuale di utilizzo della CPU in caso di multiprogrammazione ed in caso di monoprogrammazione P1: 1ms di cpu, 6ms di i/o, 01 ms di cpu, 4ms di i/o (12 ms in tutto) P2: 2ms di i/o, 6ms di CPU, 2 ms i/o (10 ms in tutto) Inizia P1 Attenzione: solo un programma per volta usa la CPU. Le operazioni di I/O possono invece avvenire in parallelo. 01234567891011121314 P1 P2 Multiprogrammazione P2 termina dopo 11 ms P1 termina dopo 14 ms T cpu = 8 ms T tot = 14 ms Perc. utilizzo CPU = Tcpu / Ttot = 57% Monoprogrammazione P1 termina dopo 12 ms P1 termina dopo 22 ms T cpu = 8 ms T tot = 22 ms Perc. utilizzo CPU = Tcpu / Ttot = 36% 23 Caratt. gen. dei sis.op. (1.4, s.o. multiprog., pag.61-63)
24
5 Sistemi time sharing e sistemi basati sulla priorità pag. 63 Cap.2 - Caratteristiche generali dei sistemi operativi 24
25
Caratt. gen. dei sis.op. (2.5, time sharing, pag.63-64) Programmi CPU bound = programmi che utilizzano per la maggior parte del tempo la CPU e fanno poco I/O Programmi I/O bound = programmi che per la maggior parte del tempo fanno I/O e utilizzano poco la CPU La multiprogrammazione così come descritta in precedenza tende a privilegiare i programmi CPU bound. I programmi interattivi (che sono I/O bound) sono fortemente penalizzati. Per evitare il problema si introducono le tecniche di time sharing e di priorità. Multiprogrammazione con priorità Ai programmi si assegna una priorità. Al momento di mandare in esecuzione un programma il s.o. sceglie quello con la priorità più alta. Se è in esecuzione uno a priorità più bassa, questo viene interrotto. Multiprogrammazione con time sharing (divisione di tempo) E’ tipica dei sistemi interattivi. Il tempo di CPU viene suddiviso tra i diversi programmi in esecuzione. La politica più semplice è nota come Round Robin. I sistemi operativi attuali adottano entrambe le tecniche (priorità e time sharing) 25
26
Politica ROUND ROBIN E’ la politica di divisione del tempo più semplice I programmi sono tutti considerati paritari e sono inseriti in una coda. Ad ognuno viene assegnato un quanto di tempo (time slice), uguale per tutti. Se allo scadere del time slice il programma è ancora in esecuzione viene interrotto e torna in coda. Se richiede un I/O prima dello scadere del time slice torna in coda. A rotazione vengono eseguiti tutti per un time slice finché non terminano. CPU P1 P5P4P3P2 P1 entra in esecuzione (max per un time slice) CPU P2 P1P5P4P3 Allo scadere del time slice: P1 torna in coda ed entra in esecuzione P2 P1 26 Caratt. gen. dei sis.op. (2.5, time sharing, pag.63-64)
27
Parallelismo reale e simulato Le tecniche di time sharing permettono di realizzare un parallelismo virtuale tra i programmi in esecuzione (pseudo-parallelismo o parallelismo simulato). Ogni programma è eseguito come se avesse a disposizione il processore e lo potesse usare solo lui. In realtà il processore esegue a turno e a rotazione tutti i programmi ma in ogni istante è in esecuzione un solo programma. Se il time slice assegnato è abbastanza breve (di solito pochi millisecondi o anche meno), l’utente non percepisce nessuna discontinuità nell’esecuzione. Per aver un parallelismo reale (e non simulato) è necessario avere più processori. Esempio: architetture SMP (Simmetric Multi Processor) CPU Memoria 27 Caratt. gen. dei sis.op. (2.5, time sharing, pag.63-64)
28
6 Funzioni e struttura del sistema operativo pag. 65 Cap.2 - Caratteristiche generali dei sistemi operativi 28
29
Caratt. gen. dei sis.op. (2.6, funz.&strut. s.o., pag.65-67) Risorse di un sistema Un S.O. deve gestire le risorse di un sistema di elaborazione (computer). Le risorse principali sono: Processore/i: il s.o. deve decidere come quando e a quali processi assegnare la CPU Memoria centrale: come e quanta memoria assegnare a ogni processo Dispositivi di I/O: gestire i trasferimenti di dati da e verso le periferiche e le mem. di massa Informazioni: organizzare il sistema di gestione dei file (file system) Per questi compiti cosa è necessario? Tenere conto dello stato delle risorse. Servono strutture dati per sapere ad es. se e quanta memoria è disponibile, se il processore è libero o no, ecc. Politiche per l’allocazione di risorse. Es.: con quali criteri assegnare o togliere memoria, come assegnare il processore, ecc. Metodi per allocare e togliere risorse ai processi. Strumenti hardware e software per assegnare o togliere memoria, per allocare un processo, per avviarlo o interromperlo, ecc. Il Sistema Operativo è un software di grande complessità. L’architettura e il modello organizzativo di un S.O. è molto importante sia per progettarlo che per comprenderne il funzionamento. 29
30
Modello a strati di un sistema operativo 5. Shell dei comandi Hardware 1. Gestione processi e processore 2. Gestione memoria 3. Gestione periferiche 4. Gestione informazioni Ogni livello ha compiti specifici. Utilizza servizi del livello inferiore e offre servizi al livello superiore. Ogni livello è visto come una macchina virtuale. Ogni livello opera sulla macchina virtuale del livello inferiore e costruisce una macchina virtuale più potente. Ogni livello non deve preoccuparsi di come sono gestite le problematiche del livello sottostante. 30 1.Gestione processore. Fornisce una macchina virtuale che funziona come se ogni processo avesse un suo processore privato. Il livello superiore non deve più preoccuparsi della condivisione della risorsa processore. 2.Gestione memoria centrale. Fornisce una macchina virtuale in cui ogni processo ha un suo processore e una memoria tutta a sua disposizione. 3.Gestione periferiche. Fornisce una macchina virtuale in cui ogni processo oltre alle risorse precedenti ha anche delle periferiche dedicate. 4.Gestione informazioni. Fornisce una macchina virtuale in cui ogni programma in esecuzione interagisce con le proprie informazioni in modo riservato. 5.Shell. Le applicazioni girano (cioè sono eseguite) su una macchina virtuale completamente dedicata all’applicazione stessa. L’utente finale opera sulla macchina virtuale di alto livello, molto più potente e facile da utilizzare rispetto alla macchina reale (hardware). Caratt. gen. dei sis.op. (2.6, funz.&strut. s.o., pag.65-67)
31
Architettura a microkernel 31 Il nucleo del sistema operativo esegue un minimo di funzioni essenziali (gestione processore, interruzioni, comunicazioni tra processi, …). Tutte le altre funzioni sono svolte fuori dal kernel e trattate alla stregua di applicazioni. Solo il kernel del s.o. è eseguito in modalità riservata, tutto il resto opera in modalità utente. Hardware Microkernel Gestione processi e processore Gestione della memoria Shell dei comandi Gestione dell’ I / O Gestione delle informazioni Vantaggi: Sistemi operativi più semplici e flessibili. Aggiornamento e manutenzione semplificata (si aggiornano delle applicazioni). Comunicazioni tramite scambio di messaggi tra i diversi componenti del s.o. Caratt. gen. dei sis.op. (2.6, funz.&strut. s.o., pag.65-67)
32
Caratt. gen. dei sis.op. (informazioni complementari)32 Microkernel Sistemi operativi più semplici e flessibili nell’aggiornamento e nella manutenzione (si aggiornano delle applicazioni). Kernel Monolitico vs. Microkernel Nei S.O. a kernel monolitico il kernel comprende i meccanismi di gestione del processore ma anche di tutte le altre risorse (es. Linux). L’intero sistema operativo tende a identificarsi con il nucleo. Nei S.O. a microkernel le funzioni del kernel riguardano il minimo indispensabile cioè la gestione del processore e dei processi. Le altre risorse sono gestite da processi separati. Nei S.O. a kernel ibrido (tra cui Windows NT e successivi) si ha un microkernel che include anche funzioni aggiuntive per migliorare le prestazioni. Kernel monolitico Svantaggi: maggiore complessità di integrazione di nuovo codice se si aggiunge nuovo hardware bisogna ricompilare il kernel. Tuttavia i kernel monolitici più moderni come il Kernel Linux e FreeBSD possono caricare dei moduli in fase di esecuzione. Vantaggi: È più semplice progettarli correttamente quando l'implementazione è completa e sicura, la stretta integrazione interna dei componenti rende un buon kernel monolitico estremamente efficiente.
33
8 La memoria cache e la gerarchia delle memorie pag. 76 Cap.2 - Caratteristiche generali dei sistemi operativi 33
34
Caratt. gen. dei sis.op. (2.8, memoria cache e gerarchia memorie, pag.76-78)34 Contrariamente a ciò che si potrebbe pensare le prestazioni di un processore non sono direttamente proporzionali alla velocità del processore. Ad esempio raddoppiando la velocità del processore i tempi di esecuzione non raddoppiano. Come mai? I tempi di accesso alla memoria centrale sono in proporzione molto più alti dei tempi di accesso ai registri e dei tempi della ALU. Esempio: Esecuzione istruzione: MUL 2A8C (moltiplica il contenuto di memoria all’indirizzo 2A8C per il contenuto del registro AL e mette in AX il risultato) Ipotizziamo i seguenti tempi: 2 ns trasferimento dati dal registro all’ALU e viceversa 6 ns esecuzione prodotto 70 nstrasferimento dati da memoria Tempo totale = (2 + 70 + 6 + 2) ns = 80 ns Immaginiamo di raddoppiare la velocità del processore. Si dimezza il tempo di esecuzione del prodotto, ma non il tempo di trasferimento da CPU a memoria centrale e viceversa. Tempo totale = (1 + 70 + 3+ 1) ns = 75 ns Il miglioramento ottenuto è di 5 ns su 80 ns (appena il 6%) MemoriaCPU ALU Registro AX 2A8C 1° 2° 4° 3° moltiplica zione 45
35
35 La velocità dei processori è molto maggiore di quella dell’accesso alla RAM. Esistono però delle memorie ad accesso molto più veloce (memorie associative), ma sono troppo costose per sostituirle alla RAM. La soluzione è quella di creare un livello intermedio tra memoria centrale e CPU: la memoria cache. CPU RAM cache Il processore cerca una parola di memoria nella cache. Se la parola non è in cache, viene trasferita dalla RAM alla cache, insieme a un blocco di locazioni vicine (es: 8 locazioni). E’ molto probabile che entro breve tempo si dovrà accedere a queste locazioni (principio di località). Si possono anche avere più livelli di cache tra memoria centrale e CPU (cache livello1, cache livello2, ecc.). abcdef Lo stesso principio si può applicare a tutti i supporti di memorizzazione, costituendo una Gerarchia delle Memorie. Tipo memorie Tempo accessoLivelli gerarchiaCapacità Freq. accessi Quantità dati trasferiti per operaz. Costo per bit volatili 1 nsRegistri CPU< 1 KB 2-5 nsMemorie cache1-2 MB 20-200 nsMemoria centrale (RAM)1-4 GB permanenti 20-30 nsDischi magnetici50-1000 GB Diversi secondiNastri magnetici> 100 GB Caratt. gen. dei sis.op. (2.8, memoria cache e gerarchia memorie, pag.76-78)
36
36 Obiettivo della gerarchia delle memorie Si vuole fare in modo che: Memorie più lente e più capienti: si accede meno frequentemente ma si trasferiscono più dati per volta. Memorie più veloci e meno capienti: si accede più frequentemente ma si trasferiscono meno dati per volta Si cerca così di realizzare un sistema in cui virtualmente la memoria complessiva ha capacità che si avvicinano a quelle delle memorie fisiche più grandi (dischi, nastri) e tempi di accesso vicini a quelli delle memorie più veloci (registri, cache). Registri Cache L2 Cache L3 RAM Memoria di massa Cache L1 Lettura dati da disco Lettura da RAM a cache L3 Lettura nelle cache successive Trasferimento dati nei registri della CPU Fare click per iniziare lettura dati Caratt. gen. dei sis.op. (2.8, memoria cache e gerarchia memorie, pag.76-78)
37
Il meccanismo delle memorie cache e in generale l’organizzazione gerarchica delle memorie, rende l’accesso ai dati più efficiente in quanto gli accessi in memoria non avvengono in modo totalmente casuale. Valgono infatti i PRINCIPII DI LOCALITA’. 1.Principio di località temporale: se un programma accede a una data locazione di memoria è molto probabile che dovrà accedere di nuovo alla stessa locazione entro breve tempo. 2.Principio di località spaziale: se un programma accede a una data locazione di memoria è molto probabile che dovrà accedere entro breve tempo a locazioni di memoria vicine. Ciò implica che quando si deve accedere ad un dato che si trova in una memoria relativamente lenta, convenga trasferire il dato per un certo periodo in una memoria più veloce in modo che gli accessi successivi siano più efficienti. Ciò implica che quando si deve accedere ad un dato che si trova in una memoria relativamente lenta convenga trasferire in una memoria più veloce anche i dati ad esso vicini, in modo che gli accessi a tali dati siano più efficienti. Esempi: 1.Località Temporale.: L’accesso alla variabile i indice di un ciclo, es.: for (i=0;i<10000;i++){…}. La lettura del codice di una istruzione del loop. 2.Località Spaziale: L’accesso agli elementi di un array. La lettura delle istruzioni di un programma Registri Cache L2 Cache L3 RAM Memoria di massa Cache L1 Lettura dati da disco Lettura da RAM a cache L3 Lettura nelle cache successive Trasferimento dati nei registri della CPU Fare click per iniziare lettura dati
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.