Teoria e Applicazioni
del l e
Macchine Calcolatrici
a .a . 2 0 0 0 /0 1
Giorgio Delzanno
Informazioni utili
 Giorgio Delzanno
 DISI (Dip. di Informatica)
 Via Dodecaneso 35, Genova
 Tel. 010-3536638
 E-mail: [email protected]
 http://www.disi.unige.it/person/DelzannoG
Orario

Martedì 14-16
– Polo didattico Aula 2

Mercoledì e Giovedì 10-12:
– DISI Aula 710(?) – via Dodecaneso 35
– in futuro: laboratorio PC ...spero!

Potete usare il Laboratorio al Polo didattico (fondi)
– Lu-Ma-Gio-Ve 14-17

La settimana prossima NON ci sarà lezione
Scopi del corso
 Aspetti fondazionali
– Cos’è un elaboratore
– Cos’è un linguaggio di programmazione
– Cos’è un algoritmo
 Aspetti pratici
– Utilizzo di un elaboratore
– Utilizzo di software applicativo
– Esercizi di programmazione
Contenuti 1

Architettura dei Sistemi Informatici
– Elaboratori
– Memoria
– Periferiche

Sistemi Operativi
– Processi
– Gestione della memoria
– Windows

Reti di Calcolatori
– Internet, Posta Elettronica, Web
Contenuti 2
 Formattazione Testi
– Word
 Elementi di Programmazione:
– Visual Basic
 Fogli Elettronici
– Excel
 Gestione Dati
– Access SQL
Testi di riferimento
 Istituzioni
di informatica Ceri-Mandrioli
McGraw-Hill
 Manuli Microsoft (Windows, word, ecc)
 Dispense on-line (sul web) e fotocopie
 Lucidi
Esame
 Esercitazione pratica
 Orale o Scritto
in laboratorio
Informatica?
della rappresentazione e dell’elaborazione dell’informazione
ovvero
 Studio degli algoritmi che descrivono e trasformano l’informazione
 Scienza
Algoritmo?
 Sequenza
di passi per risolvere un determinato problema
 Calcolatore = Esecutore di algoritmi
 Gli algoritmi sono descritti tramite programmi
scritti in linguaggi ad
alto livello e poi tradotti in linguaggio macchina
Algoritmo
 Concetti fondamentali:
– Correttezza = l’algoritmo risolve il problema in modo completo (spesso
occorre provare la correttezza manualmente usando tecniche matematiche)
– Efficienza = lo risolve nel modo più veloce possibile (esistono criteri
matematici di valutazione)
Esempio: potenza







Problema: Calcolare a elevato alla n (a^n)
Utilizziamo le variabili N, Ris
Inizialmente Ris=1 e N=n
Algoritmo:
Fino a che N>0
Calcola Ris*a e memorizzalo in Ris
Decrementa N
Correttezza:
Al termine Ris=a^n
Linguaggi di Programmazione
Linguaggi per esprimere in maniera rigorosa un algoritmo
 Linguaggio macchina (seq. Istruzioni)
 Linguaggi ad alto livello (vicini al ling. naturale)
– Esempi:




Pascal
C e C++
Java
Basic
Esempio in Pseudo Pascal
Program potenza;
Integer Ris,N,A;
Read(N);Read(A);
Ris=1;
While (N>0) do
Ris=Ris*A;
N=N-1;
Print(Ris);
Esempio



Il precedente programma va tradotto in linguaggio macchina (comprensibile
all’elaboratore), i.e., viene compilato in sequenze di istruzioni
Quando le istruzioni vengono eseguite, il programma prende dati in ingresso
(valori iniziali di N e A) attraverso la tastiera (input) e poi stampa il risultato sul
video (valore finale di Ris) (output)
In generale un programma può essere visto infatti come una funzione da input
ad output...
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)
Architettura dei Sistemi Informatici
 Sistemi Informatici: PC, Rete di Calc., ...
 Architettura: insieme delle componenti del
loro funzionalità e della loro interazione
 Suddivisione principale:
– Hardware
– Software
Hardware

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
Hardware
 Memoria Secondaria
– Grande capacità
(es. Harddisk,floppy)
sistema, descrizione delle
– Persistente
– Accesso piu lento della RAM
 Unità Periferiche
– Interfaccia verso l’esterno
– Terminali (tastiera, video)
– Stampanti
Hardware
 Bus di Sistema
– Collega le altre componenti



RAM
Memorie Secondarie
Periferiche
– Insieme di collegamenti di vario tipo
Esempi di S. I. :
Personal Computer
 Contenitore con
– CPU, RAM
– Memoria Centrale


Fisso
Unità per Dischetti/CD
 Monitor
 Disco Tastiera
Altri Sistemi Informatici
 Workstation
– Calcolatore con elevate prestazioni
 Mini-computer
– Servono reti di terminali con pochi utenti
 Main-frame
– Servono reti di terminali con centinaia di utenti
Altri Sistemi Informatici
 Reti di Calcolatori
– Reti Locali: collegano terminali vicini tra loro; i terminali usufruiscono di
servizi quali stampanti di diverso tipo, memoria di massa,...
– Reti Geografiche: collegano dei calcolatori (detti) host a medio-grandi
distanze; ad esempio possono collegare diverse reti locali tra loro
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 programmq’, ‘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
Software Applicativo: Esempi
 Video Scrittura: per costruire e testi e definire
 Agende elettroniche: indirizzario, calendari
 Posta Elettronica: per comunicazione
 Fogli elettronici: per elaborazioni contabili
 Database: sistemi per la gestione di dati
formati di stampa
Esempi di Applicazioni
 Calcolo Numerico: statistiche, ecc
 Gestione Aziendale: banche, assicurazioni,
 Telematica: bancomat, ecc
 Automazione industriale:, robotica, ecc
 Internet: commercio virtuale, ecc
Architettura dei calcolatori
 Per
capire come utilizzare software appicativoe progettarne di nuovo
occorre capire come funziona la componente Hardware.
 Vedremo
– Cenni di rappresentazione dei dati
– Circuiti per operazioni su dati
– Struttura di un calcolatore
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
Codifica dei numeri


Gli elaboratori utilizzano la codifica binaria
dell’informazione
Perché solo due simboli?
(cioè con 0 e 1)
– differenti tensioni elettrici, polarità magnetiche, ...
– Riduce errori (ad es. causati da rumore nei segnali)


Unità elementare di informazione:
interpretato come 0 o come 1
Unità derivata: byte = 8 bit
bit
Codifica dei numeri
 Esempio:
13 può essere espresso in funzione delle potenze di 2 come:
13 = 1 x 8 + 1 x 4 + 0 x 2 + 1 x 1
 Cioè può essere rappresentato dalla sequenza di bit
1
1
0
1
Codifica dei numeri
 Quindi
– Numero = sequenza di bit (codifica in base 2)
– Con K bit si rappresenta al max 2^K-1
 Esempi:
– 2 = sequenza 1 0
– 3 = sequenza 1 1
– 4 = sequenza 1 0 0
.......
Operazioni tra numeri
 Ad
esempio: somma
5=1x4+0x2+ 1 x1
2 = 0 x 4 + 1 x 2 + 0 x 1 _____________________
7=1x4+1x2+1x 1
 Esprimibile come operazione tra bit
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
Circuiti logici
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
definire applicazioni attraverso programmi
Codifica di numeri reali ecc
 Reali: si utizzano codifiche quali
– Floating point
– Fixed point
 Interi: si utilizzano codifiche quali
– Bit di segno
utilizzate per
– Complemento a 1 e a 2
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’
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
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
– Bus di Sistema
Programmi e dati
I
programmi (seq. istruzioni) e i dati sono memorizzati in memoria di
massa (lenta)
 Per essere eseguito, un programma deve essere caricato in memoria
centrale (veloce)
 Occorre anche allocare spazio per i dati utilizzati dal programma (es.
Variabili N,Ris) in memoria centrale
Come funziona l’elaboratore?



Un programma viene caricato in memoria centrale
Si alloca lo spazio per i dati necessari al programma
La CPU estrae le istruzioni e dati dalla memoria centrale, le decodifica e le


esegue utilizzando registri interni (accesso veloce)
L’esecuzione può comportare il trasferimento di dati in input e output tra
memoria centrale e periferiche attraverso il bus di sistema
L’esecuzione viene scandita dal clock di sistema
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 (RI) = serve per recuperare le parole di memoria
– Registro dati (RD) = mantiene dati input e output
Funzionamento Memoria
Tipi di Memoria
 Memoria RAM (Random Access):
– Volatile, veloce, utilizzata per dalla CPU
 Memoria ROM (Read only):
– Si può solo leggere, per operazioni critiche
 Memoria EROM, EPROM:
– Cancellabili, cancellabili e programmabili
 Memoria di Massa:
– Persistente, più lenta
Bus di sistema
 Collegamento
tra le varie componenti sempre sotto il controllo della
CPU
 Il bus viene assegnato alle componenti per un certo intervallo di tempo
in modo che possano scambiare dati
– Bus dati
– Bus indirizzi
– Bus comandi
Central Processing Unit - CPU
Circuiti che coordinano il calcolatore
 Unità Aritmetico-Logica (ALU)
 Registri
– Registro dati e indirizzi
– Contatore di Programma
– Registro istruzione corrente
– Registro interruzioni
 Orologio
di sistema (clock)
Registri




Registro istruzione corrente (RIC): contiene l’istruzione correntemente eseguita
Contatore di Programma (PC): indirizzo della prossima istruzione da eseguire
Registro interruzioni (RINT): contiene informazioni riguardo lo status delle
periferiche
Altri registri interni mantegono operandi e risultati
CPU
Come funziona la ALU?




La CPU specifica l’operazione da eseguire attraverso il registro RIC (es. una
somma)
Gli operandi vengono trasferiti dalla memoria ai registri interni (es. A e B)
L’esecuzione richiede un certo tempo di clock dopo il quale il risultato viene
memorizzato in un registro interno (es A) e poi trasferito in memoria
A questo punto si passa all’istruzione successiva utilizzando il registro PC
Interfacce di ingresso/uscita
 Circuiti che gestiscono le periferiche
– Registro dati (da e per la CPU) collegato al bus dati
– Registro comandi per la periferica collegato al bus comandi
– Informazioni sullo stato della periferiche
(ad es collegato al reg.
RINT)
Periferiche: Terminali
 Terminali consistono di
– 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
– Caratteristiche: numero di colori, dimensioni, risoluzione, capacità grafica
– Modi: teletype/a blocchi
Periferiche: Stampanti
 Producono su carta
 Vari tipi:
– A margherita
– Ad aghi
i risultati dell’elaboraz.
– A getto d’inchiostro
– Laser
 Caratteristiche:
velocità,risoluzione, set di caratteri, capacità grafica
(colori ecc)
Estensioni
 Co-processori dedicati a compiti specifici
 Cache memory (memoria veloce)
 Multi-processori
Elaboratori

PC IBM-compatibile
– CPU 386, 486 a 32 bit
– Sistema Operativi:





MS DOS (Microsotf)
OS 2 (Sun)
McIntosh (Apple)
Workstations Sun, HP, Apollo
Sistema Operativo:
– Unix