Lo studente che supera con successo il corso conoscerà i concetti di base relativi al funzionamento interno dei sistemi operativi, della schedulazione di processi, 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, process scheduling, concurrent and distributed programming, network and system security. In addition, students will acquire knowledge on Unix-based operating systems and their programming, with particular reference to the system primitives offered by such systems.
La verifica finale prevede:
- Lo sviluppo in gruppo di un progetto software con specifiche assegnati dai docenti anno per anno. I gruppi devono essere composti da tre studenti. Gli studenti dovranno discutere il loro progetto durante un ricevimento. Il progetto non prevede un voto, ma la sua sufficienza è prerogativa per accedere alla prova orale finale.
- Una prova orale finale, in cui gli studenti saranno valutati sulla base della loro conoscenza e della loro abilità nel discutere tutto il contenuto del corso.
The final verification includes:
- The team development of a software project with specifications assigned by teachers year by year. Teams should consist of three students. Students will have to discuss their project during a reception. The project does not include a vote, but its sufficiency is the prerogative to access the final oral exam.
- A final oral exam, in which students will be evaluated on the basis of their knowledge and their ability to discuss all the content of the course.
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.
Il progetto è valutato in base alla sua attinenza alle specifiche, e in base al corretto uso delle tecniche di programmazione spiegate a lezione.
Durante la prova orale lo studente sarà valutato in base alle sue capacità di analizzare le problematiche e le funzionalità dei sistemi operativi e delle applicazioni basate su sistemi Unix.
The project is evaluated on the basis of its relevance to the specifications, and on the correct use of the programming techniques explained in class.
During the oral exam the student will be evaluated on the basis of his ability to analyze the problems and functionalities of operating systems and applications based on Unix systems.
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 discussione del progetto sarà valutata la correttezza rispetto alle specifiche e delle tecniche di programmazione spiegate a lezione.
During the discussion of the project will be evaluated the correctness with respect to the specifications and programming techniques explained in class.
Programmazione in 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. Fondamenti di reti di calcolatori. Sicurezza di sistema. Crittografia. Autenticazione e firma digitale.
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.
Operating system basics. Processes and threads. Scheduling algorithms. Concurrent programming. Communication between processes. Shared memory and message exchange model. Distributed programming. Fundamentals of computer networks. System security. Cryptography. Authentication and digital signature.
Architecture of Unix systems, use of the Unix shell, primitives for unbuffered I/O, I/O standard library, primitives to interact with the File System, primitives for process management, primitives for inter-process communications, primitives for inter-platform communications via sockets.
“Modern Operating Systems (4th ed.)”, Andrew S. Tanenbaum and Herbert Bos. 2014. Prentice Hall Press, USA.
“Computer Networks (5th ed.)”, Andrew S. Tanenbaum and David J. Wetherall. 2010. Prentice Hall Press, USA.
“Advanced Programming in the UNIX environment”, W. R. Stevens and S. A. Rago. Addison-Wesley.
Altro materiale fornito dai docenti (slide).
“Modern Operating Systems (4th ed.)”, Andrew S. Tanenbaum and Herbert Bos. 2014. Prentice Hall Press, USA.
“Computer Networks (5th ed.)”, Andrew S. Tanenbaum and David J. Wetherall. 2010. Prentice Hall Press, USA.
“Advanced Programming in the UNIX environment”, W. R. Stevens and S. A. Rago. Addison-Wesley.
Other material provided by teachers (slides).
Studiare su libri di testo, relativamente ai capitoli toccati dal programma del corso, e sulle slide fornite dai docenti.
Study on textbooks, relative to the chapters touched by the course program, and on the slides provided by the teachers.
Discussione progetto di gruppo ed esame orale.
Team project discussion and oral exam.