SISTEMI OPERATIVI E LABORATORIO
Programming and laboratory
Hence, students have the possibility to immediately put into practice the notions introduced by the teacher.
Knowledge and understanding: the student will acquire specific knowledge about the architecture, the operation and the underlying design principles of a modern operating system. She/He will also learn how to evaluate and how to choose among several operating systems, depending on the purpose of the implementation and on the hardware features.
Applying knowledge and understanding: thanks to the lab activities, the student will get specific skills in the application of the acquired knowledge of operating systems to real case-studies.
Cross-sectoral skills/soft skills
Making judgements: the student will acquire a critical appraisal skill in appropriately selecting technologies, algorithms and solutions according to their outcome on the performance and on the correct operation of an operating system in different application contexts.
Communication skills: the student will learn how to describe an operating system using a technically correct and appropriate terminology.
Learning skills: the student will learn how to be autonomous in expanding his knowledge of operating systems beyond the notions and examples learned and analyzed during the course, discovering and exploiting connections with other courses such as computer architecture, computer networks, and distributed systems.
Laboratory: the UNIX Operating System: structure, user interface, variants (Solaris, Linux). The UNIX shell: – role and variants, – login procedure, – file system organization, – online manual, – the bash shell: pathname expansion, I/O redirection, pipes, background jobs, the history command, command line editing, command completion, – vi and (X)Emacs, – the make command. Main shell commands: – files handling, – processes handling, – mmemory monitoring, – filter commands: searching, sorting, editing. Shell scripts: – variables, – parameter passing, – flow of control structures, – login scripts. C language fundamentals. System Programming: – processes control, – file system, – processes communication, – threads and multithreading.
TESTI DI RIFERIMENTO
A. Silberschatz, P.B. Galvin, G. Gagne, Sistemi operativi (ottava ed.). Pearson, 2009.
A. Tanenbaum, I moderni sistemi operativi (fourth ed.). Pearson (Prentice Hall), 2016.
R. Blum, C. Bresnahan. Linux Command Line and Shell Scripting Bible, 2nd Edition, Wiley, 2011.
I G. Glass, K. Ables. UNIX for Programmers and Users, Prentice Hall, second edition, 1999.
I B.W. Kernighan, D.M. Ritchie. Linguaggio C, second edition, 1989.
I K. Haviland, D. Gray, B. Salama. UNIX System Programming, Addison Wesley, second edition, 1989.