Course Syllabus
Obiettivi
Alla fine del corso lo studente conoscerà gli elementi base dell'architettura e delle componenti tecniche di un sistema operativo. Sarà in grado di comprendere elementari funzioni software utilizzabili nell'ambito del kernel di un sistema operativo. Inoltre, avrà acquisito le conoscenze fondamentali per comprendere l’architettura e i protocolli principali delle reti di telecomunicazioni basate sullo stack TCP/IP.
Contenuti sintetici
Architettura di un sistema operativo, Processi e Thread, Scheduling e Sincronizzazione, Gestione della Memoria e Memoria Virtuale, Sistemi di I/O, File System, Introduzione a Internet e alle Reti di Telecomunicazioni, Protocolli dello Strato di Trasporto (TCP e UDP), Protocolli dello Strato di Rete (IP), Cenni allo Strato di Collegamento (LAN, WLAN, Protocolli di Accesso Multiplo), Cenni ad Altri Protocolli e Sistemi Rilevanti (DNS, ICMP, ARP).
Programma esteso
Sistemi operativi
1: Architettura di un sistema operativo:
- Funzioni dei sistemi operativi
- Struttura dei sistemi operativi
- 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
- Primitive di sincronizzazione
4: Gestione della Memoria e Memoria Virtuale:
- Gestione della memoria centrale e paginazione
- Memoria virtuale
5: Sistemi di I/O:
- Organizzazione del sottosistema di I/O
- Drivers dei dispositivi
6: File System:
- Concetto di file e attributi
- Modelli di organizzazione del file system
- Allocazione e gestione sulla memoria secondaria
Reti
7: Introduzione alle Reti di Telecomunicazioni e Internet
- Architettura delle reti
- Definizione di protocollo
- La commutazione di pacchetto
- Architettura a strati e incapsulamento
- Indirizzamento IPv4
8 Strato di Trasporto:
- Funzionalità offerte
- Protocollo UDP
- Protocollo TCP
9: Strato di Rete:
- Funzionalità offerte
- Protocollo IP
- Cenni agli algoritmi e protocolli di instradamento
10: Cenni allo Strato di Collegamento
- Funzionalità offerte
- Protocolli di accesso multiplo
- Cenni a Reti Locali (Ethernet) e Wireless LAN (802.11)
11: Cenni ad Altri Protocolli e Sistemi Rilevanti
- Strato Applicativo: DNS
- Strato di Rete: ICMP, ARP
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", 8va Edizione, Pearson, ISBN: 978-88-9191-600-6
Slides delle 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.
Orario di ricevimento
Prof. Braione: su appuntamento via email
Prof. Savi: su appuntamento via email
Aims
The student shall learn the basic architectural elements and technical components of a modern Operating System. The student will be able to understand simple software functions which can be part of an Operating System kernel. Moreover, the student will acquire knowledge about the fundamental architecture and protocols of TCP/IP telecommunication networks.
Contents
Architecture of an Operating System, Processes and Threads, Scheduling and Synchronization, Memory Management and Virtual Memory, I/O Systems, File System, Introduction to Internet and Telecommunication Networks, Transport Layer Protocols (TCP and UDP), Network Layer Protocol (IP), Hints about Data Link Layer (LAN, WLAN, Multiple Access Protocols), Hints about Other Relevant Systems and Protocols (DNS, ICMP, ARP).
Detailed program
Operating Systems
1: The architecture of an Operating System:
- Functions of an Operating System
- Structure of an 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
- Synchronization primitives
4: Memory Management and Virtual Memory:
- Main memory management and paging
- Virtual memory
5: I/O Systems
- Organization of the I/O subsystem
- Device drivers
5: File System:
- The file concept and attributes
- File system structure and organization models
- Secondary storage organization
Networks
7: Introduction to Telecommunication Networks and Internet
- Network architecture
- Definition of the term “protocol”
- Packet switching
- Layered architecture and encapsulation
- IPv4 addressing
8: Transport Layer
- Offered functionalities
- UDP protocol
- TCP Protocol
9: Network Layer
- Offered functionalities
- IP protocol
- Hints at routing algorithms and protocols
10: Hints at Data Link Layer
- Offered functionalities
- Multiple access protocols
- Hints at Local Area Networks (Ethernet) and Wireless LAN (802.11)
11: Hints at Other Relevant Systems and Protocols
- Application Layer: DNS
- Network Layer: ICMP, ARP
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 (also available in English, entitled "Operating Systems Concepts", 10th Edition)
J. Kurose, K. Ross, "Reti di Calcolatori e Internet", 8va Edizione, Pearson, ISBN: 978-88-9191-600-6 (also available in English, entitled “Computer Networking: A Top-Down Approach”, 8th Edition)
Slides of lessons, exercises and other material will be available on-line
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.
Office hours
Prof. Braione: by appointment via email
Prof. Savi: by appointment via email
Key information
Staff
-
Pietro Braione
-
Samuele Redaelli
-
Marco Savi
-
Jacopo Maltagliati