Architetture di sistemi e Reti. Principi di progettazione sw · 2019. 11. 18. · 1 Architetture di...
Transcript of Architetture di sistemi e Reti. Principi di progettazione sw · 2019. 11. 18. · 1 Architetture di...
-
1
Architetture di sistemi e Reti.
Principi di progettazione sw
Franco Sivilli
Obiettivi
⚫ Conoscere le architetture più comuni dei
sistemi di elaborazione e delle reti
⚫ Conoscere i sistemi di numerazione
⚫ Apprendere le logiche degli algoritmi e le
principali tecniche di progettazione del
software
“Una macchina può fare il lavoro di cinquanta
uomini ordinari, ma nessuna macchina può
fare il lavoro di un uomo straordinario”. Elbert Green Hubbard
-
2
Sistemi per l’elaborazione dell’informazione?
⚫ Sistema: insieme di componenti connessi
tra loro
⚫ Sistema per e.i.: sistemi gerarchici
costituiti da più livelli di macchina
interagenti tra loro
Com’è fatto un elaboratore?
⚫ Elaboratori basati sulla
Architettura di Von Neumann
che consiste di:
– Un’unità di Elaborazione (CPU)
– Memoria Centrale (RAM) per istruzioni e dati
memorizzati come sequenze di dati
– Periferiche
– Memorie di massa
– Bus di Sistema
Modello di Von Neumann
Unità di I/O MemoriaProcessore o
CPU
BUS
Sistema
costituito da 4
sottosistemi
connessi.
Memoria Massa
-
3
Modello Von Neumann
⚫ Unità di Elaborazione (Processore o CPU):
– Svolge le elaborazioni
– Coordina il trasferimento dei dati
– Cioè ‘esegue’ i programmi
⚫ Memoria Centrale
– Memorizza dati e programmi per l’elaborazione
– Volatile
– Accesso rapido
– Capacità limitata
Modello di Von Neumann
⚫ Memoria Secondaria (es. Hard disk,DVD)
– Grande capacità
– Persistente
– Accesso piu lento della RAM
⚫ Unità Periferiche
– Terminali (tastiera, video)
– Stampanti
Modello di Von Neumann
⚫ Bus di Sistema
– Collega le altre componenti con la CPU
⚫ RAM
⚫ Memorie Secondarie
⚫ Periferiche
– Si divide in:
⚫ Bus indirizzi
⚫ Bus dati
⚫ Bus di controllo
-
4
Bus di sistema
⚫ Collegamento tra le varie componenti
sempre sotto il controllo della CPU
⚫ Il bus può essere assegnato alle componenti
per un certo intervallo di tempo in modo
che possano scambiare dati
Bus di sistema
bus indirizzi: è unidirezionale. Serve per poter selezionare l’unità.Ogni unità deve avere una logica di decodifica degli indirizzi percapire se essa è stata selezionata. La larghezza del bus indirizzi fissalo spazio degli indirizzi (16/32/64 bit) cioè il numero delle celle dimemoria e dei registri delle unità di I/O selezionabili; Se il busindirizzi trasferisce informazioni di 16 k, il numero massimo diindirizzi è 216 = 65.536KB (dove 1Kb = 210 = 1024).
bus dati: bidirezionale, serve a trasmettere/ricevere informazioni tradue unità del sistema (master è quella che invia, slave è quella chericeve). La sua larghezza determina il collo di bottiglia dei calcolatori“Von Neumann”.
bus comandi o linee di controllo: in input ed output dal processore.Es. linea di input: bus request. La linea di output serve al processoreper inviare un comando ad una unità
CPU (Central Processing Unit)
Il processore o CPU è un interprete di un set
limitato di istruzioni. Esso è in grado di:
- estrarre e decodificare una istruzione (fase fetch→
unica per tutte le istruzioni)
- eseguire l’istruzione appena estratta (execute→ una
per ogni tipo di istruzione);
- determinare quale sarà l’istruzione prossima da
estrarre ed eseguire.
-
5
CPU:componenti principali
⚫ Unità Aritmetico-Logica (ALU)
⚫ Unità di Controllo
⚫ Unità Indirizzo
⚫ Unità istruzione
⚫ Registri (conservano lo stato della CPU durante i vari stadi del ciclo di istruzione)
⚫ Orologio di sistema (clock)
CPU:componenti principali
Unità aritmetico- logica (ALU): effettua le operazioni di
tipo aritmetico (somma, sottrazioni) e di tipo logico (and,
or) della fase di execute. Esegue un certo insieme di
operazioni selezionabili tramite comandi dall’esterno.
Unità di istruzione: estrae e decodifica le successive
istruzioni del programma in esecuzione;
Unità di controllo: coordina le varie unità nell’esecuzione
dei programmi (lettura dalla memoria, decodifica ed
esecuzione delle istruzioni).
Unità di indirizzo: esegue il calcolo dell’indirizzo;
CPU : Registri
• contatore PC: indica qual è la prossimaistruzione da eseguire.
• delle istruzioni IR: contiene una copiadell’istruzione da eseguire.
• di indirizzo di memoria MAR: contienel’indirizzo di memoria del dato da leggere oscrivere.
• dati di memoria MDR: contiene una copia deldato effettivo.
• parola di stato del processore PSW: dàindicazioni sulle modalità di funzionamento delprocessore.
-
6
Memoria Centrale
⚫ Organizzata come una tabella di celle
– Cella = parola di memoria (sequenza di byte)
– Es. Memoria da 16 bit (2 byte), 32 bit, 64 bit
⚫ Indirizzo di memoria = posizione relativa alla
prima cella
⚫ La CPU mantiene due registri per gestirla:
– Registro di indirizzamento (MAR) = serve per
recuperare le parole di memoria
– Registro dati (MDR) = mantiene dati input e output
Gerarchia di memorie
⚫ Registri
⚫ Cache
⚫ Memoria RAM (Random Access):
– Volatile, veloce, utilizzata per dalla CPU
⚫ Memoria di Massa (dischi e nastri):
– Persistente, più lenta
Scendendo nella gerarchia:
- aumentano le dimensioni delle memorie (sono più grandi);
- diminuiscono i costi;
- diminuiscono le prestazioni;
- aumenta il tempo di accesso;
- diminuisce la velocità di trasmissione.
Tipi di memoria di massa⚫ Nastri Magnetici
⚫ Dischi Magnetici
⚫ Dischi ottici (CD, DVD, TrueWorm)
⚫ SSD
-
7
Altri tipi di memorie
⚫ Memoria ROM (BIOS):– Si può solo leggere, per operazioni critiche
⚫ Memoria EROM, EPROM:– Cancellabili, cancellabili e programmabili
⚫ Memoria Flash (macchine fotografiche digitali, pda, cellulari, lettori MP3): evoluzione delle EPROM
⚫ Altri tipi diffusi sul mercato: CompactFlash (CF), Multimedia Card (MMC), Secure Digital (SD).
Periferiche
– Tastiera per acquisire dati in ingresso (input)
– Video per mostrare dati immessi ed elaborati; il
cursore seleziona una posizione nel video dove
vengono immessi i dati
– Mouse per controllare il cursore
Periferiche: Stampanti
⚫ Producono su carta i risultati dell’elaboraz.
⚫ Vari tipi:
– Ad aghi
– A getto d’inchiostro
– Laser
⚫ Caratteristiche: velocità,risoluzione, set di
caratteri, capacità grafica (colori ecc)
-
8
Altri tipi di sistemi
⚫ Workstation
Calcolatore con elevate prestazioni
⚫ Server
⚫ Mini-computer
Servono reti di terminali con pochi utenti
⚫ Main-frame
Servono reti di terminali con centinaia di utenti
Cenni sulle reti neurali
Sono sistemi di calcolo paralleli.
Non fanno parte dell’informatica tradizionale ma dell’intelligenza artificiale connessionista.
Nell’informatica tradizionale è l’uomo che trova l’algoritmo e lo traduce in un linguaggio di programmazione.
Le reti neurali sono sistemi in grado di trovare da soli l’algoritmo risolutivo mediante la modifica dei pesi sulle “connessioni” in base alla % di errore sul riconoscimento.
Necessitano di un periodo di addestramento per ridurre al minimo la % di errore.
Rappresentazione dei dati
⚫ Si utilizzano standard internazionali per
risolvere problemi di compatibilità tra
calcolatori di tipo e marca diversi
⚫ Vedremo brevemente:
– Codifica dei numeri
– Operazioni tra numeri attraverso circuiti logici
– Codifica di caratteri e immagini
-
9
Codifica dei numeri
⚫ Quindi
– Numero = sequenza di bit (codifica in base 2)
– Con K bit si rappresentano 2K numeri che vano da 0 a
2K-1
⚫ Esempi:
– 2 = sequenza 1 0
– 3 = sequenza 1 1
– 4 = sequenza 1 0 0
.......
Codifica dei numeri
⚫ Gli elaboratori utilizzano la codifica binaria (cioè con 0 e 1) dell’informazione
⚫ Perché solo due simboli?– differenti tensioni elettrici, polarità magnetiche, ...
– riduce errori (ad es. causati da rumore nei segnali)
⚫ Unità elementare di informazione: bit interpretato come 0 o come 1
⚫ Unità derivate: byte = 8 bit; Kbyte = 1024 byte
Mbyte = 1024 Kbyte; Gbyte = 1024 Mbyte;
Tbyte = 1024 Gbyte
Codifica dei numeri
⚫ Rappresentazione di un numero naturale di
n cifre nel sistema decimale:
Cn-1*10n-1+Cn-2*10
n-2+…+C1*101+C0*10
0.
⚫ Rappresentazione di un numero binario di n
cifre nel sistema decimale:
Cn-1*2n-1+Cn-2+2
n-2+…+C1*21+C0*2
0.
-
10
Codifica dei numeri
⚫ Conversione di un numero binario di n cifre
nel sistema decimale:
Cn-1*2n-1+Cn-2+2
n-2+…+C1*21+C0*2
0.
Es. (1100)2=1*23+1*22+0*21+0*20=12
(1000000)2=1*26=64
Codifica dei numeri
⚫ Altri sistemi di numerazione
➢Ottale
➢Esadecimale
Es. 34410=1010110002=15816=1*162+5*161+8*160
Operazioni logiche
⚫ Operazioni logiche: AND, OR, NOT, ...
– 0 = falso, 1=vero
– X AND Y = 1 sse X=1 e Y=1
– X OR Y = 1 sse X=1 oppure Y=1
– NOT X = 1 sse X = 0
⚫ Circuiti logici: composizione degli operatori che trasformano ingressi (input) in uscite (output)
⚫ Cioè un circuito definisce una funzione
f: input → output
⚫ Input, output = sequenze di bit
-
11
Circuiti logici
OR
OR
X
Y
Z
X or Y or Z
Riassumendo...
⚫ Numeri = codificati come sequenze di bit
⚫ Operazioni = operazioni bit a bit
⚫ Funzioni complesse = circuiti
⚫ Hardware = implementazione fisica dei circuiti logici
⚫ Hardware = fornisce operazioni primitive che vengono utilizzate per definire applicazioni attraverso programmi
Codifica caratteri
⚫ Codifica ASCII: associando un simbolo dell’alfabeto ad ogni numero possiamo codificare tutte le lettere
– a-z A-Z 0-9
usando 7 bit (cioè in un byte)!!
Esempio: 00000101 rappresenta la lettera ‘c’
Nelle moderne architetture si utilizza un codice a 16 bit chiamato Unicode.
⚫ Codifica BCD: codice binario di un alfabeto in base 10 (ogni cifra decimale è codificata separatamente in binario)
-
12
Codifica di immagini
⚫ Immagini = sequenze di bit!
⚫ L’immagine viene digitalizzata cioè rappresentata
con sequenze di pixel
⚫ Ogni pixel ha associato un numero che descrive un
particolare colore (o tonalità di grigio)
⚫ Inoltre si mantengono la dimensione, la
risoluzione (numero di punti per pollice), e il
numero di colori utilizzati
Software
⚫ Software di base:
– Dedicato alla gestione dell’elaboratore
– Esempio: sistema operativo
⚫ Software applicativo:
– Dedicato alla realizzazione di specifiche
applicative
– Esempio: programmi per scrittura, gestione
aziendale, navigazione su internet, ecc
Sistema Operativo
⚫ Rende la componente hardware facile da usare
⚫ Fornisce funzionalità ad alto livello agli utenti
⚫ Ad esempio:
– organizza la memoria di massa
– gestisce comandi immessi dall’utente quali ‘Esegui un programma’, ‘Mostra i dati su video’, ecc
⚫ Se il sistema è multi-utente deve gestire le risorse disponibili cercando di soddisfare tutti gli utenti
⚫ Esempi: MS DOS, OS 2, Windows, Unix
-
13
Utilizzo di un elaboratore
⚫ Come utente:
– Uso software applicativo esistente per creare documenti
e interfacce grafiche, effettuare calcoli, navigare in rete
⚫ Come sviluppatore:
– Creo nuovi programmi sullo strato del software
esistente
⚫ Nuovi programmi applicativi
⚫ Nuovi programmi di sistema (cioè che fanno funzionae il
calcolatore)
Software Applicativo: Esempi
⚫ Video Scrittura: per costruire e testi e
definire formati di stampa
⚫ Agende elettroniche: indirizzario, calendari
⚫ Posta Elettronica: per comunicazione
⚫ Fogli elettronici: per elaborazioni contabili
⚫ Database: sistemi per la gestione di dati
Esempi di Applicazioni
⚫ Calcolo Numerico: statistiche, ecc
⚫ Gestione Aziendale: banche, assicurazioni,
⚫ Telematica: bancomat, ecc
⚫ Automazione industriale:, robotica, ecc
⚫ Internet: commercio virtuale, ecc
-
14
FINE