FONDAMENTI DI INFORMATICA
Prof. Giovanni Danese, Tullio Facchinetti
Dip. Informatica e Sistemistica, piano F
Tel. 0382 985364
e-mail: [email protected]
Corso di Laurea in Ingegneria Elettronica e Informatica
orario delle lezioni: Lunedì 9-11 aula EF4,
Venerdì 11-13 aula EF1
orario di ricevimento: Martedì e Giovedì 16.45-17.45
Sito Web: http://mclab.unipv.it/
Università di Pavia - corso di Fondamenti di Informatica
1
Dip. di Ingegneria Industriale e dell’informazione
Università di Pavia - corso di Fondamenti di Informatica
2
Dipartimento: PIANO F
Io sono qui
Università di Pavia - corso di Fondamenti di Informatica
3
Calendario delle lezioni e degli esami
• Periodi di lezione (FdI è un corso annuale)
1) 28/9 – 22/12; 7/1 – 15/1
2) 29/2 – 23/3; 30/3 – 10/6
• 1a Sessione d’esame (per i corsi semestrali)
19/1 – 27/2
• 2a Sessione d’esame e Sessione di recupero
13/6 – 29/7; 29/8 – 23/9
• Per FdI nella 1a Sessione d’esame si può sostenere una
prova di valutazione intermedia
Università di Pavia - corso di Fondamenti di Informatica
4
Materiale didattico consigliato
•
•
•
•
•
•
Libri consigliati:
J. Glenn Brookshear, “Informatica. Una panoramica generale”,
Pearson, 2012, Milano.
In alternativa:
J. Glenn Brookshear, Stephen G. Kochan, “Fondamenti di
Informatica e programmazione in C”, Pearson, 2014, Milano.
P. Tosoratti, “Introduzione all’Informatica”, Casa Editrice
Ambrosiana, Milano.
Libri consultabili:
G. Cioffi, V. Falzone, “Manuale di Informatica”, Edizioni Calderini,
Bologna.
David A. Patterson, John L. Hennessy, “Struttura e progetto dei
Calcolatori” Zanichelli, 2010, III Edizione
Consultazione Internet
Università di Pavia - corso di Fondamenti di Informatica
5
Esame (1)
Prove degli appelli d’esame
Prova d’esame composta da una prova di teoria e una prova
pratica da svolgere sui calcolatori delle aule didattiche di
Informatica
Nella prova scritta di teoria vengono proposti 8 argomenti trattati
nel corso delle lezioni che devono essere approfonditi dal
candidato (2 degli 8 quesiti relativi alla teoria della
programmazione)
La valutazione è la media delle valutazioni conseguite nelle 8
domande.
La prova pratica prevede la soluzione di un problema ideando
un idoneo algoritmo e utilizzando il linguaggio C
Università di Pavia - corso di Fondamenti di Informatica
6
Esame (2)
Prove degli appelli d’esame
Una valutazione sufficiente in ambo le prove consente il
superamento dell’esame con valutazione globale ottenuta
come media pesata delle singole valutazioni (pesi 3/5 e 2/5).
È prevista una prova orale facoltativa con due finalità differenti:
1. nel caso in cui la valutazione globale risultante sia sufficiente,
per permettere la modifica di tale valutazione globale;
2. nel caso in cui la prova scritta di teoria sia stata valutata
insufficiente, ma superiore 16/30, per raggiungere una
valutazione finale sufficiente.
Università di Pavia - corso di Fondamenti di Informatica
7
Esame (3)
Prova intermedia (1)
1a prova teorica: argomenti trattati nel corso delle lezioni nel primo
semestre
2a prova teorica: argomenti trattati nel corso delle lezioni nel secondo
semestre; da sostenere in uno degli appelli fissati. L’accesso a questa
prova è vincolato dal superamento della prima prova
3a prova pratica: soluzione di un problema ideando un idoneo algoritmo
e utilizzando il linguaggio C
La valutazione globale è la media pesata delle tre prove sostenute, con
il vincolo che tutte siano sufficienti (pesi: 3/10, 3/10 e 4/10).
Università di Pavia - corso di Fondamenti di Informatica
8
Esame (3)
Prove intermedia (2)
In caso di esito non sufficiente nella prima prova teorica, il
candidato dovrà sostenere l’intero esame negli appelli delle
rimanenti sessioni.
In caso di esito non sufficiente nella seconda prova teorica o
della prova pratica, il candidato può ripetere la sola prova
giudicata insufficiente in uno degli appelli fissati.
Validità delle prove fino alla sessione invernale dell’a.a.
successivo.
Università di Pavia - corso di Fondamenti di Informatica
9
Obiettivi del corso
Acquisizione delle nozioni di base dell’informatica
Conoscenza
dei
sistemi
per
l’elaborazione
dell’informazione
Conoscenza dei linguaggi per la programmazione
degli elaboratori elettronici
Acquisizione della capacità di trovare soluzioni
“algoritmiche” a problemi
Università di Pavia - corso di Fondamenti di Informatica
10
Programma del corso
• Architettura e principi di funzionamento degli elaboratori
elettronici
• Rappresentazione delle informazioni e nozione di algoritmo
• Programmazione degli elaboratori elettronici (linguaggio C)
Esercitazioni
teoriche (in aula)
pratiche (su elaboratore)
Tutorato
Università di Pavia - corso di Fondamenti di Informatica
11
Introduzione all’informatica - Applicazioni
• Studi
professionali
per
automazione
d’ufficio
(Office
Automation: O.A.), informatica individuale, progettazione
assistita (CAD), …
• Imprese manifatturiere per amministrazione/supporto alla
gestione, controllo dei processi, automazione, O.A., …
• Banche, assicurazioni, imprese di servizi per O.A., utilizzo di
basi di dati, trasferimenti elettronici di fondi, transazioni
commerciali, ...
Università di Pavia - corso di Fondamenti di Informatica
12
Introduzione all’informatica - Utilizzo dei calcolatori
• Affari generali: inventari, gestione stipendi, contabilità, borsa
valori, …
• Banche: processi automatizzati
• Industria:
CAD-CAM,
controllo
di
processo,
robotica,
pianificazione, …
• Ufficio: elaborazioni testi, gestione dati
• Servizi: sanità, biblioteche, …
• Ricerca: simulazioni, basi dati, …
• Istruzione
• ...
Università di Pavia - corso di Fondamenti di Informatica
13
Concetti base
• Informatica: INFORmazione autoMATICA
• Computer
-
Elaboratore
elettronico:
è
una
macchina
concepita per l’elaborazione automatica dei dati (non è una
macchina calcolatrice)
• Hardware: ciò che si può “toccare” o “vedere” di un
calcolatore
• Software:
la
componente
“immateriale”,
l’insieme
dei
programmi che permettano l’uso effettivo del calcolatore
Università di Pavia - corso di Fondamenti di Informatica
14
Concetti base
•
Input/Output:
ingresso/uscita
dati
verso
sistema
hardware
e
software. Dati digitali o convertiti in digitale
•
Firmware: componenti hardware pre-programmati
•
Reti: la comunicazione fra due o più calcolatori avviene attraverso
componenti hardware e software
•
Architettura di un sistema di elaborazione: l’insieme di moduli,
soluzioni, metodologie e tecniche che regola l’interrelazione tra
hardware, firmware, software e interfaccia verso l’uomo
•
Architettura di rete: l’insieme di moduli, soluzioni, metodologie e
tecniche che regola l’interrelazione tra computer in rete
Università di Pavia - corso di Fondamenti di Informatica
15
Concetti base
•
Schema generale a STRATI
Utilizzatore
Applicazioni
Software di base/software di comunicazione
Hardware+firmware
Esempio
MS-Word
Windows XP/TCP/IP
Intel Pentium + …
Università di Pavia - corso di Fondamenti di Informatica
16
Concetti base: unità di misura
•
Bit (b): unità di misura più piccola. Binary digit (numero binario)
descrive due stati diversi, acceso/spento, sì/no, vero/falso
•
Byte (B): sequenza di 8 bit
•
KB (kilo byte): 210=1024 byte
•
MB (mega byte): 220=1048576 byte
•
GB (giga byte): 230=1073741824 byte
Università di Pavia - corso di Fondamenti di Informatica
17
Concetti base
•
1 pagina  2000 caratteri  2KB
•
1 libro  500 pagine  1MB
•
1 pagina A4: 21 x 29.5 cm = 8.25 x 11.5 pollici
•
uno scanner ha una risoluzione, ad esempio, di 300 punti per pollici:
2475 x 3450 = 8.538.750 punti
•
1 pagina (a toni di grigio)  8.5 MB, 1 pagina (a colori)  25 MB
•
Risoluzione standard dei monitor:
640 x 480 = 307200 = 300 KB
800 x 600 = 480000 = 469 KB
1024 x 768 = 786432 = 768KB
1280 x 960 = 1228800  1200 KB  1.2MB
Università di Pavia - corso di Fondamenti di Informatica
18
Concetti base: unità di misura
•
Hertz (Hz): misura di frequenza (per eventi periodici; 1 Hz = 1 ciclo al
secondo)
•
MHz: Megahertz, milioni di cicli al secondo
•
Mips: Mega instructions per second (milioni di istruzioni al secondo)
Mips e MHz NON sono la stessa cosa
Esempio: CPU INTEL 80386 a 25 MHz esegue 2.5 Mips
•
Mflops: Mega floating point operations per second (milioni di
operazioni in “floating point” al secondo)
•
Baud (bit/sec): misura la velocità di trasmissione dati
Università di Pavia - corso di Fondamenti di Informatica
19
Concetti base: classi di computer
• Personal Computer: IBM-compatibili, Apple Macintosh; mono
utente
• Workstation (stazione di lavoro): generalmente sistema
operativo UNIX
• Minicomputer: usati da decine di utenti contemporaneamente
• Mainframe: centinaia di utenti
• Supercomputer:
architetture
parallele;
dedicati
all’elaborazione di grandi quantità di dati. Sistemi operativi
particolari
Università di Pavia - corso di Fondamenti di Informatica
20
Dal problema al risultato: il ruolo del computer
PROBLEMA
ALGORITMO
SVILUPPO
DELLA
SOLUZIONE
{
CONOSCENZA
SUL DOMINIO
DEL PROBLEMA
ANALISTA
PROGRAMMATORE
PROGRAMMA
CONOSCENZA
LINGUAGGIO DI
PROGRAMMAZIONE
UTENTE
programma
ESECUZIONE
DEL
PROGRAMMA
{
dati
soluzione
COMPUTER
Università di Pavia - corso di Fondamenti di Informatica
21
Architettura della macchina di Von Neumann
Unità di ingresso
Programmi e
dati
Memoria
Unità di uscita
ALU
Risultati
Unità di
controllo
CPU
CPU: Central
Processing Unit
Unità centrale
•
I microprocessori attuali sono dispositivi elettronici in grado di implementare
all’interno di un unico circuito integrato le funzioni di un’intera CPU
Università di Pavia - corso di Fondamenti di Informatica
22
Unità Centrale
A
D
ALU
D
B
B
U
U
S
S
D
controllo
A
T
MBR
MAR
S
S
B
U
A
Unità di
R
E
C
O
N
T
R
O
L
CPU
Memoria ROM
MBR
MAR
Memoria RAM
S
Università di Pavia - corso di Fondamenti di Informatica
23
Microprocessori e Bus
•
I microprocessori sono dispositivi elettronici che implementano in
un unico circuito integrato le funzioni di una intera CPU. I
microprocessori attuali hanno bus dati a 8, 16, 32, 64 bit.
•
Il bus dati (data bus) esprime la capacità di elaborazione del
processore (quanti bit possono essere elaborati in parallelo)
•
Il bus indirizzi (address bus) esprime la capacità di memorizzazione
del processore (2m celle di memoria, se m è il numero dei bit del
bus)
•
La capacità di indirizzamento indica il numero di celle diverse cui si
può accedere:
210 Byte = 1024 byte = 1 KByte
220 Byte = 1048576 byte = 1 Mbyte
230 Byte = 1073741824 byte = 1 GByte
Università di Pavia - corso di Fondamenti di Informatica
24
Un Esempio
•
Variazione nella precisione di misura di 1 Kg. in un sistema di
pesatura basato su microprocessori con diversa dimensione del bus
dati
Numero di bit bus dati
4
8
16
Dati rappresentabili
24=16
28= 256
216= 65536
Precisione relativa
6.25%
~3.9 ‰
~0.015‰
Precisione max.
62.5 gr
~3.9 gr
~0.015 gr
Università di Pavia - corso di Fondamenti di Informatica
25
Osservazioni
•
I microprocessori a 8 bit di dato hanno tipicamente bus indirizzi a 16
bit con capacità di indirizzamento di 64 KB
•
I microprocessori a 16 bit di dato hanno tipicamente bus indirizzi a
20-24 bit con capacità di indirizzamento di 1-16 MB
•
I microprocessori a 64 bit di dato hanno bus indirizzi a 64 bit con
capacità di indirizzamento fino a circa 1019 byte
•
I microprocessori Single Chip riuniscono in un unico circuito
integrato più di uno dei blocchi costituenti un microcalcolatore
(eventualmente tutti).
Università di Pavia - corso di Fondamenti di Informatica
26
Architettura di una CPU
BUS DATI ESTERNO
BUS DATI INTERNO
ACC
SP
PC
R
F
…. e
g
g
L
R
e
0
N
A
G
ALU
C
D
I
O
E
N
N
C
S
T
O
T.
R.
D.
R
E
G.
BUS INDIRIZZI INTERNO
BUS IND. ESTERNO
Università di Pavia - corso di Fondamenti di Informatica
27
Architettura di una CPU
• IR: Instruction Register
• ALU: Arithmetic and Logic Unit
• PC: Program Counter (punta alla memoria che contiene
i programmi)
• F: Registro dei flag
• SP: Stack Pointer
• Stack: area di memoria gestita con logica LIFO (Last In
First Out)
Università di Pavia - corso di Fondamenti di Informatica
28
Ciclo di esecuzione di un’istruzione
•FETCH (prelevamento dell’istruzione)
•DECODIFICA
•ESECUZIONE
La memoria (ROM e RAM) contiene il programma e i dati sui quali opera
la CPU. Il Program Counter (PC) contiene l’indirizzo della cella di
memoria con la prossima istruzione da eseguire.
FORMATO DELLE ISTRUZIONI
Codice Operativo
Campo che caratterizza
le varie istruzioni
Operando 1
Operando 2
Gli operandi possono
essere 0, 1, 2
Università di Pavia - corso di Fondamenti di Informatica
29
Sequenza di operazioni elementari per
l’esecuzione di ogni singola istruzione
•FETCH: vengono letti i campi che costituiscono l’istruzione:
1)
(PC)MAR
2)
((MAR)) MBR; (PC)+1 PC
3)
(MBR) IR
I passi 1, 2, 3 permettono di caricare in IR (instruction register) il codice
operativo (OP Code) dell’istruzione corrente. Passi analoghi permettono
di caricare in opportuni registri della CPU gli operandi presenti
nell’istruzione. In tal caso, nel passo 3 la destinazione del dato
proveniente dalla memoria non è più IR, ma opportuni registri.
•DECODE: viene identificata l’istruzione corrente sulla base dell’OP Code
•EXECUTE: è diversa a seconda del tipo di istruzione. In pratica consiste
nell’inviare comandi e dati alle unità interessate.
•P.S. MAR= Memory Address Register; MBR: Memory Buffer Register
•Notazione: (X) Y significa: “Il contenuto del registro X viene trasferito
nel registro Y
Università di Pavia - corso di Fondamenti di Informatica
30
Formato delle istruzioni
•
•
•
•
•
Le istruzioni sono codificate da stringhe di bit.
Una volta caricata nell’IR, un’istruzione deve essere decodificata ed
eseguita. A tal scopo l’unità di controllo deve conoscere:
codice operativo
sorgente: dati su cui operare
destinatario: dove porre il risultato e, se sorgente e destinazione sono
in memoria, la modalità di indirizzamento
Codice Operativo
Sorgente
Destinazione Mod. indirizzamento
Esempio 1: Somma tra il contenuto del registro R2 e il contenuto
dell’accumulatore. Il risultato va nell’accumulatore
FORMATO
codice operativo
FETCH
come in precedenza
ESECUZIONE
(R2)+(ACC)ACC
Università di Pavia - corso di Fondamenti di Informatica
31
Esempio di esecuzione di istruzioni complete
Esempio 2: somma tra il contenuto della cella di memoria il cui indirizzo
è specificato nell’istruzione ed il contenuto dell’accumulatore; il
risultato va nell’accumulatore
•FORMATO: codice operativo+operando
•FETCH:
1) (PC)MAR
2) ((MAR)) MBR; (PC)+1 PC
3) (MBR) IR
4) (PC)MAR
5) ((MAR)) MBR; (PC)+1 PC
6) (MBR) Rn
•EXECUTE:
1) (Rn) MAR
2) ((MAR)) MBR
3) (MBR) Rn
4) (Rn)+(ACC) ACC
Università di Pavia - corso di Fondamenti di Informatica
32
Esempio di esecuzione di istruzioni complete
Esempio 3: saltare all’istruzione che è memorizzata nella cella il cui
indirizzo è specificato all’interno dell’istruzione corrente:
•FORMATO: codice operativo+operando
•FETCH:
1) (PC)MAR
2) ((MAR)) MBR; (PC)+1 PC
3) (MBR) IR
4) (PC)MAR
5) ((MAR)) MBR; (PC)+1 PC
6) (MBR) Rn
•EXECUTE:
1) (Rn) PC
Università di Pavia - corso di Fondamenti di Informatica
33
Scarica

slide-n-1-DM270