Sistemi di Calcolo

Corso di Laurea in Ingegneria Informatica e Automatica - A.A. 2017-2018

HomePage | Avvisi | Diario lezioni | Programma | Materiale didattico | Esami | Forum | Login

Informazioni generali 2015-2016


More computing sins are committed in the name of efficiency (without necessarily achieving it)
than any other single reason - including blind stupidity.
-- Bill Wulf
Il corso è diviso in due moduli erogati durante tutto l'anno accademico. Le lezioni del primo modulo si tengono nel periodo compreso tra il 28 settembre e il 22 dicembre 2015. Il secondo modulo sarà erogato nel periodo compreso tra marzo e maggio 2016.

Contesto e obiettivi

I moderni sistemi di calcolo forniscono una grande potenza computazionale frutto di una notevole complessità architetturale. Sfruttare anche in parte questa potenza è una sfida che richiede una conoscenza interna dell'hardware, una comprensione degli algoritmi alla base delle computazioni, e una buona dose di creatività per ottenere implementazioni che utilizzino in modo ottimale le risorse di calcolo disponibili.

Il corso fornisce una panoramica dal punto di vista del programmatore su come i sistemi di calcolo eseguono programmi, memorizzano informazioni e comunicano fra loro, discutendo aspetti come prestazioni, portabilità e robustezza. Nel primo modulo del corso, gli studenti vengono introdotti ai princìpi di funzionamento di base di un calcolatore moderno, mostrando come programmare sfruttando i servizi offerti dai sistemi operativi, come i compilatori traducono codice C in linguaggio assembly e come scrivere programmi che svolgono attività concorrenti. Il secondo modulo del corso affronta la programmazione di sistemi di calcolo su più larga scala, sfruttando le infrastrutture e le astrazioni offerte dai sistemi operativi e dalle reti di calcolatori, con particolare enfasi sui princìpi generali, fra cui stratificazione, modularizzazione, virtualizzazione e sicurezza.


Primo modulo (SC1): programmazione single-threaded



Secondo modulo (SC2): programmazione multi-threaded


Prerequisiti

Nozioni di base sul modello di macchina di Von Neumann, algebra booleana, rappresentazione dei numeri interi con e senza segno, rappresentazione dei numeri in virgola mobile, conoscenza del linguaggio C (in particolar modo i tipi array, i puntatori, gli operatori */& e l'aritmetica dei puntatori), uso del compilatore gcc.

[ A.A. 2014-2015 ]
Valid XHTML 1.0 Transitional :: Valid CSS :: Powered by WikkaWiki
Page was generated in 0.0271 seconds