Esplora E-book
Categorie
Esplora Audiolibri
Categorie
Esplora Riviste
Categorie
Esplora Documenti
Categorie
PERIFERICA CPU
INTERFACCIA INTERFACCIA
Interfacce Parallele: veloci, pochi metri di distanza, cavi con molti fili. Standard:
– CENTRONICS
– IEEE 488 (HPIB) (più periferiche sullo stesso canale)
1
Università di Pavia - corso di Fondamenti di Informatica
Cenni sulle architetture
INTER. MASTERIZ-
CD/DVD DISCO NASTRO
RETE ZATORE
BUS
MEMORIA
MEMORIA CPU SERIALE PARALL.
AGG.
2
Università di Pavia - corso di Fondamenti di Informatica
BUS Standard
– NU-BUS: Macintosh
– MULTIBUS: Workstation
– VME-BUS: Workstation
– AGP
– XPCI
– PCMCIA
3
Università di Pavia - corso di Fondamenti di Informatica
Evoluzione della macchina di Von Neumann
4
Università di Pavia - corso di Fondamenti di Informatica
Evoluzione della macchina di Von Neumann
Esempi:
accessi a memoria centrale: rigorosa sequenzialità di accesso senza prevedere alcun
meccanismo per anticipare le richieste della CPU e per effettuare accessi a memoria in
parallelo con le operazioni della CPU stessa (risolto con la gestione virtuale della
memoria introducendo parallelismo di funzionamento);
due unità funzionalmente autonome, la CPU e un dispositivo di I/O, sono costrette a
sequenzializzare le proprie attività impiegando un tempo pari alla somma dei singoli
tempi di lavoro;
acquisizione, decodifica ed esecuzione delle istruzioni da parte della CPU, pur
logicamente separate e quindi effettuabili in parallelo su istruzioni diverse, vengono
eseguite in modo strettamente sequenziale;
programma di calcolo, ad esempio su matrici, che richiede alla CPU di ripetere le
stesse istruzioni per eseguire gli stessi calcoli su dati diversi: spreco di tempo per
acquisire ed interpretare le stesse istruzioni, a causa del fatto che l’unità logico-
aritmetica opera solo su coppie di valori
5
Università di Pavia - corso di Fondamenti di Informatica
Evoluzione della macchina di Von Neumann
• In conclusione, il limite intrinseco della struttura di Von Neumann è la totale
mancanza di parallelismo, che comporta un tempo globale di elaborazione pari
alla somma dei tempi richiesti da ogni singola attività
• Le evoluzioni architetturali della macchina di Von Neumann tendono a
consentire diversi livelli di parallelismo
6
Università di Pavia - corso di Fondamenti di Informatica
Colloquio CPU - periferiche
CPU
MEMORIA
CENTRALE
CANALE 1 CANALE 2
PERIFERICA PERIFERICA
7
Università di Pavia - corso di Fondamenti di Informatica
Pipeline
8
Università di Pavia - corso di Fondamenti di Informatica
Fasi dell’unità di controllo
Esecuzione
Decodifica
Fetch Operando
Fetch Op. Code Tempo
Fasi di una istruzione nella macchina di Von Neumann
9
Università di Pavia - corso di Fondamenti di Informatica
Evoluzione della macchina di Von Neumann
10
Università di Pavia - corso di Fondamenti di Informatica
Evoluzione della macchina di Von Neumann
11
Università di Pavia - corso di Fondamenti di Informatica
Architettura degli elaboratori: tassonomia generale
Elaborazione
Seriale Parallela
12
Università di Pavia - corso di Fondamenti di Informatica
Classificazione delle architetture degli elaboratori
dati dati
Memoria
istruzioni
Processore
SISD
Processore
: ∙∙∙
Processori Processore
SIMD MIMD
13
Università di Pavia - corso di Fondamenti di Informatica
Evoluzione della macchina di Von Neumann
Sistema Multiprocessore
MEMORIA I/O
COMUNE COMUNE
BUS COMUNE
CPU
LOCALE
BUS LOCALE 2
BUS LOCALE n
BUS LOCALE 1
MEMORIA
LOCALE
… …
I/O
LOCALE
14
Università di Pavia - corso di Fondamenti di Informatica
Evoluzione della macchina di Von Neumann
15
Università di Pavia - corso di Fondamenti di Informatica
Sistemi operativi
16
Università di Pavia - corso di Fondamenti di Informatica
Funzioni del sistema operativo
• Gestione lavori
• Gestione delle risorse
– sicurezza
– recupero
17
Università di Pavia - corso di Fondamenti di Informatica
Funzioni del kernel
18
Università di Pavia - corso di Fondamenti di Informatica
Funzioni del software di base
– compilare
– duplicare un file
– cancellare un file
– visualizzare un file
– trasferire un file
19
Università di Pavia - corso di Fondamenti di Informatica
Funzioni del software di base
– giocare
– …
20
Università di Pavia - corso di Fondamenti di Informatica
Sistemi operativi
HARDWARE
SISTEMA OPERATIVO
PROGRAMMI UTENTE
21
Università di Pavia - corso di Fondamenti di Informatica
Classificazione dei sistemi operativi
• Dedicati
• A lotti (batch)
• Multiprogrammazione
• Interattivi (time-sharing)
• Real-time
• Per macchine multiprocessori (sistemi concorrenti)
• L’ordine è cronologico
22
Università di Pavia - corso di Fondamenti di Informatica
Sistemi operativi dedicati
23
Università di Pavia - corso di Fondamenti di Informatica
Sistemi operativi per gestione a lotti (batch)
24
Università di Pavia - corso di Fondamenti di Informatica
Multiprogrammazione
CPU
MEMORIA
CANALE PERIFERICHE
25
Università di Pavia - corso di Fondamenti di Informatica
Multiprogrammazione
• Quando un processo in esecuzione (running) chiede un servizio di I/O al
sistema operativo si blocca in attesa del risultato
• Il sistema operativo avvia l’operazione di I/O e manda in esecuzione un altro
processo che si trova in stato di pronto (ready)
• Il sistema operativo mantiene una o più code di processi gestite secondo la
priorità assegnata a ciascuno di essi (scheduling)
• CPU ben sfruttata
• Multiprogrammazione incapace di differenziare fra programmi che richiedono
un uso frequente delle periferiche, da quelli che richiedono l’utilizzo per
lunghi tempi della CPU (es. programmi di elaborazione matematica su dati
ricevuti inizialmente). Quando uno di questi programmi conquista la CPU non
la rilascia, bloccando gli altri programmi
26
Università di Pavia - corso di Fondamenti di Informatica
Sistemi operativi interattivi (time sharing)
27
Università di Pavia - corso di Fondamenti di Informatica
Sistemi operativi interattivi (time sharing)
ESEGUE
COMPILA
28
Università di Pavia - corso di Fondamenti di Informatica
Time sharing: Stati di un processo
29
Università di Pavia - corso di Fondamenti di Informatica
Time sharing: Stato dei programmi
30
Università di Pavia - corso di Fondamenti di Informatica
Time sharing: Stato dei programmi
Running
Blocked
S.O. Dedicato t
Running
Ready
Blocked
S.O. Multi programmato t
Running
Ready
Blocked
S.O. Time Sharing t
31
Università di Pavia - corso di Fondamenti di Informatica
Sistemi operativi real time
– controllo di processo
– gestione di allarme
32
Università di Pavia - corso di Fondamenti di Informatica
Sistemi operativi per sistemi concorrenti
33
Università di Pavia - corso di Fondamenti di Informatica
Sistemi operativi
• MAC OS (MAC)
• WINDOWS (PC)
• ANDROID (Dispositivi portatili)
• …
34
Università di Pavia - corso di Fondamenti di Informatica
La creazione di un programma compilato
– linking dei vari oggetti (alcuni dei quali forniti con il compilatore)
eseguibile
– eventuale debugging
35
Università di Pavia - corso di Fondamenti di Informatica
La creazione di un programma compilato
– pippo.o
– pippo
36
Università di Pavia - corso di Fondamenti di Informatica
I programmi interpretati
37
Università di Pavia - corso di Fondamenti di Informatica
Confronto fra Interpretazione e Compilazione
38
Università di Pavia - corso di Fondamenti di Informatica
Confronto fra Interpretazione e Compilazione
39
Università di Pavia - corso di Fondamenti di Informatica
Confronto fra Interpretazione e Compilazione
40
Università di Pavia - corso di Fondamenti di Informatica
Creazione del file sorgente: gli editor
41
Università di Pavia - corso di Fondamenti di Informatica
Fasi della compilazione
42
Università di Pavia - corso di Fondamenti di Informatica
ANALISI LESSICALE
ALFA 179,6505
BETA 32
DELTA 47
43
Università di Pavia - corso di Fondamenti di Informatica
ANALISI SINTATTICA
:=
+
ALFA
*
BETA
3.1415
DELTA
44
Università di Pavia - corso di Fondamenti di Informatica
ANALISI SEMANTICA
45
Università di Pavia - corso di Fondamenti di Informatica
GENERAZIONE del CODICE e OTTIMIZZAZIONE
Questo codice può essere ottimizzato con facilità e quindi può essere
tradotto nelle istruzioni della particolare CPU
46
Università di Pavia - corso di Fondamenti di Informatica
Assemblatori
• Come i compilatori traducono in codice eseguibile programmi scritti in un
linguaggio scritto ad alto livello, così gli ASSEMBLATORI traducono programmi
scritti nel linguaggio ASSEMBLY (di basso livello) proprio del processore specifico
• Mentre per i linguaggi ad alto livello ad ogni STATEMENT corrispondono più
istruzioni eseguibili da parte del microprocessore, per quelli a basso livello si ha
una corrispondenza UNO A UNO fra STATEMENT del file sorgente ed ISTRUZIONI
eseguibili
• Gli assemblatori sono tipicamente a due passate: nella prima viene effettuata
l’analisi delle istruzioni e creata la tavola dei simboli; la seconda passata produce il
codice in linguaggio macchina per il processore
• I MACROASSEMBLATORI ammettono MACROISTRUZIONI, istruzioni definite dal
programmatore a cui vengono fatte corrispondere più statement del linguaggio
ASSEMBLY
47
Università di Pavia - corso di Fondamenti di Informatica
Precompilatori - Metacompilatori
48
Università di Pavia - corso di Fondamenti di Informatica
Linker e Loader
• Il linker è un programma incaricato della fusione in un unico modulo
ESEGUIBILE di più moduli OGGETTO separatamente compilati
• Permette l’uso di LIBRERIE preconfezionate
• Permette di mettere insieme il lavoro svolto da più persone che collaborano allo
stesso progetto oppure di ricomporre un lavoro scomposto, in fase di progetto, in
più sottoparti
• Permette infine di mettere insieme moduli creati utilizzando linguaggi di
programmazione diversi 49
Università di Pavia - corso di Fondamenti di Informatica
Linker e Loader
Il loader:
• trasferisce in memoria il programma eseguibile
• carica nel Program Counter l’indirizzo della prima istruzione eseguibile
• Inizia l’esecuzione
50
Università di Pavia - corso di Fondamenti di Informatica
Debugger
51
Università di Pavia - corso di Fondamenti di Informatica
Linguaggi
– pessima leggibilità
– facilità di errori
52
Università di Pavia - corso di Fondamenti di Informatica
Linguaggi
53
Università di Pavia - corso di Fondamenti di Informatica
Linguaggi
54
Università di Pavia - corso di Fondamenti di Informatica
Scelta di un linguaggio
– facilità di apprendimento
– facilità d’uso
– efficienza
– software di supporto
– esistenza di librerie
55
Università di Pavia - corso di Fondamenti di Informatica
Linguaggi procedurali
56
Università di Pavia - corso di Fondamenti di Informatica
Linguaggi procedurali
– buona leggibilità
57
Università di Pavia - corso di Fondamenti di Informatica
Linguaggi di programmazione: I Sottoprogrammi
Sottoprogramma:
– Sequenza di istruzioni che vengono eseguite a seguito di una chiamata.
Vantaggi:
– Scrivere una sola volta un codice utilizzato più volte;
58
Università di Pavia - corso di Fondamenti di Informatica
Chiamata del Sottoprogramma
– Chiusi.
59
Università di Pavia - corso di Fondamenti di Informatica
Sottoprogramma Aperto
60
Università di Pavia - corso di Fondamenti di Informatica
Esempio di Macroistruzioni
Programma Sorgente Dopo le Macroespansioni
Chiamata
Macro 1
Chiamata Macrodefinizione 1
Macro 2
Chiamata
Macro 4 Macrodefinizione 2
Macrodefinizione 2 Macrodefinizione 3
Chiamata
Macro 3
Macrodefinizione 4
Macrodefinizione 3
Chiamata
Macro 4
Macrodefinizione 4
Macrodefinizione 1 Macrodefinizione 4
61
Università di Pavia - corso di Fondamenti di Informatica
Sottoprogramma Chiuso
62
Università di Pavia - corso di Fondamenti di Informatica
Gestione delle Chiamate
63
Università di Pavia - corso di Fondamenti di Informatica
Esempio di gestione delle chiamate 1/14
Inizio Main
M
a
i
n Situazione della Pila
Sottoprogramma 1
S1
Sottoprogramma 2
S2
S3 Sottoprogramma 3
64
Università di Pavia - corso di Fondamenti di Informatica
Esempio di gestione delle chiamate 2/14
M
a Chiamata S1
i
n Situazione della Pila
Sottoprogramma 1
S1 I1 I1
Sottoprogramma 2
S2
S3 Sottoprogramma 3
65
Università di Pavia - corso di Fondamenti di Informatica
Esempio di gestione delle chiamate 3/14
M
a
i
n Inizio S1 Situazione della Pila
Sottoprogramma 1
S1 I1
Sottoprogramma 2
S2
S3 Sottoprogramma 3
66
Università di Pavia - corso di Fondamenti di Informatica
Esempio di gestione delle chiamate 4/14
M
a
i
n Situazione della Pila
Sottoprogramma 1
S1 Chiamata S2 I1
I2
Sottoprogramma 2
S2 I2
S3 Sottoprogramma 3
67
Università di Pavia - corso di Fondamenti di Informatica
Esempio di gestione delle chiamate 5/14
M
a
i
n Situazione della Pila
Sottoprogramma 1
S1 I1
Inizio S2
I2
Sottoprogramma 2
S2
S3 Sottoprogramma 3
68
Università di Pavia - corso di Fondamenti di Informatica
Esempio di gestione delle chiamate 6/14
M
a
i
n Situazione della Pila
Sottoprogramma 1
S1 I1
I2
Sottoprogramma 2 Chiamata S3
S2 I3
S3 Sottoprogramma 3 I3
69
Università di Pavia - corso di Fondamenti di Informatica
Esempio di gestione delle chiamate 7/14
M
a
i
n Situazione della Pila
Sottoprogramma 1
S1 I1
I2
Sottoprogramma 2
S2 I3
Inizio S3
S3 Sottoprogramma 3
70
Università di Pavia - corso di Fondamenti di Informatica
Esempio di gestione delle chiamate 8/14
M
a
i
n Situazione della Pila
Sottoprogramma 1
S1 I1
I2
Sottoprogramma 2
S2 Salto a I3
S3 Sottoprogramma 3 Fine S3
M
a
i
n Situazione della Pila
Sottoprogramma 1
S1 I1
I2
Sottoprogramma 2
S2 Chiamata S3 I4
S3 Sottoprogramma 3
I4
L’indirizzo dell’istruzione successiva a quella che ha effettuato la
chiamata (I4), viene memorizzato nella pila
72
Università di Pavia - corso di Fondamenti di Informatica
Esempio di gestione delle chiamate 10/14
M
a
i
n Situazione della Pila
Sottoprogramma 1
S1 I1
I2
Sottoprogramma 2
S2 I4
Inizio S3
S3 Sottoprogramma 3
73
Università di Pavia - corso di Fondamenti di Informatica
Esempio di gestione delle chiamate 11/14
M
a
i
n Situazione della Pila
Sottoprogramma 1
S1 I1
I2
Sottoprogramma 2
S2
Salto a I4
S3 Sottoprogramma 3 Fine S3
M
a
i
n Situazione della Pila
Sottoprogramma 1
S1 Salto a I2 I1
Sottoprogramma 2
S2
Fine S2
S3 Sottoprogramma 3
M
a
i Salto a I1
n Situazione della Pila
Sottoprogramma 1
S1
Fine S1
Sottoprogramma 2
S2
S3 Sottoprogramma 3
M
a
i
n Fine Main Situazione della Pila
Sottoprogramma 1
S1
Sottoprogramma 2
S2
S3 Sottoprogramma 3
77
Università di Pavia - corso di Fondamenti di Informatica