Architetture di sistemi e Reti. Principi di progettazione sw · 2019. 11. 18. · 1 Architetture di...

14
1 Architetture di sistemi e Reti. Principi di progettazione sw Franco Sivilli [email protected] 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

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

    [email protected]

    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

    [email protected]