architetture di sistemi e reti. principi di progettazione sw · 2019. 11. 18. · 1 architetture di...

Post on 17-Feb-2021

2 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

  • 1

    Architetture di sistemi e Reti.

    Principi di progettazione sw

    Franco Sivilli

    fsivilli@unich.it

    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

    fsivilli@unich.it

top related