1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni...

33
1 Università di Pavia - corso di Fondamenti di Informatica 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 EF3 orario di ricevimento: Martedì e Giovedì 16.45- 17.45 Sito Web: http://mclab.unipv.it/

Transcript of 1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni...

Page 1: 1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica,

1Università di Pavia - corso di Fondamenti di Informatica

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 EF3

orario di ricevimento: Martedì e Giovedì 16.45-17.45

Sito Web: http://mclab.unipv.it/

Page 2: 1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica,

2Università di Pavia - corso di Fondamenti di Informatica

Dip. di Ingegneria Industriale e dell’informazione

Page 3: 1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica,

3Università di Pavia - corso di Fondamenti di Informatica

Dipartimento: PIANO F

Io sono qui

Page 4: 1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica,

4Università di Pavia - corso di Fondamenti di Informatica

Calendario delle lezioni e degli esami

• Periodi di lezione (FdI è un corso annuale)

1) 29/9 – 19/12; 7/1 – 16/1

2) 2/3 – 1/4; 8/4 – 12/6

• 1a Sessione d’esame (per i corsi semestrali)

19/1 – 27/2 

• 2a Sessione d’esame e Sessione di recupero

15/6 – 31/7; 31/8 – 25/9• Per FdI nella 1a Sessione d’esame si può sostenere una

prova di valutazione intermedia

Page 5: 1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica,

5Università di Pavia - corso di Fondamenti di Informatica

Materiale didattico consigliato

• Libri consigliati: J. Glenn Brookshear, “Informatica. Una panoramica generale”, Pearson, 2012, Milano.

• In alternativa:

• 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

• V. Cantoni, “Appunti delle lezioni di Fondamenti di Informatica”, a cura di A. Piccolini, Edizioni CUSL

• Consultazione Internet

Page 6: 1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica,

6Università di Pavia - corso di Fondamenti di Informatica

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

Page 7: 1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica,

7Università di Pavia - corso di Fondamenti di Informatica

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.

Page 8: 1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica,

8Università di Pavia - corso di Fondamenti di Informatica

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).

Page 9: 1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica,

9Università di Pavia - corso di Fondamenti di Informatica

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.

Page 10: 1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica,

10Università di Pavia - corso di Fondamenti di Informatica

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

Page 11: 1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica,

11Università di Pavia - corso di Fondamenti di Informatica

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

Page 12: 1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica,

12Università di Pavia - corso di Fondamenti di Informatica

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, ...

Page 13: 1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica,

13Università di Pavia - corso di Fondamenti di Informatica

• 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

• ...

Introduzione all’informatica - Utilizzo dei calcolatori

Page 14: 1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica,

14Università di Pavia - corso di Fondamenti di Informatica

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

Page 15: 1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica,

15Università di Pavia - corso di Fondamenti di Informatica

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

Page 16: 1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica,

16Università di Pavia - corso di Fondamenti di Informatica

Concetti base

• Schema generale a STRATI

Utilizzatore

Applicazioni

Software di base/software di comunicazione

Hardware+firmware

MS-Word

Windows XP/TCP/IP

Intel Pentium + …

Esempio

Page 17: 1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica,

17Università di Pavia - corso di Fondamenti di Informatica

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

Page 18: 1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica,

18Università di Pavia - corso di Fondamenti di Informatica

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

Page 19: 1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica,

19Università di Pavia - corso di Fondamenti di Informatica

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

Page 20: 1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica,

20Università di Pavia - corso di Fondamenti di Informatica

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

Page 21: 1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica,

21Università di Pavia - corso di Fondamenti di Informatica

Dal problema al risultato: il ruolo del computer

programma dati soluzione

COMPUTER

SVILUPPO DELLA

SOLUZIONE

ESECUZIONE

DEL

PROGRAMMA

{

{

PROBLEMA

ALGORITMO

PROGRAMMA

CONOSCENZA SUL DOMINIO DEL PROBLEMA

CONOSCENZA LINGUAGGIO DI PROGRAMMAZIONE

ANALISTA

PROGRAMMATORE

UTENTE

Page 22: 1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica,

22Università di Pavia - corso di Fondamenti di Informatica

Memoria

ALUUnità di controllo

CPU

Unità di ingresso Unità di uscita

Programmi e dati

Risultati

Unità centrale

Architettura della macchina di Von Neumann

CPU: Central Processing Unit

• I microprocessori attuali sono dispositivi elettronici in grado di implementare

all’interno di un unico circuito integrato le funzioni di un’intera CPU

Page 23: 1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica,

23Università di Pavia - corso di Fondamenti di Informatica

D

A

T

A

B

U

S

Unità Centrale

ALU

CPU

Unità di

controllo

MARMemoria ROM

MBR

MARMemoria RAM

MBR

CONTROL

B

U

S

AD

D

R

E

SS

B

U

S

Page 24: 1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica,

24Università di Pavia - corso di Fondamenti di Informatica

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

Page 25: 1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica,

25Università di Pavia - corso di Fondamenti di Informatica

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

Page 26: 1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica,

26Università di Pavia - corso di Fondamenti di Informatica

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).

Page 27: 1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica,

27Università di Pavia - corso di Fondamenti di Informatica

Architettura di una CPU

SP PC R

e

g

0

R

e

g

N

F

L

A

G

ACC C

O

N

T

R.

D

E

C

O

D.

I

N

S

T.

R

E

G.

BUS DATI INTERNO

….

BUS INDIRIZZI INTERNO BUS IND. ESTERNO

BUS DATI ESTERNO

ALU

Page 28: 1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica,

28Università di Pavia - corso di Fondamenti di Informatica

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)

Page 29: 1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica,

29Università di Pavia - corso di Fondamenti di Informatica

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 Operando 1 Operando 2

Campo che caratterizza le varie istruzioni Gli operandi possono

essere 0, 1, 2

Page 30: 1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica,

30Università di Pavia - corso di Fondamenti di Informatica

Sequenza di operazioni elementari per l’esecuzione di ogni singola istruzione

•FETCH: vengono letti i campi che costituiscono l’istruzione:1) (PC)MAR2) ((MAR)) MBR; (PC)+1 PC3) (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

Page 31: 1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica,

31Università di Pavia - corso di Fondamenti di Informatica

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

Page 32: 1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica,

32Università di Pavia - corso di Fondamenti di Informatica

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 4) (PC)MAR

2) ((MAR)) MBR; (PC)+1 PC 5) ((MAR)) MBR; (PC)+1 PC

3) (MBR) IR 6) (MBR) Rn

•EXECUTE:

1) (Rn) MAR 3) (MBR) Rn

2) ((MAR)) MBR 4) (Rn)+(ACC) ACC

Page 33: 1 Università di Pavia - corso di Fondamenti di Informatica FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica,

33Università di Pavia - corso di Fondamenti di Informatica

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 4) (PC)MAR

2) ((MAR)) MBR; (PC)+1 PC 5) ((MAR)) MBR; (PC)+1 PC

3) (MBR) IR 6) (MBR) Rn

•EXECUTE:

1) (Rn) PC