Mobile App and Cloud

Laurea in Ingegneria delle Telecomunicazioni

Docenti

  • Primo modulo: Ing. Nicola Tonellotto (webpage)
  • Secondo modulo: Ing. Giovanni Nardini

Contenuti del corso

Nel primo modulo si presenta una trattazione del sistema calcolatore nel suo complesso, si introduce il repertorio delle istruzioni e i vari sottosistemi: processore, memoria e input/output. Durante le lezioni saranno discussi esempi concreti dei vari sottosistemi, analizzando le architettura x86 (standard per calcolatori processori general-purpose) e ARM (standard per calcolatori embedded).

Nel secondo modulo si introduce lo standard de-facto dei sistemi operativi moderni (Unix) dal punto di vista pratico. Verranno illustrati le basi del funzionamento di un sistema Unix e i comandi per interagire con il sistema e amministrarlo tramite la linea di comando. Verranno inoltre introdotti i principi della programmazione in ambiente Unix, con l'obiettivo di realizzare programmi che permettano di gestire file, processi, comunicazioni tra processi e tra piattaforme diverse tramite la rete.

Esercitazioni

Per svolgere le esercitazioni del secondo modulo è necessario disporre di una macchina dotata di un sistema operativo Unix o Unix-like (MacOS, Linux, ...)
In alternativa (e in ogni caso, raccomandato), è possibile utilizzare una macchina virtuale da eseguire sul proprio PC. Per farlo, è necessario:

  1. scaricare e installare sul proprio PC un software di virtualizzazione, per esempio Oracle VM Virtualbox;
  2. scaricare questa macchina virtuale pronta all'uso (contiene un'installazione di Debian 10);
  3. importare la macchina virtuale nel software di virtualizzazione. Per esempio, in Virtualbox, cliccare su 'File' -> 'Import Appliance...' e scegliere il file scaricato al punto 2 (file con estensione .ova).

Materiale

Le slide del secondo modulo verrano rese disponibili dal docente sul canale Microsoft Teams del corso.
Le lezioni saranno registrate e rese anch'esse disponibili su Teams dopo le lezioni stesse.

Testo di riferimento

Per il primo modulo:
  • David A. Patterson, John L. Hennessy - Struttura e progetto dei calcolatori - Zanichelli (quarta edizione italiana)
Per il secondo modulo:
  • W. Richard Stevens, Stephen A. Rago - Advanced Programming in the UNIX environment - Addison-Wesley (terza edizione inglese)

Modalità d'esame

L'esame e' composto da una prova orale, così strutturata:

  • Una parte riguardante la programmazione in ambiente Unix, da discutere con la commissione d’esame;
  • Una parte riguardante le architetture degli elaboratori, da discutere con la commissione d’esame.