Lo studente che supera con successo il corso conoscerà i concetti di base relativi al funzionamento interno dei sistemi operativi, della programmazione concorrente e distribuita, della sicurezza di rete e di sistema. Inoltre, gli studenti acquisiranno conoscenze su sistemi operativi basati su Unix e sulla loro programmazione, con particolare riferimento alle primitive di sistema offerte da tali sistemi.
The student who successfully passes the course will know the basic concepts related to the internal functioning of operating systems, concurrent and distributed programming, network and system security. Furthermore, students will acquire knowledge on Unix-based operating systems and their programming, with particular reference to the system primitives offered by such systems.
Il corso prevede una prova orale finale, in cui gli studenti saranno valutati sulla base della loro conoscenza e della loro abilità nel discutere le funzionalità interne di un sistema operativo.
The course includes a final oral exam, in which students will be assessed on the basis of their knowledge and ability to discuss the internal functionalities of an operating system.
Gli studenti acquisiranno le capacità necessarie a sfruttare le caratteristiche di sistemi operativi basati su Unix in fase di progetto di nuove applicazioni.
Students will acquire the skills necessary to exploit the characteristics of Unix-based operating systems when designing new applications.
Durante la prova orale gli studenti saranno valutati in base alle loro capacità di analizzare le problematiche/funzionalità di applicazioni basate su sistemi Unix e di svilupparne di nuove.
During the oral exam, students will be assessed on their ability to analyze the problems / functionalities of applications based on Unix systems and to develop new ones.
Si porrà particolare attenzione sull’accuratezza e sulla precisione nella discussione delle problematiche connesse con l’utilizzo di sistemi operativi in ambienti basati su Unix, e delle librerie di sistema da essi offerte.
Particular attention will be paid to accuracy and precision in discussing the issues associated with the use of operating systems in Unix-based environments, and the system libraries they offer.
Durante la prova orale sarà valutato il grado di accuratezza e precisione delle attività svolte.
During the oral exam the degree of accuracy and precision of the activities carried out will be assessed.
Programmazione in C/C++.
C/C++ programming.
Corso erogato dal vivo.
Attività di apprendimento:
seguire le lezioni
studio individuale
lavoro di laboratorio
Frequenza: consigliata
Metodi di insegnamento:
lezioni frontali
laboratori
Course delivered live.
Learning activities:
attend the lessons
individual study
laboratory work
Frequency: recommended
Teaching methods:
frontal lessons
laboratories
Concetti di base sui sistemi operativi. Processi e thread. Algoritmi di scheduling. Programmazione concorrente. Comunicazione tra processi. Modello a memoria condivisa e a scambio di messaggi. Programmazione distribuita. Modello client-server e peer-to-peer. Interfaccia socket. Sistemi operativi Windows. Sicurezza. Minacce e attacchi. Crittografia. Segretezza. Integrità dei messaggi. Firma digitale. Autenticazione. E-mail sicura. Firewall e altre difese.
Architettura dei sistemi Unix, utilizzo della shell di Unix, primitive per unbuffered I/O, I/O standard library, primitive per interagire con il File System, primitive per la gestione dei processi, primitive per comunicazioni inter-processo, primitive per comunicazioni inter-piattaforma tramite socket.
Basic concepts on operating systems. Processes and threads. Scheduling algorithms. Concurrent programming. Communication between processes. Shared memory and message exchange models. Distributed programming. Client-server and peer-to-peer models. Socket interface. Windows operating systems. Safety. Threats and attacks. Encryption. Secrecy. Integrity of messages. Digital signature. Authentication. Secure email. Firewall and other defenses.
Unix systems architecture, use of the Unix shell, primitives for unbuffered I/O, I/O standard library, primitives for interacting with the File System, primitives for process management, primitives for inter-process communication, primitives for inter-communication -platform via socket.
“Operating System Concepts, 10th Edition”, A. Silberschatz, P. B. Galvin, G. Gagne, edito da Wiley.
“Computer networks, 6th Edition”, J. F. Kurose, K. W. Ross, edito da Pearson.
“Advanced Programming in the UNIX environment”, W. R. Stevens, S. A. Rago, edito da Addison-Wesley.
Altro materiale fornito dal docente (slide).
“Operating System Concepts, 10th Edition”, A. Silberschatz, P. B. Galvin, G. Gagne, edited by Wiley.
“Computer networks, 6th Edition”, J. F. Kurose, K. W. Ross, edited by Pearson.
“Advanced Programming in the UNIX environment”, W. R. Stevens, S. A. Rago, edited by Addison-Wesley.
Other material provided by the teacher (slides).
Studiare su libri di testo, relativamente ai capitoli toccati dal programma del corso.
Study on textbooks, relatively to the chapters touched by the course program.
Esame orale.
Oral test.