Course Syllabus
Obiettivi
Alla
fine del corso lo studente conoscerà gli elementi base dell'architettura e
delle componenti tecniche di un sistema operativo, nonché architettura e
protocolli fondamentali di una rete TCP/IP, fino al livello di trasporto. Sarà
in grado di comprendere e sviluppare elementari funzioni software utilizzabili
nell'ambito del kernel di un sistema operativo.
Contenuti sintetici
Architettura
di un sistema operativo, Processi e Thread, Scheduling e Sincronizzazione,
Gerarchia di memoria e Memoria Virtuale, File System, Livello di trasporto,
Livello di rete, LAN, Wireless LAN, Elementi di base del livello fisico.
Programma esteso
Sistemi operativi
1: Architettura di un sistema operativo:
- funzioni del sistema operativo
- struttura del sistema operativo
- chiamate di sistema
2: Processi e Thread:
- processi e loro gestione
- comunicazione fra processi
- thread e programmazione multithreading
3: Scheduling e Sincronizzazione:
- algoritmi di scheduling della CPU
- sezioni critiche e sincronizzazione
- semafori e problemi di sincronizzazione
4: Gerarchia di memoria e Memoria Virtuale:
- gerarchia di memoria
- gestione della memoria centrale e paginazione
- memoria virtuale
5: File System:
- file e relativi attributi
- modelli di organizzazione del file system
- allocazione e gestione sulla memoria secondaria
Reti
6: Livello di trasporto:
- funzioni del livello di
trasporto
- protocollo UDP
- protocollo TCP
- controllo della congestione
7: Livello di rete:
- funzioni del livello di rete
- indirizzamento IP
- algoritmi di instradamento
8: LAN, Wireless LAN, Elementi di livello fisico:
- funzioni del livello di collegamento
- CSMA/CD e LAN Ethernet
- problematiche di comunicazione radio
- WLAN 802.11
Prerequisiti
Conoscenze
informatiche acquiste nei corsi di Architettura degli Elaboratori, Programmazione
1 e Programmazione 2
Modalità didattica
Lezioni in aula. Esercitazioni in e-learning mediante esercizi, test di autovalutazione e tutoraggio on-line
Il corso verrà erogato in lingua italiana.
Materiale didattico
A. Silberschatz,
P. Galvin, G. Gagne, "Sistemi Operativi - concetti ed esempi", 10ma Edizione, Pearson,
ISBN: 978-88-9190-455-3
J. Kurose, K. Ross, "Reti di Calcolatori e Internet", 7ma Edizione, Pearson, ISBN: 978-88-9190-254-2
Lezioni, esercizi ed altri materiali disponibili on-line
Periodo di erogazione dell'insegnamento
Secondo anno, primo semestre
Modalità di verifica del profitto e valutazione
La verifica dell'apprendimento comprende una prova scritta, con la possibilità di prove intermedie parziali (in itinere).
Le prove in itinere sono due e si tengono a metà ed alla fine del corso. E' necessario superarle entrambe per passare l'esame. Nel caso in cui una delle due prove in itinere non sia stata superata o non sia stata sostenuta, è possibile recuperarla nella prima sessione d'esame, purchè l'altra prova sia stata positivamente superata. Il superamento di una sola delle due prove in itinere non dà luogo ad alcun bonus per le successive prove d’esame completo.
Le prove comprendono sia domande a risposta chiusa sia domande a risposta aperta, in cui viene chiesta una argomentazione ragionata relativa ad uno degli argomenti del corso. Le domande a risposta aperta vengono valutate solamente se lo studente ha risposto correttamente ad almeno il 50% delle domande a risposta chiusa. Solo la seconda delle prove in itinere prevede domande a risposta aperta.
La seguente tabella riporta la composizione delle prove d'esame, con la ripartizione delle domande nelle due parti del corso (Reti e Sistemi Operativi)
Prova |
Domande chiuse di Reti |
Domande chiuse di SO |
Domande aperte di Reti |
Domande aperte di SO |
I in itinere |
8 |
6 |
- |
- |
II in itinere |
5 |
7 |
1 |
1 |
Esame completo |
8 |
8 |
1 |
1 |
Orario di ricevimento
Prof. Braione: su appuntamento via email
Prof. Dominoni: su appuntamento via email
Prof. Ferretti:Aims
The student shall learn the basic architectural elements and
technical components of a modern Operating System, as well as the architecture
and protocols employed in a TCP/IP network, up to the transport layer. The
student will be able to understand and develop simple software functions which
can be part of an Operating System kernel.
Contents
Architecture
of an Operating System, Threads and Processes, Scheduling and Synchronization,
Memory Hierarchy, Virtual Memory, File System, Transport Layer, Network Layer, LAN, Wireless
LAN, Physical Layer basics.
Detailed program
Operating Systems
1: The architecture of an Operating System:
- functions of the Operating System
- structure of the Operating System
- system calls
2: Processes and Threads:
- processes and their management
- interprocess communication
- threads and multithreading programming
3: Scheduling and Synchronization:
- CPU scheduling algorithms
- critical sections and synchronization
- semaphores and synchronization problems
4: Memory Hierarchy and Virtual Memory:
- memory hierarchy
- main memory management and paging
- virtual memory
5: File System:
- the file concept and attributes
- file system structure and implementation
- mass storage structure
Networks
6: Transport layer:
- functions of the transport layer
- UDP protocol
- TCP protocol
- congestion control
7: Network layer:
- functions of the network layer
- IP addressing
- routing algorithms
8: LAN, Wireless LAN, physical layer basics:
- link layer functions
- CSMA/CD and Ethernet LANs
- radio communication issues
- 802.11 WLAN
Prerequisites
The
fundamental concepts taught in the following courses: Computer
Architecture, Programming 1 and Programming 2
Teaching form
Classroom lectures, e-learning exercises and self-assessments and on-line tutoring
The course will be held in Italian.
Textbook and teaching resource
A. Silberschatz, P. Galvin, G. Gagne, "Sistemi Operativi - concetti ed esempi", 10th Edition, Pearson, ISBN: 978-88-9190-455-3
J. Kurose, K. Ross, "Reti di Calcolatori e Internet", 7th Edition, Pearson, ISBN: 978-88-9190-254-2
On-line lessons, exercises and other material
Semester
Second year, first semester
Assessment method
The assessment consists in a written test, with the possibility of partial intermediate tests (in itinere).
There are two in itinere tests and are held in the middle and at the end of the course. It is necessary to pass both of them to pass the exam. In the event that one of the two in itinere tests has not been passed or has not been sustained, it is possible to recover it in the first exam session, provided that the other test has been positively passed. Passing only one of the two in itinere tests does not give rise to any bonus for the subsequent full examination tests.
The tests include both multiple choice questions and open-ended questions, requiring a reasoned argument on one of the course topics. Open-ended questions are only assessed if the student has correctly answered at least 50% of the multiple choice questions. Only the second of the partial intermediate tests includes open-ended questions.
The following table shows the composition of the exams, with the division of the questions in the two parts of the course (Networks and Operating Systems)
Test |
Multiple choice (Networks) |
Multiple choice (OS) |
Open (Networks) |
Open (OS) |
I in itinere |
8 |
6 |
- |
- |
II in itinere |
5 |
7 |
1 |
1 |
Full exam |
8 |
8 |
1 |
1 |
Office hours
Prof. Braione: by appointment via email
Prof. Dominoni: by appointment via email
Prof. Ferretti:
Key information
Staff
-
Pietro Braione
-
Matteo Alessandro Dominoni
-
Claudio Ferretti
-
Stefano Pinardi
-
Samuele Redaelli