Matteo Baldoni Architetture degli Elaboratori 1
Corso di Corso di
Architettura degli Elaboratori Architettura degli Elaboratori
Introduzione:
linguaggi, livelli e macchine virtuali
Matteo Baldoni
Dipartimento di Informatica Università degli Studi di Torino C.so Svizzera, 185 – I-10149 Torino [email protected] http://www.di.unito.it/ ~baldoni
Matteo Baldoni Architetture degli Elaboratori
Chi sono e come contattarmi Chi sono e come contattarmi
Matteo Baldoni
Dipartimento di Informatica Università degli Studi di Torino Corso Svizzera, 185
I-10149 Torino (ITALY)
E-mail: [email protected]
URL: http://www.di.unito.it/ ~baldoni Tel.: +39 011 670 67 56
Fax.: +39 011 75 16 03
Pagina del corso:
http://www.di.unito.it/ ~baldoni/didattica/
Sono nato a Torino nel 1968, nel febbraio 1993 mi sono laureato in Scienze
dell’Informazione e nel febbraio 1998 sono diventato Dottore in Ricerca in Informatica. Dal luglio 1999 sono ricercatore in informatica presso il Dipartimento di Informatica dell’Università degli Studi di Torino.
Matteo Baldoni Architetture degli Elaboratori 3
Bibliografia Bibliografia
✗
Andrew S. Tanenbaum.
Architettura dei computer, un approccio strutturato.
UTET Libreria, 2000.
€ 40,80.
✗
D. A. Patterson, J. L.
Hennessy. Architettura dei computer: un approccio quantitativo. Jackson Libri, 2001. € 51,50.
Il libro di testo
Altre letture
Andrew S.
Tanenbaum
Matteo Baldoni Architetture degli Elaboratori
L`esame L`esame
✗
L'esame sarà scritto
✗
Per superare lo scritto è necessario studiare sul libro di testo (i lucidi che saranno messi a disposizione non lo sostituiscono)
✗
Stesse modaltà sia per il corso A che il corso B
✗
Il corso A è per chi ha il
cognome dalla lettera A alla
lettera K
Matteo Baldoni Architetture degli Elaboratori 5
Ricordarsi che Ricordarsi che
✗
potete chiedermi ed
interrompermi se qualcosa non vi è chiaro o avete domande
✗
in genere sono buono e comprensivo ma ...
✗
se farete rumore o disturberete posso incavolarmi e ...
Matteo Baldoni Architetture degli Elaboratori
Obiettivi del corso Obiettivi del corso
✗
Lo studio dell'architettura dei calcolatori
✗
Come è organizzato un calcolatore?
✗
Nel libro sono discussi:
✔
Pentium II
✔
UltraSPARC
✔
Java Chip
✗
Ma questo non è un corso
di hardware!!
Matteo Baldoni Architetture degli Elaboratori 7
Livelli come astrazioni Livelli come astrazioni
✗ Un computer è una macchina programmabile, tuttavia esso non è direttamente utilizzabile da parte degli utenti poiché richiederebbe la conoscenza sull’organizzazione fisica della specifica macchina e del suo linguaggio macchina
✗ Ogni machina avrebbe le sue differenti caratteristiche
✗ Il linguaggio macchina è
estremamente complicato e non di facile gestione
Linguaggio Macchina
Utente
?
? ?
Matteo Baldoni Architetture degli Elaboratori
Livelli come astrazioni Livelli come astrazioni
✗ In altre parole desideriamo astrarci dai dettagli fisici della macchina in oggetto e dal suo specifico linguaggio macchina
✗ L’idea è quella di realizzare al di sopra della macchina reale una macchina virtuale astratta che abbia le funzionalità desiderate e che sia facile da utilizzare per l’utente
✗ L’utente interagisce con la macchina virtuale, ogni comando viene poi tradotto nei
corrispondenti comandi sulla macchina fisica
✗ La macchina virtuale è realizzata mediante software (programmi)
traduzione in LM Software
Macchina Virtuale
Utente
Linguaggio Macchina
Matteo Baldoni Architetture degli Elaboratori 9
Livelli come astrazioni Livelli come astrazioni
✗ La macchina virtuale viene realizzata in genere mediante il software di base:
✔ Sistema Operativo: file system, memoria, cpu, risorse ausiliarie, comunicazione
✔ Linguaggi e ambienti di
programmazione ad alto livello:
interpreti e compilatori
✗ Non vi sono limiti al numero e al tipo di macchine virtuali che possono essere realizzate
✗ In genere nelle macchine moderne sono strutturate su più livelli (struttura a cipolla)
traduzione in LM Software
Macchina Virtuale
Utente
Linguaggio Macchina traduzione
Software
Macchina Virtuale
Matteo Baldoni Architetture degli Elaboratori
Livelli come astrazioni Livelli come astrazioni
✗ Un browser è un programma
✗ Un browser interpreta il linguaggio HTML e visualizza le pagine sullo schermo
✗ Per la visualizzazione delle pagine un browser che per farlo si
appoggia al software di base
✗ Il software di base si appoggia alla macchina fisica per realizzare effettivamente il “rendering” della pagina su video
traduzione in LM Software
Macchina Virtuale
Utente
Linguaggio Macchina traduzione
BROWSER
Macchina Virtuale
Matteo Baldoni Architetture degli Elaboratori 11
Interpretazione Interpretazione
✗ Interprete (JavaScript, Scheme, Prolog): Interazione.
Più facile modificare un programma durante l'esecuzione
Sparc/Solaris
Apple Codice Sorgente
Interprete Sparc/Solaris
Interprete MacOS
Interprete Intel/GNU-Linux
Intel/GNU-Linux Intel/Windows
Matteo Baldoni Architetture degli Elaboratori
Interpretazione Interpretazione
✗ Affinché le due persone di lingua diversa possano dialogare tra di loro (nel caso nessuna delle due conosca la lingua dell’altro) è necessario che qualcuno interpreti (traduca sul momento) quanto dice una persona nella propria lingua nella lingua di chi ascolta
✗ Si interpreta quando è necessario una stretta interazione, quando si desidera dialogare e non solo trasmettere un messaggio
Matteo Baldoni Architetture degli Elaboratori 13
Traduzione o compilazione Traduzione o compilazione
✗ Compilazione (Pascal, C, Ada, C++): Efficienza di esecuzione. Il codice generato dal
compilatore può essere ottimizzato, perché la compilazione è fatta una sola volta
Compilatore Sparc/Solaris
Compilatore MacOS
Compilatore Intel/GNU-Linux
binario binario
binario
Intel/GNU-Linux Intel/Wind
Apple Sparc/Solaris Codice Sorgente
Matteo Baldoni Architetture degli Elaboratori
Traduzione o compilazione Traduzione o compilazione
✗ La traduzione è adatta per comunicare messaggio, come ad esempio una lettera
✗ Anche per effettuare una traduzione è necessario
l’intervento di qualcuno che sia in grado di comprendere le frasi di un linguaggio e riportarle in un altro ma questo può operare in tempi separati rispetto la scrittura del messaggio e la sua lettura
✗ La lettura è più rapida e semplice, il traduttore ha senz’altro avuto tempo per meglio adattare il testo
✗ ma si penalizza l’interattività
Matteo Baldoni Architetture degli Elaboratori 15
Soluzione mista: Java Soluzione mista: Java
✗ Soluzione mista (Java):Portabilità. Per eseguire un programma su macchine diverse è sufficiente implementare l'interprete del linguaggio intermedio, e non tutto il compilatore
Palm Compilatore
Java
bytecode
Interprete Java/Solaris
Interprete Java/MacOS
Interprete Java/GNU-Linux
Interprete
Java/PalmOS Intel/GNU-Linux
Intel/Wind
Apple Sparc/Solaris
Codice Sorgente
Matteo Baldoni Architetture degli Elaboratori
Panoramica del corso Panoramica del corso
✗
Organizzazione strutturata del calcolatore
✗
Studieremo i livelli 0, 1, 2
✗
Nel secondo anno studierete il livello 3 e 4
✗
Nel primo e secondo trimestre avete
incominciato a studiare il
livello 5 (alcuni con me...)
Matteo Baldoni Architetture degli Elaboratori 17
Panoramica del corso Panoramica del corso
✗
L'insieme di tipi di dati, operazioni e
caratteristiche di ogni livello si chiama
architetura
✗
Lo studio dei come progettare le parti di un sistema che sono visibili ai programmatori si chiama architettura dei calcolatori
✗
Architettura sinonimo di organizzazione
Matteo Baldoni Architetture degli Elaboratori
Livelli di macchine Livelli di macchine
HARDWARE E SOFTWARE SONO
LOGICAMENTE
EQUIVALENTI
Matteo Baldoni Architetture degli Elaboratori 19
Hardware
Hardware ≡ ≡ Software Software
✗
Potremmo anche simulare
l'hardware di un intero computer via software
✗
Un esempio è la 'vmware
workstation'
Una virtual machine che simula l'hardware di un PC!
Matteo Baldoni Architetture degli Elaboratori
Hardware
Hardware ≡ ≡ Software Software
✗
Tale software permette di installare un sistema operativo
senza nessuna differenza con una
installazione su un vero
computer
GNU/Linux RedHat Windows 2000