Sistemi di Elaborazione

6 CFU - Laurea in Ingegneria Elettronica

Contenuti

L'insegnamento si propone di fornire le conoscenze sul funzionamento dei sistemi operativi (con particolare riferimento ai sistemi Unix) e gli strumenti per realizzare programmi che ne sfruttino le potenzialità. Verranno affrontate le tematiche riguardanti: la programmazione concorrente in ambito multi-processo e multi-thread, la schedulazione di processi e thread, l'architettura e la gestione del file system, la programmazione distribuita tramite socket. Verranno inoltre introdotti i principi delle reti di calcolatori, con riferimento all'architettura TCP/IP e i maggiori protocolli che la caratterizzano (dal livello di collegamento al livello di trasporto). Verranno trattate anche le basi della sicurezza nelle reti informatiche. Il corso prevede ore di esercitazione in cui gli/le studenti/studentesse mettono in pratica le conoscenza acquisite riguardanti la programmazione in ambiente Unix.

Testi di riferimento

  • A. Tanenbaum, H. Bos - I moderni sistemi operativi - Pearson (quinta edizione)
  • A. Tanenbaum, N. Feaster, D. Wetherall - Reti di calcolatori - Pearson (sesta edizione)

Materiale

Le slide verrano rese disponibili dal docente sul canale Microsoft Teams del corso. Si accede al team tramite Agenda Didattica, ricercando il nome dell'insegnamento e iscrivendosi allo stesso.

Modalità d'esame

L'esame consiste nella realizzazione di un progetto individuale sulla programmazione in ambiente Unix e una prova orale.

Strumenti

Per svolgere le esercitazioni e il progetto è necessario disporre di una macchina dotata di un sistema operativo Unix o Unix-like (MacOS, Linux, ...)
È caldamente raccomandato utilizzare la macchina virtuale contenente un'installazione di Debian 12 e pre-configurata dal docente. Per scaricare e installare la macchina virtuale, seguire le istruzioni sul canale Teams del corso.