Organizzazione strutturata

Transcript

Organizzazione strutturata
Organizzazione strutturata
•Evoluzione storica
L. Borrelli
a.a. 2002-03
1
Complessità dei Sistemi di Elaborazione
• Caratteristica dei Sistemi di Elaborazione:
Complessità
• Per trattare sistemi complessi è efficace la:
Decomposizione in livelli di astrazione
a.a. 2002-03
L. Borrelli
2
n1
Astrazione
• Astrazione: Concetto fondamentale su cui si
basa l’architettura di ogni sistema informatico
“complesso” (software o hardware).
• Astrazione: processo di aggregazione di
informazioni e di sintesi di modelli concettuali che
ne enucleano le proprietà rilevanti escludendo i
dettagli inessenziali.
– L’ astrazione, diversamente dalla approssimazione,
preserva la correttezza pur adoperando una descrizione
più potente e più semplice da denotare.
a.a. 2002-03
L. Borrelli
3
Organizzazione a livelli
• La decomposizione dei sistemi di elaborazione in
livelli di astrazione si ottiene attraverso la
introduzione dei concetti di:
– Linguaggio
– Macchina Virtuale
– Relazione tra macchina virtuale e linguaggio
– Interazione tra macchine virtuali
a.a. 2002-03
L. Borrelli
4
n2
Linguaggio
• Risoluzione di problemi con l’ elaboratore:
– Individuazione di un metodo risolutivo del problema
(algoritmo o procedura di elaborazione )
– Formulazione dell’algoritmo in una sequenza di
istruzioni (operazioni) espresse in un linguaggio
comprensibile dalla macchina (programma).
• L’insieme delle istruzioni “primitive” di un elaboratore
definiscono un linguaggio con cui è possibile comunicare
con esso.
a.a. 2002-03
L. Borrelli
5
Macchina virtuale
• Distanza notevole fra il linguaggio di descrizione
della procedura di elaborazione dell’uomo e il
linguaggio comprensibile dalla macchina:
– Necessità di introdurre un insieme di istruzioni
(nuovo linguaggio) più semplici da utilizzare
rispetto alle istruzioni primitive;
– Introduzione di una macchina virtuale sul
livello di macchina reale (HW).
a.a. 2002-03
L. Borrelli
6
n3
Macchina virtuale
Procedura di elaborazione in
linguaggio naturale
Macchina
Software virtuale
Hardware
Hardware
Macchina reale
Macchina reale
Il set di istruzioni comprensibili dalla macchina virtuale
costituisce un nuovo linguaggio più vicino alla logica dell’utente
dell’utente
a.a. 2002-03
L. Borrelli
7
Livelli di Macchina Virtuale
Livello n
Macchina Mn / Linguaggio Ln
Livello n-1
Macchina Mn-1 / Linguaggio Ln-1
Livello 0
Macchina M0 / Linguaggio L0
Hardware
a.a. 2002-03
L. Borrelli
8
n4
Macchina virtuale e linguaggio
• Ad ogni macchina virtuale corrisponde un
linguaggio costituito da tutte le istruzioni che
quella macchina può eseguire.
• Ogni istruzione in linguaggio Ln è sostituita
(tradotta) da una sequenza di istruzioni in
linguaggio Ln-1.
a.a. 2002-03
L. Borrelli
9
Connessione tra i livelli
• Processi di traduzione delle istruzioni espresse
in linguaggio Ln in istruzioni espresse in
linguaggio Ln-1.
• Approcci:
– Compilazione
– Interpretazione
a.a. 2002-03
L. Borrelli
10
n5
Interpretazione
• Un Interprete è un programma che traduce
ogni istruzione in linguaggio Ln ed esegue la
corrispondente sequenza di istruzioni in
linguaggio Ln-1.
Esecuzione
Esecuzione
Esecuzione
Interprete
Programma in Ln
a.a. 2002-03
Errori sintattici e
semantici
L. Borrelli
11
Compilazione
• Un Compilatore e` un programma che traduce
un programma scritto in linguaggio Ln in un
programma scritto in linguaggio Ln-1.
Programma sorgente
(Ln)
Ln)
Compilatore
Programma oggetto
(Ln(Ln-1)
Errori sintattici
L’elaboratore esegue il programma in Ln-1 rilevandone
gli errori semantici.
a.a. 2002-03
L. Borrelli
12
n6
Interpretazione e Compilazione
• Velocità di esecuzione:
– Bassa per i linguaggi interpretati
– Alta per i linguaggi compilati
• Facilità di messa a punto dei programmi:
– Alta per i linguaggi interpretati
– Bassa per i linguaggi compilati
a.a. 2002-03
L. Borrelli
13
Sistema di elaborazione
• Sistema di elaborazione :
– Sistema gerarchico in cui sono presenti molti
livelli di macchina virtuale interagenti fra loro.
– Le diverse macchine sono via via più astratte:
più vicine alla logica dell’ utente e più lontane
dalla logica dell’ elaboratore reale.
– La macchina reale, ovvero il livello hardware, è
la macchina più efficiente e meno flessibile.
a.a. 2002-03
L. Borrelli
14
n7
Simbolico
Livelli dei sistemi attuali
Livello dei Linguaggi Applicativi
Livello del Linguaggio Assemblatore
Numerico [0,1]
Livello del Sistema Operativo
Livello del liguaggio macchina
Traduzione/
Interprtazione
Traduzione
Interpretazione
parziale
Interpretazione
Livello della microprogrammazione
Esecuzione
Livello hardware
L. Borrelli
a.a. 2002-03
15
Evoluzione dei Sistemi di
Elaborazione
a.a. 2002-03
L. Borrelli
16
n8
Evoluzione dei sistemi di
elaborazione
• Modello computazionale pressoché invariato.
• Miglioramento rapidissimo delle prestazioni degli
elaboratori (1945-2002).
• Tasso di crescita elevato
– Miglioramento della architettura (organizzazione
funzionale delle parti costituenti l’elaboratore);
– Miglioramento della tecnologia di realizzazione.
a.a. 2002-03
L. Borrelli
17
Calcolatori meccanici
• 1623: Keplero inventa la macchina capace di eseguire
operazioni aritmetiche.
• 1642: Pascal costruisce una macchina capace di eseguire
addizioni e sottrazioni.
• 1674: Leibniz costruisce una macchina meccanica capace di
effettuare moltiplicazioni e divisioni.
• 1838: Babbage progetta la macchina differenziale.
1854: Algebra di Boole
a.a. 2002-03
L. Borrelli
18
n9
Prototipi dei calcolatori
• ENIAC (Electronical Numerical Integrator and Calculator): nel
1946, presso l’Università della Pennsylvania fu costruito per
scopi militari, il primo calcolatore elettronico: l’ENIAC - in
grado di effettuare 400 moltiplicazioni al secondo, dotato di
18000 valvole termoioniche, che occupava una superficie di
200 mq e pesava oltre 35 t.
• EDVAC (Electronic Discrete Variable Automatic Computer)
progettato dal matematico ungherese Von Neumann, vero
precursore dei moderni computer. Ancora oggi i moderni
calcolatori conservano la stessa organizzazione logica del
modello di Von Neumann.
1936: Modello teorico del calcolatore di Turing
a.a. 2002-03
L. Borrelli
19
Relè
Valvole
termoioniche
Transistor
Circuiti
integrati
a.a. 2002-03
A. M. Fanelli
Circuiti
VLSIi
20
n10