Architettura degli elaboratori PDF
Document Details
Politecnico di Torino
Tags
Related
- Computer Organization and Architecture PDF
- (The Morgan Kaufmann Series in Computer Architecture and Design) David A. Patterson, John L. Hennessy - Computer Organization and Design RISC-V Edition_ The Hardware Software Interface-Morgan Kaufmann-102-258-pages-4.pdf
- Computer Organization and Architecture (PDF)
- Bihar STET 2023 Computer Science Paper II PDF
- Computer Organization and Architecture PDF
- Computer Organization and Architecture Lecture Notes PDF
Summary
Presentazione sulle unità T2 di Architettura degli elaboratori, del Politecnico di Torino, per l'anno accademico 2024/2025. I contenuti includono una panoramica dei blocchi fondamentali di un elaboratore, come l'unità di elaborazione, la memoria e i circuiti elettronici. E' affrontata anche la gestione dei dispositivi di input/output, l'unità operativa, e i registri.
Full Transcript
Unità T2: Architettura degli elaboratori This Photo by Unknown Author is licensed under CC BY-SA Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 1 Archi...
Unità T2: Architettura degli elaboratori This Photo by Unknown Author is licensed under CC BY-SA Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 1 Architettura degli elaboratori Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 2 Architettura di un elaboratore ▪ Per comprendere il processo di programmazione, è necessario conoscere almeno per grandi linee gli elementi costitutivi di un computer. ▪ Faremo riferimento al tipico PC, anche se tutti i calcolatori hanno sostanzialmente la stessa struttura. Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 3 I blocchi fondamentali dell’elaboratore Unita’ di elaborazione Memoria Circuiti elettronici Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 4 I blocchi fondamentali dell’elaboratore Unita’ di elaborazione Memoria Circuiti elettronici Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 5 I blocchi fondamentali dell’elaboratore DIGITALE Unita’ di elaborazione Memoria Circuiti elettronici Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 6 I blocchi fondamentali dell’elaboratore DIGITALE Unita’ di elaborazione Unita’ di Input Memoria ANALOGICO Circuiti elettronici Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 7 I blocchi fondamentali dell’elaboratore DIGITALE Unita’ di elaborazione Unita’ di Unita’ di Input output Memoria ANALOGICO ANALOGICO Circuiti elettronici Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 8 Componenti fondamentali ▪ Unità di I/O o Interfaccia da/verso utente o Implicano un cambio di dominio fisico Umano = analogico, asincrono, non elettrico Calcolatore = digitale, sincrono, elettrico Necessarie opportune conversioni Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 9 Componenti fondamentali ▪ Unità di I/O o Interfaccia da/verso utente o Implicano un cambio di dominio fisico Umano = analogico, asincrono, non elettrico Calcolatore = digitale, sincrono, elettrico Necessarie opportune conversioni ▪ Unità di elaborazione o Contiene i circuiti per l’esecuzione delle ‘istruzioni’ o “Microprocessore” Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 10 Componenti fondamentali ▪ Unità di I/O o Interfaccia da/verso utente o Implicano un cambio di dominio fisico Umano = analogico, asincrono, non elettrico Calcolatore = digitale, sincrono, elettrico Necessarie opportune conversioni ▪ Unità di elaborazione o Contiene i circuiti per l’esecuzione delle ‘istruzioni’ o “microprocessore” ▪ Memoria o Memorizza in modo permanente dati e programmi o Necessaria per l’elaborazione per motivi di efficienza Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 11 Componenti fondamentali ▪ Unità di I/O o Interfaccia da/verso utente o Implicano un cambio di dominio fisico Umano = analogico, asincrono, non elettrico Calcolatore = digitale, sincrono, elettrico Necessarie opportune conversioni ▪ Unità di elaborazione o Contiene i circuiti per l’esecuzione delle ‘istruzioni’ o “microprocessore” CIRCUITI (dentro la ▪ Memoria “scatola”) o Memorizza in modo permanente dati e programmi o Necessaria per l’elaborazione per motivi di efficienza Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 12 Il microprocessore Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 13 Microprocessore ▪ Il microprocessore è il circuito che fisicamente esegue TUTTE le istruzioni ▪ Contiene quindi: o Tutti i circuiti per eseguire le operazioni di base su numeri interi, reali e operazioni logiche o Opportuni circuiti per il “coordinamento” dell’esecuzione delle istruzioni (per es. il loro sequenziamento, controllo degli errori) o Interfacce per spostare dati da/verso la memoria o Interfacce per spostare dati da/verso unità di I/O ▪ Ha (in linea di principio) limitate capacità di memorizzare dati e/o istruzioni o Lo stretto necessario per eseguire le operazioni o Ma per motivi di efficienza (v. dopo) una parte della memoria è “ospitata” nel microprocessore Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 14 Struttura del microprocessore Interfacce CPU (Central Processing Unit) Memoria “locale” (cache) Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 15 La CPU FPU (Floating Point Unit) Unità di Registri controllo ALU (Arithmetic Logic Unit) Verso memoria e I/O Unita’ operativa Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 16 Unità operativa ▪ Svolge tutte le elaborazioni richieste (aritmetiche, logiche, grafiche?,...). ▪ È composta di: FPU o ALU (Arithmetic Logic Unit) (Floating Point o Registri istruzioni e dati Unit) o FPU (Floating Point Unit) Registri o Registro dei Flag ALU (Arithmetic Logic Unit) Verso memoria e I/O Unita’ operativa Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 17 FPU Registri Unita’ di controllo Regist ri (Floating Point Unit) ALU ▪ Elementi di memoria locale usati per conservare (Arithmetic Logic Unit) temporaneamente dei dati (es. risultati parziali) o Unita’ operativa istruzioni Verso memoria e I/O Ogni trasferimento da processore a memoria e viceversa avviene tra registri e memoria ▪ Numero limitato (8...128) 55 32 registri 3 22 + Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 18 Registro dei Flag ▪ Registro i cui bit segnalano: o Determinati stati dell'insieme delle unità di calcolo o Alcune informazioni sul risultato dell'ultima operazione eseguita ▪ Utilizzati per implementare alcune operazioni condizionali ▪ Alcuni flag significativi o Zero: Segnala se il risultato dell'operazione è o no zero. o Segno: indica il segno del risultato dell'operazione precedente o Overflow: indica se il risultato dell'operazione precedente eccede i limiti della rappresentazione Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 19 ALU e FPU ▪ ALU o Svolge tutti i calcoli (aritmetici, logici, confronti) su numeri interi ▪ FPU: o Svolge I calcoli su numeri reali ▪ Notevole differenza nel tempo di esecuzione! o Il rapporto dipende dallo specifico processore, un’operazione FPU è tipicamente più lenta di 5-50 volte più lenta di un’operazione ALU. Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 20 Unità di controllo ▪ È il cuore dell’elaboratore: ▪ In base alle istruzioni contenute nel programma che esegue ed allo stato di tutte le unità decide l’operazione da eseguire ed emette gli ordini relativi FPU (Floating Point Unit) Unita’ di Registri controllo ALU (Arithmetic Logic Unit) Verso memoria e I/O Unita’ operativa Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 21 Unità di controllo: schema funzionale PC Mem IR logica di stato controllo comandi Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 22 Unità di controllo: schema funzionale PC (Program Counter) Registro che indica PC Mem sempre l’indirizzo della cella di memoria che contiene la prossima istruzione da eseguire IR logica di stato controllo comandi Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 23 Unità di controllo: schema funzionale PC Mem IR (Instruction Register) IR Registro che memorizza temporaneamente l’operazione corrente da eseguire logica di stato controllo comandi Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 24 Unità di controllo: schema funzionale PC Mem IR Logica di controllo Interpreta il codice macchina in IR per decidere ed emette gli ordini che le varie unità logica di stato devono eseguire (ALU, FPU, …) controllo comandi Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 25 Componenti dell’UC ▪ PC (Program Counter) registro che indica sempre l’indirizzo della cella di memoria che contiene la prossima istruzione da eseguire ▪ IR (Instruction Register) registro che memorizza temporaneamente l’operazione corrente da eseguire ▪ Logica di controllo interpreta il codice macchina in IR per decidere ed emette gli ordini che le varie unità devono eseguire Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 26 Esecuzione di un’istruzione ▪ Tre fasi: Preleva una istruzione FETCH IR M [ PC ] dalla memoria centrale PC PC + 1 DECODE ordini decode(IR) Interpreta l’istruzione EXECUTE attiva i blocchi interessati dall’istruzione Esegue l’istruzione IR M [ PC ]: preleva dalla memoria l’istruzione nella posizione indicata da PC PC PC + 1: incrementa il valore di PC (al passo successivo conterrà la prossima istruzione da eseguire) Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 27 Esempio PC 999 … 1000 0000……1101 x=2 IR 1001 1010……1001 y=x 1002 1110……0001 print(x) 1003 … … Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 28 Esempio PC 999 … 1000 0000……1101 x=2 IR 1001 1010……1001 y=x 1002 1110……0001 print(x) 1003 … … Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 29 Esempio PC 999 … 1000 0000……1101 x=2 IR 1001 1010……1001 y=x 1002 1110……0001 print(x) 1003 … … Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 30 Esempio PC 999 … 1000 0000……1101 x=2 IR 1001 1010……1001 y=x 1002 1110……0001 print(x) 1003 … … Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 31 Un collegamento ai flowchart… ▪ Conoscendo ora i blocchi fondamentali, siamo in grado di valutare quali operazioni sono da considerarsi “elementari” (e sono usabili dentro i blocchi di un DDF) Categoria Operazioni specifiche Operazioni aritmetiche (ALU) +, - , * , /, resto tra numeri interi Operazioni aritmetiche (FPU) +, - , * , /, resto tra numeri reali Operazioni su quantita’ logiche (unione, Operazioni logiche (ALU) intersezione, negazione) Confronti (ALU) ,=, =, != CPU + Memoria Trasferimento dati dalla/verso memoria CPU + unita’ di I/O (+ Memoria) Lettura/scrittura da/su dispositivo Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 32 Un breve riassunto… ▪ Sistema di elaborazione = Unità di I/O + Unità centrale (CPU) + Memoria ▪ CPU = Unità operativa + Unità di controllo ▪ Unità operativa: o Svolge i calcoli (contiene i circuiti che li eseguono) o Contiene alcuni registri (“parcheggi” per i dati da e verso memoria e I/O) ▪ Unità di controllo: o Governa l’esecuzione delle istruzioni (che legge dalla memoria) o Procede secondo tre fasi principali Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 33 Il clock ▪ Ogni elaboratore contiene un elemento di temporizzazione (detto clock ) che genera un riferimento temporale comune per tutti gli elementi costituenti il sistema di elaborazione. ▪ T = periodo di clock o unità di misura = s ▪ f = frequenza di clock ( = 1/T ) o unità di misura = s–1 = Hz (cicli/s) t T Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 34 Tempistica delle istruzioni ▪ Un ciclo-macchina è l’intervallo di tempo in cui viene svolta una operazione elementare ed è un multiplo intero del periodo del clock ▪ L’esecuzione di un’istruzione richiede un numero intero di cicli macchina, variabile a seconda del tipo di istruzione o Esempio Tipo n. Cicli ALU 1 FPU 15 MEM 5 I/O 100 ▪ La prestazione complessiva del programma dipenderà dal mix di istruzioni!!! Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 35 Un esempio di calcolo ▪ Calcolatore con un tempo di ciclo di 1 ns (1 GHz clock) ▪ Programma che contiene 106 operazioni o In base alla distribuzione delle istruzioni la durata media è di 4 cicli/istruzione (4 ns/istruzione) ▪ Tempo totale di esecuzione: 106 istruzioni x 3 ns/istruzione = 3ms Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 36 Un esempio di calcolo (2) ▪ Calcolatore con un tempo di ciclo di 1 ns (1 GHz clock) ▪ Un programma ordina una serie di n valori e impiega un tempo quadratico (proporzionale a n2) ad ordinarli o In base alla distribuzione delle istruzioni la durata media e’ di 2 cicli/istruzione (2 ns/istruzione) ▪ Quanto ci vuole ad ordinare 106 valori? o Ordinare 106 valori = 1012 operazioni o Tempo totale di esecuzione: 1012 istruzioni x 2 ns/istruzione = 2000 s (~35 minuti!!!) Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 37 Importanza dell’efficienza dei programmi ▪ Numero di istanze eseguite in un dato tempo per algoritmi con diversi complessita’ di esecuzione (in relazione al numero di dati coinvolti) Complessita’ Computer con Computer con prestazioni P prestazion 1OOO*P n N1 1000 N1 n logn N2 387 N2 n2 N3 31.6 N3 n5 N4 3.98 N4 2n N5 N5 +9.97 Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 38 La memoria Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 39 Memoria ▪ Memorizza i dati e le istruzioni necessarie all’elaboratore per operare ▪ Perché è necessaria??? o Per motivi intrinseci di memorizzazione (memoria di massa) o Per motivi di efficienza ▪ Caratteristiche: o indirizzamento o parallelismo o accesso (sequenziale o casuale) o Struttura gerarchica Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 40 Indirizzamento ▪ La memoria è organizzata in celle (mimima unità accessibile direttamente). Ad ogni cella di memoria è associato un indirizzo (numerico) per identificarla univocamente. 1 7 2 5 8 3 6 9 Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 41 Parallelismo ▪ Ogni cella di memoria contiene una quantità fissa di bit (word): o identica per tutte le celle (di una certa unità di memoria) o accessibile con un’unica istruzione o è un multiplo del byte Tipicamente la dimensione della cella di memoria coincide con quella dei registri per consistenza e semplicità Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 42 Memoria e programmazione ▪ Cosa succede quando creiamo, leggiamo, scriviamo un dato? 10000 Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 43 Gerarchia di memoria ▪ Idealmente la memoria dovrebbe essere o Più grande possibile o Più economica possibile o Più veloce possibile o Mantenere le informazioni indefinitamente (anche in assenza di alimentazione) – non volatili ▪ Una simile memoria non esiste (ancora) o Le memorie veloci hanno un costo relativamente alto e sono volatili o Le memorie non volatili costano relativamente poco ma sono relativamente lente ▪ Necessaria una gerarchia di memoria Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 44 Gerarchia di memoria ▪ Per ottimizzare tempo medio di accesso e costo medio, si organizza la memoria a livelli o Più vicino al processore le memorie più veloci, costose (e anche volatili, per motivi tecnologici) o Più lontano dal processore le memorie più lente, economiche e non volatili Dominio ‘circuitale’ Control Unit UO Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 45 Gerarchia di memoria ▪ Registri o Costituiscono la memoria più veloce, interna al processore o Memorizzano temporaneamente dati o istruzioni o Sono gestiti dal compilatore (che alloca le variabili ai registri, gestisce i trasferimenti allo spazio di memoria) ▪ Cache o Memoria veloce e di piccole dimensioni posta fra la CPU e la memoria principale o Il suo scopo è di velocizzare l'esecuzione dei programmi: è utilizzata per recuperare velocemente dati e programmi che si prevede debbano essere utilizzati nel breve termine Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 46 Gerarchia di memoria ▪ Memoria principale: RAM (Random Access Memory) o Accesso casuale Permette l'accesso diretto a qualunque indirizzo di memoria con lo stesso tempo di accesso Si può accedere alle celle in lettura specificandone l’indirizzo Si può accedere alle celle in scrittura specificandone l’indirizzo e il dato da scrivere o Volatile Nella memoria RAM vengono copiati (caricati) i programmi che la CPU deve eseguire Una volta chiuso il programma, le modifiche effettuate, se non opportunamente salvate su altre memorie, verranno perse Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 47 Gerarchia di memoria ▪ Memoria principale: RAM (Random Access Memory) o Di due tipi: SRAM: Static Random Access Memory Consentono di mantenere le informazioni per un tempo infinito ma, perdono le informazioni in esse contenute se non alimentate da corrente Più veloce e costosa della DRAM Usata per la cache DRAM: Dynamic Random Access Memory Basata su condensatori: dopo un (breve) lasso di tempo il suo contenuto diventa completamente inaffidabile e quindi richiede un refresh periodico Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 48 Gerarchia di memoria ▪ Memoria secondaria (o memoria di massa): o La memoria principale non può essere troppo grande a causa del suo costo elevato, e non consente la memorizzazione permanente dei dati (volatilità) Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 49 Gerarchia di memoria ▪ Memoria secondaria (o memoria di massa): o La memoria principale non può essere troppo grande a causa del suo costo elevato, e non consente la memorizzazione permanente dei dati (volatilità) o Oltre alla memoria principale veloce, volatile, di dimensioni relativamente piccole, i computer hanno una memoria secondaria: Più lenta e meno costosa Con capacità di memorizzazione maggiore ed in grado di memorizzare i dati in modo permanente Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 50 Gerarchia di memoria ▪ Memoria secondaria (o memoria di massa): o La memoria principale non può essere troppo grande a causa del suo costo elevato, e non consente la memorizzazione permanente dei dati (volatilità) o Oltre alla memoria principale veloce, volatile, di dimensioni relativamente piccole, i computer hanno una memoria secondaria: Più lenta e meno costosa Con capacità di memorizzazione maggiore ed in grado di memorizzare i dati in modo permanente o La memoria secondaria viene utilizzata per mantenere tutti i programmi e tutti i dati che possono essere utilizzati dal computer Il processore non può utilizzare direttamente la memoria di massa per l'elaborazione dei dati Quando si vuole eseguire un programma, questo dovrà essere copiato dalla memoria di massa a quella principale (caricamento) Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 51 Gerarchia di memoria ▪ Flash o Le chiavette USB, le SD card, e i più recenti hard disk a stato solido sono basati su tecnologia elettronica, ma, a differenza delle RAM, non sono volatili ▪ Disco rigido o Gli hard disk sono dei supporti di plastica o vinile, su cui è depositato del materiale magnetizzabile o Nel corso delle operazioni i dischi vengono mantenuti in rotazione a velocità costante e le informazioni vengono lette e scritte da testine o Meccanico, quindi lento! Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 52 Confronto tra memorie MAGGIORE VELOCITA’ MAGGIORI COSTI Metrica SRAM DRAM FLASH Disco (cache) Dimensione MB (1-16) GB (4-16) GB (16-512) TB (>1) Velocità 1-5 ns 50-150 ns ~10ms* ~10ms Costo 10-5 $/byte 10-8 $/byte 10-9 $/byte 10-10 $/byte Persistenza Volatile Volatile Non volatile Non volatile MAGGIORE CAPACITA’ MAGGIORI TEMPI DI ACCESSO Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 53 Le interconnessioni (bus) Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 54 I Bus (sistema circolatorio del PC) Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 55 I bus ▪ Come connettere n unità (CPU con memorie e vari controllori di I/O) in modo efficiente? ▪ La connessione punto-punto non è pratica! o Il numero di connessioni cresce con il quadrato del numero di unita’ da connettere! … n=5 n=6 n=7 n=16 Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 56 I bus ▪ Usiamo un’unica linea di connessione per connettere tutti i componenti o Fisicamente “agganciati” a questa linea... BUS... Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 57 I bus ▪ Vantaggi: o costi ridotti di produzione o Estendibilità (scalabilità) aggiunta di nuovi dispositivi molto semplice o Standardizzabilità regole per la comunicazione da parte di dispositivi diversi ▪ Svantaggi: o Lentezza... utilizzo in mutua esclusione del bus BUS o Sovraccarico del processore (CPU) Proc... funge da “master” sul controllo del bus Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 58 Caratteristiche di un bus ▪ Trasporto di un solo dato per volta ▪ Frequenza = n. di dati trasportati al secondo ▪ Ampiezza = n. di bit di cui è costituito un singolo dato ▪ Se mal dimensionato, potrebbe essere un collo di bottiglia Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 59 Tipi fondamentali di bus ▪ Un singolo bus è suddiviso in tre “sotto bus”, detti: o bus dati (DBus) o bus degli indirizzi (ABus) o bus di controllo (CBus) M1 M2 I O DBUS ABUS CBUS Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 60 Massima memoria interna (fisicamente presente) ▪ La dimensione dell’Abus determina il max numero di celle di memoria indirizzabili ▪ La dimensione del Dbus “indica” la dimensione di una cella di memoria ▪ max mem = 2|Abus| x |Dbus| bit ▪ Esempio (Abus da 20 bit, Dbus da 16 bit): o max mem = 220 x 2 byte = 2 MB o ossia 1 M celle di memoria, ognuna da 2 byte Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 61 Una vista di insieme DATI INDIRIZZI CONTROLLO Memoria UO Secondaria Processore Memoria FETCH CPU (RAM) DECODE EXECUTE FPU BUS UNITA’ DI Cache Reg CONTROLLO ALU I/O I/O I/O I/O I/O PC IR DATA REGISTERS Politecnico di Torino, 2024/25 … INFORMATICA / COMPUTER SCIENCES 62 Un po’ di prospettiva… APP APP APP APP UTENTE UTENTE UTENTE … UTENTE 1 2 3 n APPLICAZIONI DI SISTEMA (compiler, assembler, text editor, database system,..) SISTEMA OPERATIVO HARDWARE (memorie, CPU, I/O, bus, …) Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 63 Sistema Operativo ▪ Gestisce le risorse hardware e software della macchina, fornendo servizi di base ai software applicativi ▪ Obiettivi o Eseguire comandi e programmi (rendere più facile la soluzione di problemi) Controlla il funzionamento e le operazioni dei dispositivi, e l’esecuzione dei programmi utente o Rendere il sistema più facile da utilizzare o Usare l’hardware in modo efficiente Astrae i vari dispositivi del sistema (ad es. i dischi sono visti attraverso i driver e manipolati attraverso il relativo filesystem) Permette la gestione delle risorse in maniera semplificata Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 64 Sistema Operativo ▪ Moduli e servizi tipici di un SO o Interprete dei comandi o Gestione dei processi o Gestione della memoria principale o Gestione della memoria secondaria o Gestione dei dispositivi di I/O o Gestione file e file system o Implementazione dei meccanismi di protezione o Gestione delle reti e sistemi distribuiti Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 65 Sistema Operativo ▪ Gestione dei processi ▪ Gestione dei dispositivi di I/O o Un processo (unità attiva) è un o I dispositivi di I/O non possono programma (unità passiva) in essere gestiti direttamente dagli esecuzione utenti (complessità, driver, o Per essere eseguito richiede condivisione, etc.) risorse (CPU, memoria, perferiche, o Il SO deve: etc.) Nascondere i dettagli di tali dispositivi agli utenti fornendo un’interfaccia generica tra o Il SO deve Creare, sospendere e ogni dispositivo e il relativo driver cancellare un processo Fornire operatività sui dispositivi Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 66 Sistema Operativo ▪ Gestione della memoria ▪ Gestione della memoria principale secondaria o Dati e istruzioni sono immagazzinate nella memoria o Dato che la memoria centrale è principale durante l’esecuzione di volatile e piccola, i dati sono un programma contenuti in maniera permanente Logicamente la memoria è un vettore di elementi (word) su memoria di massa o Il SO deve: o Il SO deve: Organizzare l’uso della memoria (quali Organizzare le informazioni nello spazio word sono utilizzate e quali sono libere) disponibile Decidere quali processi Allocare/deallocare lo spazio richiesto allocare/deallocare dalla memoria Gestire lo spazio libero Ottimizzare l’accesso ai dati da parte della CPU Ottimizzare le scheduling delle operazioni di R/W Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 67 Un po’ di prospettiva… APP APP APP APP NUOVO UTENTE UTENTE UTENTE … UTENTE PROCESSO IN ESECUZIONE 1 2 3 n CARICAMENTO DATI E ISTRUZIONI DALLA APPLICAZIONI DI SISTEMA MEMORIA SECONDARIA (compiler, assembler, text editor, database system,..) NELLA RAM GESTIONE SISTEMA OPERATIVO DELLA CACHE HARDWARE (memorie, CPU, I/O, bus, …) GESTIONE DELLA COMUNICAZIONE CON DISPOSITIVI DI I/O Politecnico di Torino, 2024/25 INFORMATICA / COMPUTER SCIENCES 68