Scheda programma d'esame
MOBILE APP E CLOUD
NICOLA TONELLOTTO
Academic year2021/22
CourseTELECOMMUNICATIONS ENGINEERING
Code903II
Credits6
PeriodSemester 1 & 2
LanguageItalian

ModulesAreaTypeHoursTeacher(s)
LABORATORIO DI MOBILE APP E CLOUDNNLABORATORI30
GIOVANNI NARDINI unimap
MOBILE APP E CLOUDING-INF/05LEZIONI30
NICOLA TONELLOTTO unimap
Obiettivi di apprendimento
Learning outcomes
Conoscenze

L'insegnamento si propone di approfondire l'analisi degli aspetti architetturali dei calcolatori. Inoltre sono presentati e discussi alcuni concetti di programmazione di sistema, con particolare riferimento alle primitive di sistema di ambienti Unix.

Ci si aspetta che lo studente che completa l'insegnamento con successo abbia acquisito: (i) conoscenza dei meccanismi funzionali implementati all'interno dei sistemi di elaborazione, quali processori e memorie; e (ii) competenza nella programmazione e nell'uso delle librerie di sistema dei sistemi operativi basati su Unix.

Knowledge

The course focuses on the detailed analysis of the core functionalities of computing systems. Moreover, the course includes some system programming concepts, with special focus on the Unix system libraries.

The student who passes successfully the course is expected to know: (i) the functional mechanisms implemented inside the computing systems, such as processors and memories; and (ii) a good knowledge of system programming using primitives and system calls of the Unix OS.

Modalità di verifica delle conoscenze

Nella prova d'esame, lo studente deve essere in grado di illustrare con chiarezza e competenza gli aspetti architetturali di un sistema di elaborazione e delle primitive di sistema operativo. Sarà inoltre valutata la capacità dello studente di illustrare gli argomenti presentati durante l'insegnamento, con chiarezza ed utilizzando teminologie appropriate.

 

Assessment criteria of knowledge

In the final test, the student must be able to illustrate clearly and soundly the different architectural elements of a computing system and the OS system calls. Moreover, part of the evaluation will include the assessment of the student's skills to discuss the course topics with domain knowledge

Capacità

Ci si aspetta che lo studente che completa il corso di insegnamento con successo abbia acquisito capacità di utilizzare con efficienza e profitto le conoscenze e l'adeguata terminologia per discutere di sistemi di elaborazione e saperne analizzare/sfruttare le caratteristiche in fase di progetto di applicazioni e scelta dei componenti di nuovi sistemi hardware.

Skills

The student who passes successfully the course is expected to gain competence on the effective and efficient use of the acquired knowledge to discuss about computer architecture and to analyse/exploit their characteristics in the design of software applications and hardware components.

Modalità di verifica delle capacità

Durante le esercitazioni in aula saranno assegnati numerosi esercizi di programmazione di complessità crescente, che lo studente dovrà essere in grado di svolgere sotto la guida dei docenti. 

Assessment criteria of skills

During the practical sessions, many system programming exercises with increasing complexity will be presented, discussed and solved by the student under the guidance of the teachers.

Comportamenti

Si porrà l'accento sulla necessità di accuratezza e precisione nella presentazione e discussione delle architetture dei sistemi di elaborazione. Si sensibilizzeranno gli studenti sulle problematiche connesse con la progettazione di sistemi operativi, anche in riferimento all'evoluzione delle relative metodologie di progetto e del loro supporto a livello di librerie di sistema.

 

Behaviors

Special attention will be devoted to accuracy and precision in the presentation and discussion of computing system architectures. Awareness will be raised on the the problems linked to the design of the operating systems, with reference to the evolution of the design approaches and the support of system libraries.

Modalità di verifica dei comportamenti

Durante le esercitazioni in aula sarà valutato il grado di accuratezza e precisione delle attività svolte.

Assessment criteria of behaviors

During the practical sessions, precision and accuracy level of the activities will be assessed.

Prerequisiti (conoscenze iniziali)

Programmazione in C/C++, concetti di base di sistemi operativi.

Prerequisites

C/C++ programming, base concepts in operating systems.

Corequisiti

Nessuno

Co-requisites

None

Prerequisiti per studi successivi

Nessuno

Prerequisites for further study

None

Indicazioni metodologiche
  • lezioni frontali, con largo ausilio di diapositive.
  • esercitazioni in aula, mediante utilizzo di computer portatili personali degli studenti.
  • le interazioni col docente si svolgono nell'orario di ricevimento, e mediante uso della posta elettronica.
Teaching methods

None

Programma (contenuti dell'insegnamento)
  • 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
  • Architettura dei sistemi Unix
  • Utilizzo della shell di Unix
  • Primitive di sistema e librerie
  • Primitive per unbuffered I/O
  • I/O standard library
  • Primitive per interagire con il File System
  • Primitive per la gestione dei processi
  • Comunicazioni inter-processo
  • Comunicazioni inter-piattaforma tramite socket
Syllabus
  • Abstraction levels
  • Computer performance
  • ISA and MIPS assembler
  • Computer arithmetic
  • Hadware schemes for sums and multiplications
  • Floating point
  • Block schema of a single-cycle CPU
  • Pipeline and performance
  • Block schema of a pipelined CPU
  • Interrupts and exceptions
  • Memory hierarchies
  • Cache memories
  • Virtual memories
  • Unix architecture
  • Use of the Unix shell
  • System and library calls
  • System calls for unbuffered I/O
  • I/O standard library
  • System calls to interact with the File System
  • System calls for process management
  • Inter-process communications
  • Inter-platform communications via socket programming
Bibliografia e materiale didattico
  • 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)
Bibliography
  • Computer Organization and Design MIPS Edition: The Hardware/Software Interface, David A. Patterson e John L. Hennessy
  • Advanced Programming in the UNIX environment, W. Richard Stevens and Stephen A. Rago
Indicazioni per non frequentanti

Nessuna.

Non-attending students info

None

Modalità d'esame

Prova finale orale

Assessment methods

Final oral examination

Stage e tirocini

Nessuno

Work placement

None

Altri riferimenti web

Sito web dei docenti: http://tonellotto.github.io - http://www.iet.unipi.it/g.nardini/index.html

Additional web pages

Teachers web site: http://tonellotto.github.io - http://www.iet.unipi.it/g.nardini/index.html

Note

Nessuna

Notes

None

Updated: 31/08/2021 15:43