Concetti introduttivi
Definizione di impianto informatico. Comunicazione ed elaborazione. Struttura generale di un impianto informatico: componenti + rete di interconnessione. Tipologie di interconnessione (bus, switch, multistage). Struttura dei componenti: unità funzionale + communication assist. Communication abstraction. Concetti di latency, bandwidth e costo di un'operazione.Costi di comunicazione: overhead, delay, contention, overlap. Frequenza di comunicazione e replicazione. Tendenze tecnologiche nell'evoluzione dei sistemi di elaborazione e delle richieste di performance. Tipi di parallelismo (bit level, instruction level, thread level).
Architetture dei sistemi di elaborazione
Tassonomia di Flynn. Architetture UMA basate su bus. Consistenza della cache. Split transaction bus. Architetture UMA basate su crossbar switch e reti Omega. Sistemi operativi per multiprocessori: requisiti e caratteristiche. Symmetric Multi-Processing (SMP). Concetto di scalable multiprocessing. Architetture NUMA. NC-NUMA. CC-NUMA: problemi di coerenza della cache e uso di directory. Directory memory-based, cache-based e gerarchiche. Meccanismi di scambio di messaggi: classificazione di paradigmi bloccanti e non-bloccanti. Esempi di protocolli per directory memory-based e cache-based. Cenni alle architetture COMA. Architetture basate su scambio di messaggi. Massively Parallel Processors.La parallelizzazione di un algoritmo sequenziale: discussione di un esempio. Reti di interconnessione: definizione, parametri caratteristici, topologie. Routing nelle reti ad alte prestazioni. Il report top500.
Input/Output ad alte prestazioni
High performance I/O: concetti base. Sistemi RAID: tipologie e caratterizzazione. Interfaccia SCSI. Esempi di canali di I/O e System Area Networks.
Cluster
Concetto di cluster e loro classificazione. Tecniche di load balancing.Esempi di cluster commerciali e open-source.
Architettura client/server e middleware
Architettura client-server: definizione e tipologie. Modelli Benson, Gartner group e Winsberg. Architetture 2-tier e 3-tier. Architetture Web-based. Middleware: tipologie (message oriented, TPM, RPC, ORB). Funzionamento RPC. Oggetti distribuiti: CORBA, DCOM, RMI. Problematiche di progetto di sistemi client-server.
Tecniche di base per sistemi distribuiti
Sincronizzazione dei clock e algoritmo di Lamport. Mutua esclusione distribuita. Elezione del coordinatore. Deadlock distribuiti. Distributed snapshot. Tecniche di replicazione.
Servizi software distribuiti
Concetto di name service. DNS: struttura e funzionamento. NetBIOS e NetBEUI. Distribuzione di task. Cenni al protocollo TELNET. Migrazione di processi e applicazioni. Algoritmi sender-initiated, receiver-initiated, con coordinatore. Condivisione di file. Cenni al protocollo FTP. File system di rete e distribuiti. Semantiche di condivisione dei file. NFS: architettura e meccanismo di funzionamento. Protocollo SMB. Protocolli di supporto alla gestione di reti: DHCP, SNMP. Condivisione utenti: NIS. Servizi di directory: X.500, LDAP, cenni ad Active Directory. Servizi di posta elettronica: protocolli SMTP e POP3, standard MIME. Servizio Web: procotollo HTTP. Architetture per applicazioni web: JEE e web services.
Sicurezza degli impianti informatici
Crittografia: principi e requisiti. Crittografia simmetrica (a chiave privata) e asimmetrica (a chiave pubblica). Firma digitale e certificazione delle chiavi pubbliche. Il problema dell'autenticazione. Schemi di autenticazione ed esempi di attacchi. Esempi di protocolli sicuri. Firewall: tipologie e classificazione. Esempi di attacchi informatici e relative contromisure.
Affidabilità degli impianti informatici
Nozioni generali di affidabilità. Affidabilità hardware e software. Manutenibilità.