Sei sulla pagina 1di 42

Impianti informatici:

introduzione e concetti di base


Lezione sostitutiva di didattica in presenza
Impianti Informatici
P. Baroni
Scopi del corso
• Fornire nozioni fondamentali sull'architettura ed il
funzionamento degli impianti informatici (computing
infrastructures in inglese)
• Enfasi sulla molteplicità
• Concetti generali applicabili in modo simile su scale
molto diverse (dall'architettura interna di un calcolatore
a sistemi distribuiti su scala mondiale)
• Sguardo panoramico ed esempi ma impossibile
esaustività rispetto ad un mondo in continua evoluzione
• Capacità di lettura, comprensione e valutazione di
documentazione tecnica specifica anche approfondita nel
settore
Contenuti del corso
• Organizzazione in "capitoli" che coprono
ciascuno un'area tematica dopo
un'introduzione generale
• Ogni capitolo comprende sia la presentazione di
concetti e principi generali sia l'esemplificazione
riferita a casi concreti
Prerequisiti del corso
• I prerequisiti fondamentali sono rappresentati
da Sistemi Operativi e Reti di Telecomunicazione
– Praticamente tutti i contenuti di SO saranno riusati
come basi e sono dati per acquisiti
– Tutti i contenuti fondamentali di Reti di TLC saranno
riusati come basi e sono dati per acquisiti
• Aver seguito Calcolatori elettronici può favorire
nella comprensione di alcuni passaggi specifici
nella prima parte ma:
– Si tratta di pochi passaggi, non cruciali
– Se servono chiarimenti basta chiederli
Status del corso
• A differenza di Sistemi Operativi il corso di
Impianti Informatici non è un corso "standard"
• Il nome (e il suo corrispondente inglese) non
hanno interpretazione univoca e corsi con
questo nome, oltre ad avere una certa varietà di
contenuti, non sono così diffusi
• Programma frutto di un'elaborazione del
docente che ha lo scopo di combinare alcuni
"fili conduttori" generali con una panoramica su
tecnologie e sistemi esistenti
Motivazioni del corso
• Gli impianti informatici sono ovunque
• Un ingegnere informatico (e non solo) dovrebbe:
– sapere come le singole entità hardware e software
possono integrarsi in sistemi "complessi" (non monolitici)
– saper capire ed analizzare, almeno ad alto livello, sistemi
"complessi" di diversi tipi e con diverse strutture,
confrontandone vantaggi e svantaggi
• Ad un ingegnere informatico (e non solo) può
capitare di:
– dover analizzare situazioni tecniche (p.e. problemi di
prestazioni) di un sistema "complesso"
– progettare e amministrare (in tutto o in parte) un
impianto informatico
Cosa viene dopo ?
• Il corso di Amministrazione di Sistema nella
laurea magistrale in Ingegneria Informatica
prosegue e completa a livello più specialistico la
linea di formazione su argomenti "sistemistici"
• Alcuni argomenti presentati in modo iniziale e
sintetico nel corso di Impianti Informatici
vengono ampliati e approfonditi nel corso di
Amministrazione di Sistema
Materiale
• Il corso cerca di offrire una sintesi ragionata
che combina una molteplicità di testi e fonti
• Nessun singolo testo copre i contenuti del
corso e la sua linea
• Riferimenti bibliografici su ogni argomento
disponibili sul sito del corso
• Lucidi e video delle lezioni
Veniamo al dunque
• Chiariti gli aspetti preliminari, si tratta di entrare
nel merito
• La prima domanda che può sorgere è: cos'è un
impianto informatico ?
• Chi volesse cercare una risposta sintetica e chiara
nella prima pagina di un libro testo si scontrerà
col fatto che non esistono veri e propri libri di
testo sull'argomento
Il filo conduttore: la molteplicità
• Il "salto di qualità" da Sistemi Operativi ad
Impianti Informatici consiste nel fatto che non si
trattano più sistemi (visti come) monolitici ma
sistemi dotati di molteplicità
• Molte cose collegate insieme
• Inevitabilmente il passaggio dal "mono" al
"multi" ha vantaggi e svantaggi
• Perché avere molteplicità ?
Le ragioni della molteplicità
• Molteplicità intrinseca
– C'è una molteplicità "nel mondo reale" che "impone"
una molteplicità degli strumenti informatici
• Molteplicità di persone con i loro calcolatori
personali
• Molteplicità di sedi di un'organizzazione con
risorse di calcolo in ogni sede
• Molteplicità di oggetti dotati di capacità di
elaborazione e che devono interagire
Le ragioni della molteplicità
• Molteplicità preferita
– Si sceglie una soluzione dotata di molteplicità perché
offre vantaggi rispetto ad una soluzione "mono"
• I vantaggi offerti dalla soluzione dotata di
molteplicità dovranno superare gli svantaggi
I vantaggi della molteplicità
• Moltiplicazione di capacità
– N dischi hanno N volte la capacità di un disco singolo
–…
• Moltiplicazione di prestazioni grazie al
parallelismo
– N processori possono moltiplicare per N la velocità
complessiva di elaborazione
– N dischi possono moltiplicare per N la velocità
complessiva di trasferimento dati
– N schede di rete possono moltiplicare per N la
velocità complessiva di download
I vantaggi della molteplicità
• Specializzazione
– Posso avere a disposizione componenti diversi
ciascuno con caratteristiche (più) adatte a compiti
specifici e usarli al meglio rispetto alle attività che
capiterà di svolgere
• Scalabilità
– Progetto, realizzazione e aggiornamento del sistema
modulari e progressivi
– A fronte di variazioni delle esigenze (in particolare del
carico) si possono aggiungere/togliere componenti
mantenendo le prestazioni desiderate
I vantaggi della molteplicità
• Tolleranza ai guasti (fault tolerance)
– Se ho più componenti è possibile che il guasto di uno
di essi non comporti l'interruzione del servizio
– Capacità di tollerare i guasti con o senza
peggioramento di prestazioni a seconda di come è
strutturato il sistema
– Impossibile avere fault tolerance nel caso mono
– La fault tolerance è una proprietà non meno cruciale
delle prestazioni per qualunque sistema "non
domestico"
Gli svantaggi della molteplicità
• La molteplicità comporta maggiori costi
• La molteplicità comporta maggior complessità
– dal punto di vista "umano" (progetto,
programmazione, gestione)
– dal punto di vista dei meccanismi di funzionamento
interno
Gli svantaggi della molteplicità
• Difficoltà e costi di configurazione e
amministrazione
• Possibili criticità nell'architettura del sistema
• Interdipendenze e ruoli critici di alcuni
componenti possono dar luogo a peggioramenti
sia delle prestazioni sia della fault tolerance
Due casi da evitare
• Bottleneck (collo di bottiglia)
– Un componente le cui prestazioni limitano quelle
dell'intero sistema
– Se la capacità (ristretta) del bottleneck viene
saturata il resto del sistema viene rallentato e la sua
capacità non sfruttata
• Single Point of Failure (SPOF)
– Un componente il cui guasto determina il mancato
funzionamento dell'intero sistema
Due casi da non confondere
• Bottleneck e SPOF sono concetti distinti che non
vanno confusi
• Spesso in un'architettura "fatta male" lo stesso
componente è sia bottleneck che SPOF
• … ma possono esistere bottleneck che non sono
SPOF e SPOF che non sono bottleneck
Gli svantaggi della molteplicità
• Funzionamento interno più complesso
– Overhead (costi prestazionali aggiuntivi) di vario tipo
legati alla suddivisione del carico ed alla
comunicazione tra i componenti
– Costi di sincronizzazione tra attività svolte su
componenti diversi
– Costi per la gestione della coerenza tra copie
multiple di uno stesso dato
Una definizione generale
di impianto informatico

• A collection of processing elements that


communicate and cooperate to

solve a (large) set of offer a (large) set of


(large) problems (large) services to a
(large) set of users

fast and reliably


Una definizione generale
di impianto informatico
Primo aspetto: … di elementi dotati
la molteplicità … di capacità di elaborazione
• A collection of processing elements that
che comunicano e
communicate and cooperate to lavorano insieme per
due tipi di carico
offrire servizi
risolvere problemi
solve a (large) set of offer a (large) set of
(large) problems (large) services to a
(large) set of users

fast and reliably


con buone prestazioni e in modo affidabile
Communication vs. computation
• All'interno dell'impianto sono identificate due
tipologie di attività principali
• L'elaborazione (computation, processing) che
corrisponde alle attività percepite dall'utente
come direttamente utili ai suoi scopi
• La comunicazione (communication) che spesso
corrisponde ad attività di supporto interpretabili
come overhead da ridurre il più possibile
• Communication is slower than computation
Communication vs. computation
• Ma cosa distingue la comunicazione
dall'elaborazione ?
• Data un'attività in base a cosa la si classifica
come comunicazione piuttosto che
elaborazione ?
Communication vs. computation
• Si possono distinguere dal punto di vista
architetturale ?
Processing architecture Communication architecture

Livello utente Livello utente

Primitive di Primitive di
elaborazione (API) comunicazione (API)

Livello fisico Livello fisico


Communication vs. computation
• Si possono distinguere dal punto di vista del
meccanismo di funzionamento ?
Prossima
istruzione
Utente dà Si aspetta un
Terminazione
un'istruzione risultato

Governato da regole del linguaggio


Prossimo
messaggio
Utente invia Si aspetta una Chiusura
un messaggio risposta comunicazione

Governato da regole del protocollo


Communication vs. computation
• La stessa cosa può essere vista in modi diversi
• Un'istruzione per l'accesso alla memoria può
essere vista come istruzione (processing)
• Ma "guardando dentro" può anche essere
analizzata come un'interazione tra processore e
memoria tramite il bus (communication)
• Ma "guardando dentro" gli atti che compongono
le comunicazioni possono essere visti come una
serie di letture e scritture su entità varie
(processing)
• Ma "guardando dentro" …
Communication vs. computation
• Non esiste una distinzione assoluta tra i due
concetti
• Si somigliano molto e spesso la "stessa cosa"
può essere descritta in entrambi i modi
• Eppure questa distinzione in pratica si usa
molto …
• … e le "differenze" tra i due concetti sono
importanti nel progetto e nella valutazione dei
sistemi
Un passo indietro
• Per discutere in che senso comunicazione ed
elaborazione sono differenti bisogna fare un
passo indietro e ragionare sulla struttura
astratta di un impianto informatico
• Il punto di partenza è che ci sarà una
molteplicità di componenti che devono essere
connessi tra loro per "lavorare insieme"
Un'architettura (molto) astratta
Componente Componente Componente
1 2 … n

Interconnect

• Dal punto di vista logico si possono identificare


tre famiglie di interconnect: bus, switch,
multistage
Famiglie di interconnect
• Bus: mezzo broadcast condiviso
• Switch: griglia di collegamenti diretti tra i
componenti
• Multistage: struttura arbitraria con
collegamenti indiretti, ha una topologia e
richiede instradamento
Dentro i componenti
• I componenti all'interno di un impianto
informatico possono essere diversissimi ma
hanno una cosa in comune …
• … la necessità di comunicare con gli altri
capendosi reciprocamente
• Ne segue che ogni componente può essere
concettualmente suddiviso in due parti:
– una specifica del ruolo del componente (Functional
Unit o Unità Funzionale)
– una dedicata alla comunicazione (Communication
Assist o Assistente alla Comunicazione)
Un'architettura (solo un po' meno) astratta

FU 1 FU 2 FU n

CA 1 CA 2 CA n

Interconnect

• Questo schema è applicabile in modo uniforme


ad oggetti molto diversi e su scale molto diverse
Scelte di modellazione
• Cosa sono le Unità Funzionali e cosa
l'Interconnect dipende da cosa si sta
rappresentando
• Ogni scatola potrebbe essere …
– un singolo processore in un'architettura
multiprocessore
– un singolo calcolatore (o altro oggetto connesso)
in una rete locale
– l'intera infrastruttura informatica di una sede
aziendale connessa ad altre sedi aziendali a livello
geografico
Una distinzione modellistica
• Dato il modello architetturale astratto è
possibile chiamare …
• Elaborazione (Computation) tutto ciò che
avviene all'interno delle Unità Funzionali
• Comunicazione (Communication) tutto ciò che
avviene "fuori" dalle Unità Funzionali tramite i
Communication Assist e l'Interconnect
Una distinzione modellistica
Computation

FU 1 FU 2 FU n

CA 1 CA 2 CA n

Interconnect
Communication
Una distinzione convenzionale
ma importante
• La "stessa cosa" può trovarsi al di sopra o al di
sotto della linea di separazione a seconda di
cosa si sta modellando e come
• In ogni caso se il modello è "fatto bene" ci sono
alcune proprietà importanti che distinguono
elaborazione e comunicazione
Communication vs. computation
• All'interno di un certo modello …
• L'elaborazione (ciò che avviene nelle FU) è
percepita come l'attività direttamente utile
all'utente
• La comunicazione (ciò che avviene fuori dalle
FU) è percepita come un costo aggiuntivo
necessario ma da ridurre il più possibile
• Dal punto di vista impiantistico, ciò che avviene
nelle FU è "dato per scontato", ciò che avviene
fuori dalle FU è ciò su cui si ragiona
Communication vs. computation
• All'interno di un certo modello …
• L'elaborazione è più veloce della comunicazione
• Communication is slower than computation
• Questo "slogan" non riguarda le proprietà
intrinseche delle tecnologie delle
telecomunicazioni rispetto a quelle informatiche
ma deriva dalle assunzioni sulla costruzione del
modello (in un contesto informatico)
Communication abstraction
• I CA all'interno di un impianto forniranno alle
FU che li utilizzano una certa visione
(communication abstraction) delle attività di
comunicazione possibili e di come si svolgono
• Quali sono gli "ingredienti" di una
communication abstraction ?
Ingredienti di una
communication abstraction
• Specifica di quali atti comunicativi sono
possibili e con quali vincoli
• Specifica di come denominare gli oggetti di
questi atti comunicativi e di come si stabilisce
la corrispondenza tra nomi simbolici e oggetti
fisici
• Specifica di quali garanzie di sequenzialità si
hanno sia all'interno dei propri atti
comunicativi sia tra i propri e quelli degli altri
Obiettivi in conflitto
• Le esigenze di semplicità concettuale e di
verificabilità di correttezza spingono verso
vincoli stringenti sulla sequenzialità degli atti
comunicativi
• Le esigenze di maggiori prestazioni spingono
verso il superamento degli stessi vincoli

Potrebbero piacerti anche