FONDAMENTI DI INFORMATICA Prof Giovanni Danese Tullio Facchinetti

  • Slides: 33
Download presentation
FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica, piano F

FONDAMENTI DI INFORMATICA Prof. Giovanni Danese, Tullio Facchinetti Dip. Informatica e Sistemistica, piano F Tel. 0382 985364 e-mail: gianni. danese@unipv. it Corso di Laurea in Ingegneria Elettronica e Informatica orario delle lezioni: Martedì 14 -17 aula EF 3, Venerdì 11 -13 aula EF 3 orario di ricevimento: previo accordo, tutti i giorni dalle 18. 30 all'indirizzo Skype: gianni_danese. Se serve il link è: https: //join. skype. com/invite/ahrg. PVq. JTC 3 J Quando si potrà in presenza: Martedì e Giovedì 16. 45 -17. 45 Sito Web: http: //mclab. unipv. it/ 1 Università di Pavia - corso di Fondamenti di Informatica

Dip. di Ingegneria Industriale e dell’informazione Università di Pavia - corso di Fondamenti di

Dip. di Ingegneria Industriale e dell’informazione Università di Pavia - corso di Fondamenti di Informatica 2

Dipartimento: PIANO F Università di Pavia - corso di Fondamenti di Informatica 3

Dipartimento: PIANO F Università di Pavia - corso di Fondamenti di Informatica 3

Calendario delle lezioni e degli esami • Periodi di lezione (Fd. I è un

Calendario delle lezioni e degli esami • Periodi di lezione (Fd. I è un corso annuale) 1) 28/9 – 18/12; 11/1 – 22/1 2) 8/3 – 31/3; 7/4 – 14/6 • 1 a Sessione d’esame (per i corsi semestrali) 25/1 – 5/3 • 2 a Sessione d’esame e Sessione di recupero 15/6 – 30/7; 30/8 – 24/9 • Per Fd. I nella 1 a Sessione d’esame si può sostenere una prova di valutazione Università di Pavia - corso di Fondamenti di Informatica 4

Materiale didattico consigliato • Libri consigliati: J. Glenn Brookshear, Dennis Brylow: “Informatica. Una panoramica

Materiale didattico consigliato • Libri consigliati: J. Glenn Brookshear, Dennis Brylow: “Informatica. Una panoramica generale”, Pearson, 13^ edizione, 2020, Milano. In alternativa: • J. Glenn Brookshear, Dennis Brylow: “Informatica. Una panoramica generale”, Pearson, 12^ edizione, 2016, Milano. • J. Glenn Brookshear, Stephen G. Kochan: “Fondamenti di Informatica e programmazione in C”, Pearson, 2014, Milano. • Libri consultabili: David A. Patterson, John L. Hennessy: “Struttura e progetto dei Calcolatori” Zanichelli, 2015, IV 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

Esame (1) Prove degli appelli d’esame Prova d’esame composta da una prova di teoria e una prova di programmazione (consta di una prova teorica e una di programmazione). Nella prova scritta di teoria vengono proposti 6 argomenti trattati nel corso delle lezioni. Nel periodo di emergenza Covid la prova di teoria è orale via Skype con 4 domande. La valutazione è la media delle valutazioni conseguite nelle 6 domande (o 4). In aggiunta alla prova scritta è prevista una prova orale facoltativa con due finalità differenti: 1. nel caso in cui la valutazione globale risultante sia sufficiente, permettere la modifica di tale valutazione globale; Università di Pavia - corso di Fondamenti di Informatica 6

Esame (2) Prove degli appelli d’esame 2. nel caso in cui la prova scritta

Esame (2) Prove degli appelli d’esame 2. nel caso in cui la prova scritta di teoria stata valutata insufficiente, ma superiore 16/30, per raggiungere una valutazione finale sufficiente. La prova di programmazione si compone di due parti: 1. Una prova scritta sulla teoria della programmazione composta da alcuni quesiti (la valutazione è la media delle valutazioni conseguite nei quesiti proposti); 2. Una prova pratica che prevede la soluzione di un problema ideando un idoneo algoritmo e utilizzando il linguaggio C Università di Pavia - corso di Fondamenti di Informatica 7

Esame (3) Prove degli appelli d’esame Una valutazione sufficiente in ambo le prove consente

Esame (3) Prove degli appelli d’esame Una valutazione sufficiente in ambo le prove consente il superamento della prova di programmazione con valutazione globale ottenuta come media pesata delle singole valutazioni (pesi 1/3 e 2/3). La valutazione globale dell’intero esame è la media delle due prove sostenute (teoria e programmazione), con il vincolo che tutte siano sufficienti. In caso di esito non sufficiente o non soddisfacente di una o due delle tre prove previste (prova teorica, teoria della programmazione, prova pratica di programmazione), il candidato può ripetere solo tale/i prova/e. Università di Pavia - corso di Fondamenti di Informatica 8

Esame (4) Prove degli appelli d’esame La validità delle prove superate si conclude dopo

Esame (4) Prove degli appelli d’esame La validità delle prove superate si conclude dopo un anno di calendario dal superamento della prova stessa. Nel momento in cui lo studente ripete una prova, il risultato conseguito in precedenza, anche se sufficiente, decade. Le prove previste possono essere sostenute in appelli diversi, purché entro i limiti citati di validità delle prove. 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

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

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.

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

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 (possibilità di seguire le lezioni da remoto) • . . . Università di Pavia - corso di Fondamenti di Informatica 13

Concetti base • Informatica: INFORmazione auto. MATICA • Computer - Elaboratore elettronico: è una

Concetti base • Informatica: INFORmazione auto. MATICA • 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

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 regola l’interrelazione tra hardware, firmware, software e interfaccia verso l’uomo • Architettura di rete: l’insieme di moduli, soluzioni, metodologie e tecniche 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

Concetti base • Schema generale a STRATI Utilizzatore Applicazioni Software di base/software di comunicazione Hardware+firmware Esempio MS-Word Windows 10 / TCP/IP Intel i 7 + BIOS … Università di Pavia - corso di Fondamenti di Informatica 16

Concetti base: unità di misura • Bit (b): unità di misura più piccola. Binary

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 • TB (tera byte): 240=1. 099. 511. 627. 776 byte Università di Pavia - corso di Fondamenti di Informatica 17

Concetti base • 1 pagina 2000 caratteri 2 KB • 1 libro 500 pagine

Concetti base • 1 pagina 2000 caratteri 2 KB • 1 libro 500 pagine 1 MB • 1 pagina A 4: 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 = 768 KB 1280 x 960 = 1228800 1200 KB 1. 2 MB Università di Pavia - corso di Fondamenti di Informatica 18

Concetti base: unità di misura • Hertz (Hz): misura di frequenza (per eventi periodici;

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 Rate (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 •

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 • 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 SVILUPPO DELLA SOLUZIONE { ALGORITMO

Dal problema al risultato: il ruolo del computer PROBLEMA SVILUPPO DELLA SOLUZIONE { ALGORITMO ANALISTA PROGRAMMATORE PROGRAMMA ESECUZIONE DEL PROGRAMMA { CONOSCENZA SUL DOMINIO DEL PROBLEMA CONOSCENZA LINGUAGGIO DI PROGRAMMAZIONE UTENTE 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à

Architettura della macchina di Von Neumann Unità di ingresso Programmi e dati Memoria Unità di uscita ALU Risultati Unità di controllo CPU: Central Processing 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 S S S B B U U S

Unità Centrale A D ALU D S S S B B U U S S D controllo A T MBR MAR B U A Unità di R E C O N T R O L CPU Memoria ROM MBR MAR Memoria RAM Università di Pavia - corso di Fondamenti di Informatica 23

Microprocessori e Bus • I microprocessori sono dispositivi elettronici che implementano in un unico

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 (2 m 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

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

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

Architettura di una CPU BUS DATI ESTERNO BUS DATI INTERNO ACC SP PC R R F e e L g g A 0 N …. G ALU C D I O E N N C S T O T. R. D. R E BUS INDIRIZZI INTERNO BUS IND. ESTERNO G. Università di Pavia - corso di Fondamenti di Informatica 27

Architettura di una CPU • IR: Instruction Register • ALU: Arithmetic and Logic Unit

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

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

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.

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 R 2 e il contenuto dell’accumulatore. Il risultato va nell’accumulatore FORMATO codice operativo FETCH come in precedenza ESECUZIONE (R 2)+(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

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 PC 3) (MBR) IR • EXECUTE: 1) (Rn) MAR 2) ((MAR)) MBR 4) (PC) MAR 5) ((MAR)) MBR; (PC)+1 6) (MBR) Rn 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

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 PC 3) (MBR) IR 4) (PC) MAR 5) ((MAR)) MBR; (PC)+1 6) (MBR) Rn • EXECUTE: 1) (Rn) PC Università di Pavia - corso di Fondamenti di Informatica 33