LABORATORY FOR OPERATING SYSTEMS
Learning outcomes of the course unit
This class offers an introduction to Operating Systems, with a particular focus on linux and unix based systems. The goal is to provide a method and the tools to program the shell and control the system (C and Java).
Prerequisites
None.
Course contents summary
Unix/Linux OS. History, structure and user interface.
Unix shell. Bash shell, shell scripting, filters.
System Programming in C. Syscalls and system libraries, process control, interprocess communication, threads and multithreading, file-system access and I/O.
System Programming in Java. Introduction, language syntax, OOP, exceptions, Thread, Applet.
Recommended readings
http://www.pluto.linux.it/ildp/HOWTO/Bash-Prog-Intro-HOWTO.html
http://it.tldp.org/guide/abs/index.html
http://www.eng.hawaii.edu/Tutor/Make/index.html
www.doxygen.org
http://scuola.linux.it/docs/prg_C/cgiprg15.html
http://gapil.firenze.linux.it/download.html
http://www.lilik.it/~mirko/gapil/gapilse40.html
http://en.wikipedia.org/wiki/Dining_philosophers_problem
Teaching methods
Lectures and assisted programming. Final project for each student to test the newly acquired skills.
The exam is composed of a evaluation of exercises assigned during classes and of the final project. An oral examination is required for the discussion of such work.