Mobile App and Cloud

Anno Accademico 2020/21


  • Due to the COVID-19 national emergency, the lectures will be provided in online mode only using Microsoft Teams.
  • The code to access the online classrooms is available here.

Informazioni generali

Orario delle lezioni

  • Mercoledì: 8:30 – 10:45 (Online)
  • Venerdì: 8:30 – 11:45 (Online)

Ricevimento studenti

  • Dopo le lezioni o tramite appuntamento email

Obiettivi formativi

Gli obiettivi formativi del corso sono di fornire conoscenze legate all’architettura degli elaboratori con un approccio sistemistico. Il corso è concepito in due moduli. 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) con un taglio pratico. Si illustra come i vari sottosistemi visti nel primo modulo sono resi disponibili e usabili attraverso astrazioni di più alto livello tipiche del sistema operativo stesso. Questo secondo modulo include un corso pratico di programmazione su piattaforma UNIX.

Prerequisiti

  • Conoscenza di base del C/C++
  • Strutture dati e algoritmi di base
  • Concetti di sistemi operativi

Argomenti di massima

  • Livelli di astrazione
  • Prestazioni di un calcolatore
  • ISA e assembler MIPS
  • Aritmetica degli elaboratori
  • Schemi per sommatori e moltiplicatori hardware
  • Floating point
  • Schema a blocchi di CPU a ciclo singolo
  • Pipeline e prestazioni
  • Schema a blocchi di CPU in pipeline
  • Eccezioni e interruzioni
  • Gerarchie di memoria
  • Memorie cache
  • Memoria virtuale
  • Strutturazione di Unix
  • System/Library call
  • User/System/CPU time e misurazioni di tempo
  • Processi
  • Unbuffered I/O
  • Anatomia dello Unix File System
  • Layout di memoria in Unix
  • Comunicazioni inter-processo

Modalità di esame

Prova orale, composta da una prima parte sul modulo “Programmazione Avanzata in Ambiente UNIX” da compilare in forma scritta e da discutere con la commissione d’esame, seguita da una seconda parte sul modulo “Architetture degli Elaboratori” da discutere con la commissione d’esame.

Libri di testo

Programma delle lezioni

Vedi qui.

Materiale didattico

  • Architetture degli Elaboratori