Architettura dei calcolatori
Paolo Bison
Fondamenti di InformaticaA.A. 2006/07
Università di Padova
Architettura dei calcolatori, Paolo Bison, FI06, 2007-01-11 – p.1
Architettura
� struttura e funzionalità di un calcolatore� hardware� software
Architettura dei calcolatori, Paolo Bison, FI06, 2007-01-11 – p.2
Hardware
� macchina di von Neumanna
MI O
CCCA
RR
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.
Architettura dei calcolatori, Paolo Bison, FI06, 2007-01-11 – p.3
Neumann rivista
memoriacentrale
memoria secondariao ausiliaria
CentralProcessingUnit
Input Output
.....
Architettura dei calcolatori, Paolo Bison, FI06, 2007-01-11 – p.4
Memoria
� dispositivo per la memorizzazione di informazione� programmi� dati in ingresso� dati intermedi� risultati
� struttura e modalità di accesso
Architettura dei calcolatori, Paolo Bison, FI06, 2007-01-11 – p.5
Struttura della memoria
� insieme di M elementi di memoria (celle, parole)
� rappresentazione binariabit (0,1)
� dimensione elemento di memoria4 (nibble), 8 (byte), 16, 32, 64, ..., 1024, ...
� dimensione M della memoriakilobyte KB 10241 1024
megabyte MB 10242 1.048.576
gigabyte GB 10243 1.073.741.824
terabyte TB 10244 1.099.511.627.776
Architettura dei calcolatori, Paolo Bison, FI06, 2007-01-11 – 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
Architettura dei calcolatori, Paolo Bison, FI06, 2007-01-11 – p.7
Memoria centrale
� primaria
� tecnologia al silicio
� tipo RAM
� accesso veloce
� memorizzazione temporanea
Architettura dei calcolatori, Paolo Bison, FI06, 2007-01-11 – p.8
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, FI06, 2007-01-11 – p.9
Disco rigido
Architettura dei calcolatori, Paolo Bison, FI06, 2007-01-11 – p.10
Nastro
Architettura dei calcolatori, Paolo Bison, FI06, 2007-01-11 – p.11
Centrale vs. secondaria
centrale secondaria
accesso veloce lento
costo alto basso
dimensione bassa elevata
memorizzazione temporanea permanente
Architettura dei calcolatori, Paolo Bison, FI06, 2007-01-11 – p.12
CPU
� individua ed esegue le istruzionidel programma
� moduli funzionali� Control Unit (CU)� Arithmetic and Logic Unit (ALU)� Floating Point Unit (FPU)� Cache� Clock
� registricelle di memoria per funzioni parti-colari
Architettura dei calcolatori, Paolo Bison, FI06, 2007-01-11 – 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 eseguibilesequenza finita di istruzioni macchina
Architettura dei calcolatori, Paolo Bison, FI06, 2007-01-11 – p.14
Control Unit
� governa il funzionamento della CPU
� registri� Program Counter (PC)� Instruction Register (IR)
� ciclo di esecuzione� fetch� decode� execute
Architettura dei calcolatori, Paolo Bison, FI06, 2007-01-11 – p.15
Unità di calcolo
� ALUesegue calcoli aritmetici e logici
� FPUesegue calcoli su numeri in formato floating point
� registri� data registers� address registers� status registers
Architettura dei calcolatori, Paolo Bison, FI06, 2007-01-11 – p.16
Cache e Clock
� cachememoria tampone veloce interna alla CPU
memoriacentrale
cache CPU
� clockmodulo per la temporizzazione e sincronizzazione delcalcolatore
Architettura dei calcolatori, Paolo Bison, FI06, 2007-01-11 – 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, FI06, 2007-01-11 – p.18
Interfaccia con l’utente
� codifica/decodifica dell’informazione
� input� tastiera� mouse
� output� video� stampante
Architettura dei calcolatori, Paolo Bison, FI06, 2007-01-11 – p.19
Collegamenti con altri apparati
� bidirezionali
� modem
� interfaccia di rete (NIC)
Architettura dei calcolatori, Paolo Bison, FI06, 2007-01-11 – p.20
Software
� sistema operativo
� software di base
� software utente
BASE
UTENTE
HW
OS
Architettura dei calcolatori, Paolo Bison, FI06, 2007-01-11 – 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, FI06, 2007-01-11 – p.22
Gestione risorse
� processore� multiprogrammazione
� memoria centrale� spazio di memoria per il singolo processo� memoria virtuale
� memoria secondaria� file system
Architettura dei calcolatori, Paolo Bison, FI06, 2007-01-11 – p.23
Multiprogrammazione
� più processi in esecuzione contemporaneamente
� esecuzione in parallelo (“come se”)
Architettura dei calcolatori, Paolo Bison, FI06, 2007-01-11 – p.24
Memoria singolo processo
� allocazione di memoria per il processo
� protezione dagli accessi indesiderati
OS
P1
P2
P3
Architettura dei calcolatori, Paolo Bison, FI06, 2007-01-11 – p.25
Memoria virtuale
� meccanismo per simulare una memoria centrale didimensione maggiore di quella esistente utilizzandoporzioni di memoria secondaria (disco)
� swap area
Architettura dei calcolatori, Paolo Bison, FI06, 2007-01-11 – p.26
File system - generalità
� gestione dei file� file sequenza finita di bit individuata da un nome� nomesequenza 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 tipoArchitettura dei calcolatori, Paolo Bison, FI06, 2007-01-11 – p.27
File system - funzionalità
� gestione automatica e trasparente del supporto dimemorizzazione
� operazioni sui file� creazione� identificazione� accesso� modifica� cancellazione
Architettura dei calcolatori, Paolo Bison, FI06, 2007-01-11 – p.28
File system - struttura
� directoryfile 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, FI06, 2007-01-11 – p.29
File system - individuazione file
� pathnamepercorso 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, FI06, 2007-01-11 – 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
Architettura dei calcolatori, Paolo Bison, FI06, 2007-01-11 – p.31
Interfaccia utente
� gestisce l’interazione dell’utente con il sistema� grafica
sistemi a finestre� testuale
linea di comando (CLI)
Architettura dei calcolatori, Paolo Bison, FI06, 2007-01-11 – p.32
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, FI06, 2007-01-11 – p.33
Sviluppo software
� programmi per lo sviluppo di altri programmi� editor� assembler� compilatori e interpreti� macchina virtuale
Architettura dei calcolatori, Paolo Bison, FI06, 2007-01-11 – p.34
Software utente
� software (programmi/librerie) sviluppato dall’utente
� basato sulle funzionalità fornite dal sistema operativo e dalsoftware di base
� ciclo di sviluppo
→ scrittura/modifica
↑ ⇓
← compilazione
↑ ⇓
← esecuzione
Architettura dei calcolatori, Paolo Bison, FI06, 2007-01-11 – p.35
Assembler (ASM)
� assemblyistruzioni macchina espresse in forma mnemonica� LOAD� STORE� ADD� JUMP
� converte codice assembly in istruzioni macchina
Architettura dei calcolatori, Paolo Bison, FI06, 2007-01-11 – p.36
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, FI06, 2007-01-11 – p.37
Compilatore vs. interprete
� compilatoreconverte l’intero programma sorgente nel corrispondenteprogramma eseguibile
� interpreteconverte ed esegue immediatamente una ad una leistruzioni del programma sorgente
Architettura dei calcolatori, Paolo Bison, FI06, 2007-01-11 – p.38
Virtual Machine (VM)
� combinazione di compilazione ed interpretazione
� si compila in un codice intermedio che poi viene interpretatoJava Virtual Machine
� emulazione di CPU
Architettura dei calcolatori, Paolo Bison, FI06, 2007-01-11 – p.39
Produttività individuale
� programmi per attività produttive individuali� scrittori� fogli elettronici� presentazioni� grafica
Architettura dei calcolatori, Paolo Bison, FI06, 2007-01-11 – p.40
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, FI06, 2007-01-11 – p.41