G. Mecca – Università della Basilicata – [email protected] Programmazione Procedurale in...
-
Upload
agapito-cecchini -
Category
Documents
-
view
219 -
download
0
Transcript of G. Mecca – Università della Basilicata – [email protected] Programmazione Procedurale in...
G. Mecca – Università della Basilicata – [email protected] G. Mecca – Università della Basilicata – [email protected]
Programmazione Procedurale in Linguaggio C++
Concetti Introduttivi
Parte 1
Architettura del Calcolatore
versione 2.0Questo lavoro è concesso in uso secondo i termini di una licenza Creative Commons
(vedi ultima pagina)
2G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++
Sommario
Introduzione Architettura del Calcolatore
Architettura di Von Neumann Memoria RAM Rappresentazione delle Informazioni
Rappresentazione dei numeriCodice ASCII
Concetti Introduttivi: Architettura >> Sommario
3G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++
Introduzione
Obiettivolo studio della programmazione dei
calcolatori elettroniciovvero scrivere programmi per risolvere
problemi di calcolo Prerequisiti
architettura del calcolatorerappresentazione delle informazioni
Concetti Introduttivi: Architettura >> Introduzione
4G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++
Introduzione
In questo corso ci occuperemo di“software”, ovvero applicazioni
E’ necessario però avere un’idea dell’“hardware”, ovvero dei dispositivi fisici che
compongono il calcolatore Infatti
il software specifica operazioni che vengono eseguiti dall’hardware
Concetti Introduttivi: Architettura >> Introduzione
5G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++
Architettura del Calcolatore
Architettura Esterna (Hardware)
Concetti Introduttivi: Architettura >> Architettura del Calcolatore
Unità Centrale-Processore-Memoria di lavoro (memoria RAM)
Dispositivi di Uscita-Schermo-Audio-Stampanti
Dispositivi di Ingresso-Tastiera-Mouse
Memorie di Massa-Disco Rigido-Dischi Floppy-CD/DVD
6G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++
Architettura del Calcolatore
Architettura Internaarchitettura dei componenti dell’unità
centrale Architettura di “Von Neumann”
l’architettura di tutti i calcolatori moderni (dagli anni ’50 ad oggi)
tre componenti fondamentali: processore, memoria RAM e interfacce delle periferiche
Concetti Introduttivi: Architettura >> Architettura del Calcolatore
7G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++
Architettura di Von Neumann
Concetti Introduttivi: Architettura >> Architettura del Calcolatore
Bus di Sistema
Processore (CPU)Memoria RAM Interfacce delleperiferiche
dischi
8G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++
Processore
CPU (“Central Processing Unit”)è il circuito integrato che effettua i calcoliresponsabile di tutte le operazionies: Pentium IV (a 1.8 MegaHertz)
In sostanzalegge e scrive dati dalla memoria RAMeffettua operazioni aritmeticheè in grado di pilotare le periferiche
Concetti Introduttivi: Architettura >> Architettura del Calcolatore
9G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++
Interfacce verso le Periferiche
Circuiti a cui sono connesse le periferichememorie di massadispositivi di ingresso/uscita
Funzionamentoil processore comanda l’interfaccia
attraverso il bus di sistemal’interfaccia si occupa di gestire la
comunicazione con la periferica
Concetti Introduttivi: Architettura >> Architettura del Calcolatore
10G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++
Memoria RAM
“Random Access Memory”memoria di lavoro per la CPUcircuito elettronico capace di mantenere uno
stato in presenza di alimentazionememorizza lo stato di segnali elettricivolatile: perde lo stato in assenza di tensione
Attenzionele elaborazioni del processore avvengono
esclusivamente su dati nella RAM
Concetti Introduttivi: Architettura >> Architettura del Calcolatore
11G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++
Architettura di Von Neumann
Schema di funzionamentoil processore acquisisce dati dalle periferiche
di ingresso o da una mem. di massali memorizza nella memoria RAMaccede alla RAM ed effettua operazioniscrive i risultati nella RAMinvia i risultati alle periferiche di uscitatrasferisce i dati permanentemente sulle
memorie di massa
Concetti Introduttivi: Architettura >> Architettura del Calcolatore
12G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++
Architettura di Von Neumann
Esempio: elaborazione di un documentoil documento è salvato su discoviene “aperto” e caricato nella RAMvengono effettuate modificheil contenuto della RAM e quello del disco
sono disallineatial termine delle modifiche è necessario
“salvare” la nuova versione sul disco
Concetti Introduttivi: Architettura >> Architettura del Calcolatore
13G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++
Memoria RAM
Organizzazione della RAMcomposta di numerosi circuiti (celle)ciascuno capaci di memorizzare un bit di
informazione Bit (“Binary Digit”)
unità di memorizzazione per il calcolatorepuò valere 1 oppure 0facilmente rappresentabile con un segnale
elettrico
Concetti Introduttivi: Architettura >> Memoria RAM
t
V
1 00.2V
3V
14G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++
Rappresentare Informazione con i Bit Con un bit
due numeri (0 e 1) Con due bit
quattro numeri (00, 01, 10, 11) Con tre bit
otto numeri (000, 001, 010, ..., 110, 111) Per rappresentare 1.000.000 di numeri
servono 20 bit
Concetti Introduttivi: Architettura >> Memoria RAM
15G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++
Unità di Misura della Memoria
Bit: 0/1 Byte: 8 bit unità convenzionale di riferim. KiloByte: 210 byte (1024 byte)
1024x8 bit = 8192 bit MegaByte: 220 byte (1 milione di byte ca.)
circa 8 milioni di bit GigaByte: 230 byte (1 miliardo di byte ca.)
circa 8 miliardi di bit
Concetti Introduttivi: Architettura >> Memoria RAM
NOTA: si usano anche per i dischi
16G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++
Memoria RAM
Struttura della RAMorganizzata in registri
Registro16, 32 o 64 bitogni registro ha un
suo indirizzo Es: 64M RAM
ca. 64 milioni di byteca.16 milioni di registri
da 32 bit
Concetti Introduttivi: Architettura >> Memoria RAM
...
...
...
...
...
...
...
#0
#1
#2
#3
#224-1
bit 0 bit 1 bit 31
17G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++
Rappresentazione delle Informazioni Tutte le informazioni sono rappresentate
attraverso sequenze di bit Esempio:
numero -57 su 16 bit1111111111000111
carattere ‘A’ su 8 bit10000001
Opportune “codifiche”
Concetti Introduttivi: Architettura >> Rappresentazione delle Informazioni
18G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++
Rappresentazione delle Informazioni Codifica (o Codice)
insieme di regole per rappresentare oggetti con altri oggetti
in questo caso: lettere, numeri, immagini ecc. attraverso sequenze di bit
Interazione con il calcolatorel’utente ha l’impressione di lavorare con
oggetti familiari (parole, cifre, ecc.)rappresentazione interna in forma di bit
Concetti Introduttivi: Architettura >> Rappresentazione delle Informazioni
19G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++
Rappresentazione dei Numeri
Rappresentazione dei num. interi positivirappresentazione posizionale in base 2semplice (simile ai num. decimali): ogni bit è
una cifra Rappresentazione dei num. interi relativi
codifica in “complemento a 2”regole complesse
Concetti Introduttivi: Architettura >> Rappresentazione delle Informazioni
20G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++
Rappresentazione dei Numeri
Rappresentazione dei numeri realicodifica in “virgola mobile”il numero viene rappresentato attraverso due
altri numeri mantissa ed esponenteN = m 2e, con 1/2 <= m < 1es: 2048 = 1x211 = 1/2x212
2048 viene rappresentato mettendo assieme la rappresentazione di 1/2, ovvero (0.1)2, e la rappresentazione di 12, ovvero (1100)2
Concetti Introduttivi: Architettura >> Rappresentazione delle Informazioni
NOTA
21G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++
Alcune Interessanti Considerazioni
I Considerazionenumeri di tipo diverso vengono rappresentati
in modo completamente diverso II Considerazione
la rappresentazione in virgola mobile è esponenziale
II Considerazionei numeri interi sono rappres. in modo esattoquesto non vale per i numeri reali
Concetti Introduttivi: Architettura >> Rappresentazione delle Informazioni
22G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++
Rappresentazione dei Numeri
In particolarela rappresentazione in virgola mobile
consente di rappresentare solo numeri razionali
i numeri irrazionali (es: 1/3) devono essere approssimati con un numero razionale
questo introduce errori nella rappresentazione e quindi nei calcoli
Concetti Introduttivi: Architettura >> Rappresentazione delle Informazioni
23G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++
Rappresentazione dei Caratteri
Codice ASCII a 7 bital carattere è associato un num. tra 0 e 127la rappr. del carattere coincide con quella del
numeronota: vale anche per le cifre (0-9) ed i
caratteri speciali (es: +)
Concetti Introduttivi: Architettura >> Rappresentazione delle Informazioni
‘A’ 65 0100001
‘0’ 48 0011000NOTA: differenza tra il carattere ‘2’ e il numero 2
24G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++
Rappresentazione dei Caratteri
Limiti del codice ASCII a 7 bitnumero di caratteri rappresentabili molto
basso (non include lettere accentate) Codice ASCII a 8 bit (“Extended ASCII”)
al carattere è associato un num. tra 0 e 255maggior numero di caratteri rappresentabili
Al giorno d’oggicodice UNICODE (16 bit o superiore)
Concetti Introduttivi: Architettura >> Rappresentazione delle Informazioni
25G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++
Concetti Introduttivi: Architettura >> Rappresentazione delle Informazioni
Tab
ella
dei
Cod
ici A
SC
II E
stes
i
26G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++
Riassumendo
Architettura di Von NeumannRapporto tra processore, RAM e periferiche
Memoria RAMBit, byte e multipli, registri
Rappresentazione delle InformazioniRappresentazione dei numeriParticolarità nella rappresentazioneCodice ASCII
Concetti Introduttivi: Architettura >> Sommario
27G. Mecca - Programmazione Procedurale in Linguaggio C++G. Mecca - Programmazione Procedurale in Linguaggio C++
Termini della Licenza
This work is licensed under the Creative Commons Attribution-ShareAlike License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/1.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
Termini della Licenza
Questo lavoro viene concesso in uso secondo i termini della licenza “Attribution-ShareAlike” di Creative Commons. Per ottenere una copia della licenza, è possibile visitare http://creativecommons.org/licenses/by-sa/1.0/ oppure inviare una lettera all’indirizzo Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.