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
- Corso di laurea in Ingegneria delle Telecomunicazioni dell' Università di Pisa
- Responsabile: Nicola Tonellotto
- Codocente: Giovanni Nardini
- CFU: 6
- Periodo: Primo semestre
- Lingua: Italiano
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
-
Struttura e progetto dei calcolatori
di David A. Patterson e John L. Hennessy, edito da Zanichelli (quarta edizione italiana) -
Advanced Programming in the UNIX environment
di W. Richard Stevens e Stephen A. Rago, edito da Addison-Wesley (terza edizione inglese)
Programma delle lezioni
Vedi qui.