Download - Lab. Calc. AA 2004/051 laboratorio di calcolo AA 2004/054 a cura di Domizia Orestano Dipartimento di Fisica Stanza 159 - tel. (06 5517) 7281 orestano.

Transcript
Page 1: Lab. Calc. AA 2004/051 laboratorio di calcolo AA 2004/054 a cura di Domizia Orestano Dipartimento di Fisica Stanza 159 - tel. (06 5517) 7281 orestano.

Lab. Calc. AA 2004/05 1

laboratorio di calcolo AA 2004/054

a cura di

Domizia Orestano

Dipartimento di FisicaStanza 159 - tel. (06 5517) 7281

www.fis.uniroma3.it/[email protected]

UNIVERSITA’ DEGLI STUDI ROMA TRE

DIPARTIMENTO DI FISICA “E. AMALDI”

Page 2: Lab. Calc. AA 2004/051 laboratorio di calcolo AA 2004/054 a cura di Domizia Orestano Dipartimento di Fisica Stanza 159 - tel. (06 5517) 7281 orestano.

Lab. Calc. AA 2004/05 2

sommario

• Presentazione del corso, vostre domande, aspetti organizzativi

• Lezione introduttiva su cosa faccia e come sia fatto un calcolatore

Page 3: Lab. Calc. AA 2004/051 laboratorio di calcolo AA 2004/054 a cura di Domizia Orestano Dipartimento di Fisica Stanza 159 - tel. (06 5517) 7281 orestano.

Lab. Calc. AA 2004/05 3

Il corso di laboratorio di calcolo • Vale 8 CFU (dei 60 di una annualità) ovvero circa 80 ore

tra lezioni ed esercitazioni più un pò di lavoro individuale e di gruppo.

• Si dovrebbe svolgere al III periodo didattico ma... 80 ore in meno di 10 settimane ci costringerebbero talvolta ad andare in laboratorio 2 volte a settimana.

• L’esperienza degli anni passati mostra che non tutti gli studenti hanno familiarità col computer. Iniziare con qualche esercitazione al I periodo didattico ci consentirà di individuare coloro che necessitano di maggiore supporto e di prevedere per loro qualche ora supplementare nel II periodo didattico.

Inizio anticipato del corso!

Page 4: Lab. Calc. AA 2004/051 laboratorio di calcolo AA 2004/054 a cura di Domizia Orestano Dipartimento di Fisica Stanza 159 - tel. (06 5517) 7281 orestano.

Lab. Calc. AA 2004/05 4

Orario• Nel primo periodo didattico sarete divisi in due classi di

laboratorio, A e B (segnatevi sul foglio!)– Venerdì 8/10 lezione in aula. Dalle 11 alle 13:30.

– Venerdì 15/10 e 22/10 esercitazione (con introduzione teorica) rispettivamente per il gruppo A ed il gruppo B sui sistemi operativi Windows e Linux. Dalle 9 alle 14!

– Venerdì 29/10 e 5/11 laboratorio libero? Da confermare

– Venerdì 12/11 e 19/11 compilazione di un programma. Dalle 9 alle 14!

– Venerdì 26/11 e 3/12 laboratorio libero? Da confermare

Circa 7 ore di lezione e 8 di esercitazione + laboratorio libero (1.4 CFU). Al III periodo faremo in media 7 ore a settimana (2 in aula e 5 in laboratorio).

Page 5: Lab. Calc. AA 2004/051 laboratorio di calcolo AA 2004/054 a cura di Domizia Orestano Dipartimento di Fisica Stanza 159 - tel. (06 5517) 7281 orestano.

Lab. Calc. AA 2004/05 5

Contenuti del corso• Fusione dei corsi di Laboratorio di Calcolo I (5 CFU)

e II (6 CFU):

LC I• Familiarizzazione con l'uso del Personal

Computer, sia in ambiente Windows (utilizzato nell'ambito del corso di Misure Fisiche) che in ambiente Unix (useremo il sistema Linux)

• Acquisizione delle basi per la programmazione in linguaggio C++ (C)

• Acquisizione di alcuni dei principali metodi di soluzione numerica di problemi

di integrazione

LC II

1. Introduzione al linguaggio C++ e alla Programmazione ad Oggetti

2. Elementi di linguaggio UML

3. Elementi di strutture riutilizzabili

Page 6: Lab. Calc. AA 2004/051 laboratorio di calcolo AA 2004/054 a cura di Domizia Orestano Dipartimento di Fisica Stanza 159 - tel. (06 5517) 7281 orestano.

Lab. Calc. AA 2004/05 6

Materiale del corso

• Non seguiamo un testo di riferimento• Si consiglia l’acquisito di un manuale di C+

+ per consultazione• Dispense e lucidi della lezione (nonchè

qualsiasi altra informazione relativa ad esercitazioni, orari, laboratorio libero etc...) saranno disponibili sul sito WEB http://www.fis.uniroma3.it/calcolatori

Page 7: Lab. Calc. AA 2004/051 laboratorio di calcolo AA 2004/054 a cura di Domizia Orestano Dipartimento di Fisica Stanza 159 - tel. (06 5517) 7281 orestano.

Lab. Calc. AA 2004/05 7

Valutazione• LC I: frequenza obbligatoria, valutazione dei programmi realizzati in

gruppo durante le esercitazioni, una prova individuale a fine corso, esame tradizionale per chi non raggiungeva la sufficienza. Ha funzionato bene.

• LC II: frequenza fortemente raccomandata, nessuna valutazione delle esercitazioni svolte, esame tradizionale con presentazione all’orale di un progetto software (preparabile anche in gruppo). Ha funzionato molto bene per gli studenti più grandi.

• Nuovo corso: le esercitazioni del I periodo didattico serviranno solo per fornirvi delle basi e per autovalutazione. All’inizio del III periodo sceglieremo (accetto suggerimenti) come effettuare la valutazione finale.

Page 8: Lab. Calc. AA 2004/051 laboratorio di calcolo AA 2004/054 a cura di Domizia Orestano Dipartimento di Fisica Stanza 159 - tel. (06 5517) 7281 orestano.

Lab. Calc. AA 2004/05 8

Laboratorio• Il corso si basa sulle esercitazioni di laboratorio.• La frequenza alle esercitazioni è essenziale.• Coloro che non potessero frequentare con regolarità le esercitazioni

sono pregati di contattarmi al più presto via e-mail o telefonicamente per concordare una soluzione. Il corso si presta ad essere fruito a distanza ma:– È bene che l’attività si svolga comunque in gruppo (contattandomi

sarete messi in contatto con altri studenti in situazione analoga)– È importante che almeno uno dei membri del gruppo abbia

qualche base in più per agevolare il lavoro a casa o che abbia potuto partecipare alle prime esercitazioni

– Devono esserci frequenti scambi di informazioni con me o con la Dottoressa Buzzi che mi assiste.

Page 9: Lab. Calc. AA 2004/051 laboratorio di calcolo AA 2004/054 a cura di Domizia Orestano Dipartimento di Fisica Stanza 159 - tel. (06 5517) 7281 orestano.

Lab. Calc. AA 2004/05 9

Lezione introduttiva

Page 10: Lab. Calc. AA 2004/051 laboratorio di calcolo AA 2004/054 a cura di Domizia Orestano Dipartimento di Fisica Stanza 159 - tel. (06 5517) 7281 orestano.

Lab. Calc. AA 2004/05 10

Come opera il calcolatore?

• Supponiamo di volere calcolare X, per uno o più possibili valori di Y, in base all'espressione algebrica

X = 5 + 0.2 x Y• Riscriviamo questa espressione come X = 5 + 0.2 * Y (in tutti i linguaggi di programmazione

l'operatore di moltiplicazione si indica col simbolo * per non confonderlo con la lettera x)

Page 11: Lab. Calc. AA 2004/051 laboratorio di calcolo AA 2004/054 a cura di Domizia Orestano Dipartimento di Fisica Stanza 159 - tel. (06 5517) 7281 orestano.

Lab. Calc. AA 2004/05 11

L’espressione X = 5 + 0.2 * Y

è composta di due parti:1. A destra troviamo tutte le informazioni

necessarie per elaborare i dati noti, siano essi costanti (5, 0.2) o variabili (Y), ovvero una sequenza di operandi (i dati noti) e operatori (+,*) che costituisce la sequenza di ingresso (input);

2. A sinistra troviamo il risultato cercato (X) che dovrà essere conservato e inviato in uscita (output).

Page 12: Lab. Calc. AA 2004/051 laboratorio di calcolo AA 2004/054 a cura di Domizia Orestano Dipartimento di Fisica Stanza 159 - tel. (06 5517) 7281 orestano.

Lab. Calc. AA 2004/05 12

Calcolo di X = 5 + 0.2*Y

sono necessari i seguenti passaggi:

1. Lettura dei possibili valori della variabile Y

2. Moltiplicazione di 0.2 per il valore assunto da Y

3. Memorizzazione del risultato di 0.2*Y

4. Somma della costante 5 al risultato precedente

5. Memorizzazione nella variabile X del risultato

6. Eventuale invio in uscita del valore assunto da X

7. Eventuale ripetizione della procedura per un altro valore di Y

Page 13: Lab. Calc. AA 2004/051 laboratorio di calcolo AA 2004/054 a cura di Domizia Orestano Dipartimento di Fisica Stanza 159 - tel. (06 5517) 7281 orestano.

Lab. Calc. AA 2004/05 13

Funzioni essenziali

• Lettura (acquisizione dei dati, ovvero dei valori numerici e della successione di operatori da applicare)

• Calcolo (applicazione degli operatori ai dati nella successione predeterminata)

• Scrittura (memorizzazione e comunicazione del risultato)

Page 14: Lab. Calc. AA 2004/051 laboratorio di calcolo AA 2004/054 a cura di Domizia Orestano Dipartimento di Fisica Stanza 159 - tel. (06 5517) 7281 orestano.

Lab. Calc. AA 2004/05 14

Gestione dell'informazione

• La lettura dei dati e delle istruzioni da opportune periferiche (tastiera, disco, nastro, linea di trasmissione...) avviene tramite i canali di input, che li trasferiscono in memoria, dove vengono conservati

• L'interpretazione dei dati e delle istruzioni e l'esecuzione del calcolo sono gestite dai circuiti logici e di calcolo dell'unità centrale (CPU)

• La comunicazione del risultato trasferito dalla CPU alla memoria, è affidata ai canali di output, che lo trascrivono su opportune periferiche (terminale video, disco etc...)

Page 15: Lab. Calc. AA 2004/051 laboratorio di calcolo AA 2004/054 a cura di Domizia Orestano Dipartimento di Fisica Stanza 159 - tel. (06 5517) 7281 orestano.

Lab. Calc. AA 2004/05 15

Hardware e Software

• L'insieme delle parti fisiche (meccanismi, elettromeccanismi, circuiti elettrici ed elettronici) che gestiscono l'informazione (periferiche, memorie, CPU), costituisce l'hardware del calcolatore;

• I dati, i programmi di gestione della macchina ed i programmi applicativi, non sono parte del calcolatore ma vi sono immessi di volta in volta, a seconda delle necessità e finalità. Questi costituiscono il software.

Page 16: Lab. Calc. AA 2004/051 laboratorio di calcolo AA 2004/054 a cura di Domizia Orestano Dipartimento di Fisica Stanza 159 - tel. (06 5517) 7281 orestano.

Lab. Calc. AA 2004/05 16

Principali componenti hardware

• Processore

• Memoria

• Dispositivi di I/O (input/output)

• Canali di comunicazione

Page 17: Lab. Calc. AA 2004/051 laboratorio di calcolo AA 2004/054 a cura di Domizia Orestano Dipartimento di Fisica Stanza 159 - tel. (06 5517) 7281 orestano.

Lab. Calc. AA 2004/05 17

Il processore

• In un sistema tipico c'è un unico processore, la CPU (Central Processing Unit).

• La CPU è la parte del sistema che esegue i programmi effettuando operazioni aritmetiche e logiche sui dati.

• Si tratta dell'unica componente del sistema in grado di produrre nuove informazioni combinando e modificando le informazioni esistenti.

Page 18: Lab. Calc. AA 2004/051 laboratorio di calcolo AA 2004/054 a cura di Domizia Orestano Dipartimento di Fisica Stanza 159 - tel. (06 5517) 7281 orestano.

Lab. Calc. AA 2004/05 18

La memoria

• La memoria è un componente passivo che si limita ad accumulare le informazioni fin tanto che non vengono richieste da altre parti del sistema (processore, dispositivi di I/O).

• Un'informazione in memoria è acceduta mediante il suo indirizzo. Possiamo visualizzare la memoria come un vettore M: – una richiesta del processore alla memoria può essere ad

esempio "mandami l'informazione dalla locazione M[1000]"– la richiesta del controller di un disco invece potrebbe essere

"copia questo blocco di dati dalla locazione M[0] alla locazione M[256]"

Page 19: Lab. Calc. AA 2004/051 laboratorio di calcolo AA 2004/054 a cura di Domizia Orestano Dipartimento di Fisica Stanza 159 - tel. (06 5517) 7281 orestano.

Lab. Calc. AA 2004/05 19

I dispositivi di I/O

• I dispositivi di I/O trasferiscono l'informazione, senza alterarla, tra il mondo esterno ed una o più componenti interne.

• Possono essere memorie secondarie (dischi, nastri...) o dispositivi per comunicare direttamente con l'utente (schermo, tastiera, mouse...).

Page 20: Lab. Calc. AA 2004/051 laboratorio di calcolo AA 2004/054 a cura di Domizia Orestano Dipartimento di Fisica Stanza 159 - tel. (06 5517) 7281 orestano.

Lab. Calc. AA 2004/05 20

I canali di comunicazione

• I canali di comunicazione tra le diverse parti del sistema possono essere semplici collegamenti tra due dispositivi o interruttori (switch) che interconnettono varie componenti, permettendo però solo la comunicazione di due di loro per volta.

• Nei Personal Computer di solito c'è un unico canale di comunicazione (bus) che collega tra di loro tutte le componenti principali del sistema. Si tratta di uno switch e quindi, per esempio, quando questo è configurato per un trasferimento di I/O non permette al processore di accedere la memoria, rallentandone l'operazione.

Page 21: Lab. Calc. AA 2004/051 laboratorio di calcolo AA 2004/054 a cura di Domizia Orestano Dipartimento di Fisica Stanza 159 - tel. (06 5517) 7281 orestano.

Lab. Calc. AA 2004/05 21

Operazioni del processore (1)

• Un processore opera mediante un ciclo di caricamento-decodifica-esecuzione delle istruzioni.

• Nella prima fase del ciclo il processore legge dal registro di memoria PC (Program Counter) l'indirizzo dell'istruzione da caricare e incrementa il contenuto di PC.

• Nella fase di decodifica il processore salva l'informazione recuperata dalla memoria, un'istruzione in linguaggio macchina codificata in un numero binario, in un altro registro: IR (Instruction Register).

• Infine il processore esegue l'istruzione contenuta in IR.

Page 22: Lab. Calc. AA 2004/051 laboratorio di calcolo AA 2004/054 a cura di Domizia Orestano Dipartimento di Fisica Stanza 159 - tel. (06 5517) 7281 orestano.

Lab. Calc. AA 2004/05 22

Operazioni del processore (2)

• La fase di esecuzione può richiedere ulteriori accessi alla memoria, per caricare e/o salvare dati. Alla fine di questa fase il processore ripete il ciclo caricando l'istruzione successiva.

• Le istruzioni possono essere di tre tipi:– Operazioni logico-aritmetiche– Trasferimenti di dati– Controllo

• Le istruzioni di controllo modificano l'ordine di esecuzione delle altre istruzioni agendo sugli indirizzi contenuti nel registro PC.

Page 23: Lab. Calc. AA 2004/051 laboratorio di calcolo AA 2004/054 a cura di Domizia Orestano Dipartimento di Fisica Stanza 159 - tel. (06 5517) 7281 orestano.

Lab. Calc. AA 2004/05 23

Tempo di esecuzione (1)• Il tempo necessario per caricare-decodificare-eseguire

un'istruzione dipende dal processore e dalla complessità dell'istruzione.

• L'unità di misura elementare del tempo è il ciclo di clock: la logica che dirige le operazioni del processore è controllata da un circuito esterno che genera un'onda quadra con un periodo fissato.

Page 24: Lab. Calc. AA 2004/051 laboratorio di calcolo AA 2004/054 a cura di Domizia Orestano Dipartimento di Fisica Stanza 159 - tel. (06 5517) 7281 orestano.

Lab. Calc. AA 2004/05 24

Tempo di esecuzione (2)• Il tempo di esecuzione di un'istruzione dipenderà quindi dal

numero di cicli di clock necessari per essa (e dalla frequenza del clock).

• Il tempo di processamento dipende però anche dalla velocità di accesso alla memoria ovvero da come questa è organizzata e dalla velocità di comunicazione.

Page 25: Lab. Calc. AA 2004/051 laboratorio di calcolo AA 2004/054 a cura di Domizia Orestano Dipartimento di Fisica Stanza 159 - tel. (06 5517) 7281 orestano.

Lab. Calc. AA 2004/05 25

Le memorie

• Una memoria è caratterizzata dalla sua funzione, dalle sue dimensioni e dal suo tempo di risposta.

• Le operazioni effettuabili su una memoria sono operazioni di lettura o di scrittura:– Memorie che consentano entrambe le operazioni sono

dette RAM (Random Access Memory).– Memorie accessibili solo in lettura sono dette ROM

(Read Only Memory) o PROM (Programmable Read Only Memory) a seconda che siano scritte dal costruttore o in una programmazione successiva.

Page 26: Lab. Calc. AA 2004/051 laboratorio di calcolo AA 2004/054 a cura di Domizia Orestano Dipartimento di Fisica Stanza 159 - tel. (06 5517) 7281 orestano.

Lab. Calc. AA 2004/05 26

Dimensioni delle memorie

• L'unità elementare di informazione è il bit (b), che può assumere due soli valori. La capacità di un chip di memoria viene generalmente indicata in bit, quella di tutta la memoria del sistema in byte (B) o parole, corrispondenti a 8 bit.

• Le memorie dei sistemi attuali vanno da varie decine di milioni di byte (MB) a svariati miliardi di byte (GB).

Page 27: Lab. Calc. AA 2004/051 laboratorio di calcolo AA 2004/054 a cura di Domizia Orestano Dipartimento di Fisica Stanza 159 - tel. (06 5517) 7281 orestano.

Lab. Calc. AA 2004/05 27

Prestazioni delle memorie

• Le prestazioni di un sistema di memorie sono definite mediante due misure:– Il tempo di accesso vero e proprio, determinato

principalmente dall'organizzazione dei chip usati, ma anche dalla ricerca dell'informazioni sui vari chip e dalle prestazioni del bus

– Il tempo minimo che deve intercorrere tra due richieste successive, generalmente superiore al tempo di accesso.

Page 28: Lab. Calc. AA 2004/051 laboratorio di calcolo AA 2004/054 a cura di Domizia Orestano Dipartimento di Fisica Stanza 159 - tel. (06 5517) 7281 orestano.

Lab. Calc. AA 2004/05 28

Organizzazione di un sistema di memorie

• Anche se la RAM può essere acceduta in un ordine qualsiasi, si osserva che tanto le istruzioni di un programma quanto i dati acceduti sono generalmente raggruppati un una stessa area di memoria.

• Ciò permette di organizzare la memoria ad albero, ponendo poche memorie molto veloci vicino al processore (cache) ed effettuando traferimenti di blocchi di dati dalle memorie più lente alla cache ogni qualvolta il dato richiesto non sia disponibile nella cache.

Page 29: Lab. Calc. AA 2004/051 laboratorio di calcolo AA 2004/054 a cura di Domizia Orestano Dipartimento di Fisica Stanza 159 - tel. (06 5517) 7281 orestano.

Lab. Calc. AA 2004/05 29

Comunicazioni sul bus

• La comunicazione su un bus avviene mediante transazioni discrete. Ogni transazione ha un trasmettitore ed un ricettore.

• Per iniziare una transazione un modulo del sistema (CPU, controller di un disco...) deve acquisire almeno temporaneamente il controllo del bus.

• Sono quindi necessari dei protocolli di arbitraggio che consentano ai vari dispositivi di accordarsi su chi debba avere il controllo per primo.

Page 30: Lab. Calc. AA 2004/051 laboratorio di calcolo AA 2004/054 a cura di Domizia Orestano Dipartimento di Fisica Stanza 159 - tel. (06 5517) 7281 orestano.

Lab. Calc. AA 2004/05 30

Prestazioni di un bus

• Le prestazioni du un bus sono caratterizzate da due quantità:– Il tempo di trasmissione, ovvero il ritardo tra l'invio e la

ricezione dell'informazione.

– La larghezza di banda, ovvero la quantità di informazioni che possono essere trasmesse nell'unità di tempo (unità di misura: bits per second, bps). Questa dipende dal numero di bit trasmissibili in parallelo in una transazione e dal numero di transazioni effettuabili nell'unità di tempo.