Architettura dei calcolatori
Paolo Bison
Fondamenti di Informatica Ingegneria Meccanica
Università di Padova A.A. 2008/09
Architettura dei calcolatori, Paolo Bison, FI08, 2008-09-29 – p.1
Architettura
struttura e funzionalità di un calcolatore
hardware
software
Architettura dei calcolatori, Paolo Bison, FI08, 2008-09-29 – p.2
Hardware
macchina di von Neumann
aI M O
CC CA
R R
CA central arithmetic I input CC central control O output
C CA+CC R outside recording medium M memory
aJ. von Neumann, First Draft of a Report on the EDVAC, 1945.
Neumann rivista
memoria centrale
memoria secondaria o ausiliaria
Central Processing Unit
Input Output
...
Memoria
dispositivo per la memorizzazione di informazione
programmi
dati in ingresso
dati intermedi
risultati
struttura e modalità di accesso
Architettura dei calcolatori, Paolo Bison, FI08, 2008-09-29 – p.5
Struttura della memoria
insieme di M elementi di memoria (celle, parole)
rappresentazione binaria bit (0,1)
dimensione elemento di memoria
4 (nibble), 8 (byte), 16, 32, 64, ..., 1024, ...
dimensione M della memoria
kilobyte KB 1024
11024
megabyte MB 1024
21.048.576 gigabyte GB 1024
31.073.741.824 terabyte TB 1024
41.099.511.627.776
Architettura dei calcolatori, Paolo Bison, FI08, 2008-09-29 – p.6
Modalità di accesso
lettura/scrittura delle celle
ad accesso casuale
indirizzo associato ad ogni cella
RAM (Random Access Memory)
tempo di accesso costante
sequenziale
per accedere al n-esima cella, si deve accedere alle n-1 precedenti
tempo di accesso variabile M−1 M−2 0 1 2
Memoria centrale
primaria
tecnologia al silicio
tipo RAM
accesso veloce
memorizzazione temporanea
Memoria secondaria
memorizzazione permanente
accesso lento
differenti tecnologie
magnetica (disco rigido, nastro)
ottica (disco)
accesso
ad indirizzo (disco)
sequenziale (nastro)
Architettura dei calcolatori, Paolo Bison, FI08, 2008-09-29 – p.9
Disco rigido
Architettura dei calcolatori, Paolo Bison, FI08, 2008-09-29 – p.10
Nastro Centrale vs. secondaria
centrale secondaria
accesso veloce lento
costo alto basso
dimensione bassa elevata
memorizzazione temporanea permanente
CPU
individua ed esegue le istruzioni del programma
moduli funzionali
Control Unit (CU)
Arithmetic and Logic Unit (ALU)
Floating Point Unit (FPU)
Cache
Clock
registri
celle di memoria per funzioni parti- colari
Architettura dei calcolatori, Paolo Bison, FI08, 2008-09-29 – p.13
Istruzioni macchina
repertorio di istruzioni che la CPU sa eseguire
specifico per ogni tipo di CPU
categorie
trasferimento dati
operazioni aritmetiche e logiche
salti
codifica binaria
programma eseguibile
sequenza finita di istruzioni macchina
Architettura dei calcolatori, Paolo Bison, FI08, 2008-09-29 – p.14
Control Unit
governa il funzionamento della CPU
registri
Program Counter (PC)
Instruction Register (IR)
ciclo di esecuzione
fetch
decode
execute
Unità di calcolo
ALU
esegue calcoli aritmetici e logici
FPU
esegue calcoli su numeri in formato floating point
registri
data registers
address registers
status registers
Cache e Clock
cache
memoria tampone veloce interna alla CPU
memoria
centrale cache CPU
clock
modulo per la temporizzazione e sincronizzazione del calcolatore
Architettura dei calcolatori, Paolo Bison, FI08, 2008-09-29 – p.17
Input/Output
dispositivi di interfaccia tra il calcolatore e il mondo esterno
interfaccia con l’utente
collegamenti con altri apparati (computer)
Architettura dei calcolatori, Paolo Bison, FI08, 2008-09-29 – p.18
Interfaccia con l’utente
codifica/decodifica dell’informazione
input
tastiera
mouse
output
video
stampante
Collegamenti con altri apparati
bidirezionali
modem
interfaccia di rete (NIC)
Software
sistema operativo
software di base
software utente
UTENTE BASE
HW OS
Architettura dei calcolatori, Paolo Bison, FI08, 2008-09-29 – p.21
Sistema operativo
software per la gestione del calcolatore
funzionalità
astrazione ed indipendenza dai dispositivi fisici
•
drivers
gestione risorse
•
processore
•
memoria centrale
•
memoria secondaria
esecuzione dei programmi (processi)
Architettura dei calcolatori, Paolo Bison, FI08, 2008-09-29 – p.22
Gestione risorse
processore
multiprogrammazione
memoria centrale
spazio di memoria per il singolo processo
memoria virtuale
memoria secondaria
file system
Multiprogrammazione
più processi in esecuzione contemporaneamente
esecuzione in parallelo (“come se”)
Memoria singolo processo
allocazione di memoria per il processo
protezione dagli accessi indesiderati
OS P1
P2 P3
Architettura dei calcolatori, Paolo Bison, FI08, 2008-09-29 – p.25
Memoria virtuale
meccanismo per simulare una memoria centrale di dimensione maggiore di quella esistente utilizzando porzioni di memoria secondaria (disco)
swap area
Architettura dei calcolatori, Paolo Bison, FI08, 2008-09-29 – p.26
File system - generalità
gestione dei file
file sequenza finita di bit individuata da un nome
nome sequenza finita di caratteri alfanumerici
interpretazione del contenuto
significato della sequenza di bit
•
testo
•
immagine
•
...
non univoca, può dipendere dal contesto
estensione nel nome
foto.jpeg lettera.txt libro.doc dati.tar.gz
magic number
primi n bit del file ne codificano il tipo
File system - funzionalità
gestione automatica e trasparente del supporto di memorizzazione
operazioni sui file
creazione
identificazione
accesso
modifica
cancellazione
File system - struttura
directory
file il cui contenuto viene interpretato come elenco di altri file
struttura ad albero
pb/|-- dati/
| |-- dati1.dat
| ‘-- dati2.dat
|-- lettere/
| |-- fisco.doc
| ‘-- personali/
| |-- fisco.doc
| ‘-- love.doc
‘-- tmp/
Architettura dei calcolatori, Paolo Bison, FI08, 2008-09-29 – p.29
File system - individuazione file
pathname
percorso dalla radice attraverso le sottodirectory fino al file
sequenza dei nomi separati da un carattere speciale
UNIX= / DOS= \
assoluto vs. relativo
•
root madre di tutte le directory
•
directory corrente
esempi
/pb/dati/dati1.dat
\pb\lettere\fisco.doc personali\fisco.doc fisco.doc
Architettura dei calcolatori, Paolo Bison, FI08, 2008-09-29 – p.30
Software base
software per facilitare l’uso del calcolatore
programmi
interfaccia utente (UI)
sviluppo software
comandi file system
produttività individuale
rete
librerie
matematiche
grafiche
Interfaccia utente
gestisce l’interazione dell’utente con il sistema
grafica
sistemi a finestre
testuale
linea di comando (CLI)
Comandi file system
programmi per la gestione del file system
UNIX DOS
cd cd
cp copy
ls dir
mkdir mkdir
mv ren
pwd -
rm del
rmdir rmdir - undelete
Architettura dei calcolatori, Paolo Bison, FI08, 2008-09-29 – p.33
Sviluppo software
programmi per lo sviluppo di altri programmi
editor
assembler
compilatori e interpreti
macchina virtuale
Architettura dei calcolatori, Paolo Bison, FI08, 2008-09-29 – p.34
Software utente
software (programmi/librerie) sviluppato dall’utente
basato sulle funzionalità fornite dal sistema operativo e dal software di base
ciclo di sviluppo
→ scrittura/modifica
↑ ⇓
← compilazione
↑ ⇓
← esecuzione
Assembler (ASM)
assembly
istruzioni macchina espresse in forma mnemonica
LOAD
STORE
ADD
JUMP
converte codice assembly in istruzioni macchina
High Level Languages (HLL)
astrazione del modello di calcolo
indipendenza dalla piattaforma hardware
maggiore leggibilità e comprensibilità
traduzione in linguaggio macchina
programma sorgente −→ programma eseguibile
Architettura dei calcolatori, Paolo Bison, FI08, 2008-09-29 – p.37
Compilatore vs. interprete
compilatore
converte l’intero programma sorgente nel corrispondente programma eseguibile
interprete
converte ed esegue immediatamente una ad una le istruzioni del programma sorgente
Architettura dei calcolatori, Paolo Bison, FI08, 2008-09-29 – p.38
Virtual Machine (VM)
combinazione di compilazione ed interpretazione
si compila in un codice intermedio che poi viene interpretato Java Virtual Machine
emulazione di CPU
Produttività individuale
programmi per attività produttive individuali
scrittori
fogli elettronici
presentazioni
grafica
Software proprietario vs. Open software
software proprietario
dato in licenza d’uso (EULA)
non modificabile dall’utente
supporto e continuità nel tempo
open software
free as in freedom
licenza di distribuzione (GPL)
modificabile dall’utente
non è garantito il supporto o la continuità
Architettura dei calcolatori, Paolo Bison, FI08, 2008-09-29 – p.41