Table of Contents
Operating Systems Course
Teacher: Stefano Scanzio
www: https://www.skenz.it/ss
email: stefano.scanzio [ AT_SYMBOL ] polito.it
News
- [2024/11/27]: Added text of the ninth laboratory, and solutions of the seventh laboratory
- [2024/09/23]: Added all the material of the course
- [2024/09/23]: Added calendar of all the course: calendar
- [2024/09/23]: New research Master Theses (Research thesis, four different topics, starting July-December 2024) (watch the video)
Slides
- u00: Introduction to the course: u00s01-general-introduction.pdf
- u01: Introduction to Operating systems
- Introduction to Operating Systems: u01s01-introduction.pdf
- Operating Systems Classification: u01s02-classification.pdf
- u02: Linux environment
- UNIX & Linux commands: u02s01-commands.pdf
- Filters: u02s04-filters.pdf (Imp. Examples: Filters)
- u03: File system
- Files in Linux: u03s01-file.pdf
- u04: Processes
- Introduction to Linux processes: u04s01-introduction-to-processes.pdf (Examples: u04s01e)
- Theoretical Aspects: u04s02-theoretical-aspects.pdf
- Advanced Control (exec): u04s03-exec.pdf (Examples: u04s03e)
- Signals: u04s04-signals.pdf (Examples: u04s04e)
- Shell commands for process management: u04s05-processes-shell-commands.pdf (Examples: u04s05e)
- Inter process communication (and pipe): u04s06-interProcessCommunication.pdf (Examples: u04s06e)
- Shell commands for Pipes and redirections: u04s07-pipe-shell-commands.pdf (Examples: u04s07e)
- Interrupts (Outside the course topics) Not required at the exam: u04s10-interrupts.pdf
- u05: Threads
- Threads: u05s01-threads.pdf
- Quiz: quiz_threads.pdf (quiz_threads_sol.pdf)
- u06: Shell programming
- Shells: u06s01-shell.pdf
- Shell scripts: u06s02-script.pdf (Imp. Commented Examples: Read files, Arrays (normal and associative)) (Examples: u06s02e)
- Bash script exercises: u06s03-script-exercises.pdf (Imp. Commented Examples: Exam 20140908)
- Quiz: quiz_shell.pdf (quiz_shell_sol.pdf)
- u07: Synchronization
- Critical sections: u07s01-CriticalSections.pdf
- Software solutions: u07s02-Sw-solutions.pdf
- Hardware solutions: u07s03-Hw-solutions.pdf
- Semaphores: u07s04-Semaphores.pdf (Examples: u07s04e01Proc, u07s04e01Thread, u07s04e02Thread) (Imp. Video about semaphores: Semaphores Execution Order)
- Classical Synchronization Problems: u07s05-ClassicalProblems.pdf
- Exercises on Concurrent Programming: u07s06-Esercises.pdf (Examples: u07s06e01Thread)
- u08: CPU Scheduling
- CPU Scheduling: u08s01-scheduling.pdf
- u09: Deadlock
- Definition and modeling u09s01-deadlock.pdf
- Deadlock prevention techniques u10s02-prevention.pdf
- Deadlock avoidance techniques u10s03-avoidance.pdf
- u20: AWK (Outside the course topics) Not required at the exam
- AWK: u20s01-awk.pdf
Slide of the 2021/2022 academic year: slides_202122.zip
Laboratories
If you have not installed the Linux operating system in your PC, to run the virtual machines provided by Politecnico you need to follow this guide: labvdilinux-at-home-eng-v.4.4.1.pdf (Remember that you have to download and install into your PC the software Virt-viewer 9.0)
Login link: login link
- Guide to setup Linux in Virtual Box: tutorial_VM.pdf
- Another guide to setup Linux in your PCs: guide
- Lab01: Management of files and directories, Permissions management, Link and comparisons between files, C programs and compilation
- Solution: lab01
- Lab02: Analysis of concurrent programs, System call fork and shell commands related to processes, Precedence graph
- Solution: lab02
- Lab03: System call fork, exec, system
- Solution: lab03
- Lab04: Shell commands for processes and redirection, concurrency using fork() and wait(), use of signals
- Solution: lab04
- Lab05: Signals and pipe, Pipe and synchronization, Command find, Filters
- Solution: lab05
- Lab06: From recursion to concurrency, Concurrent file sorting, Concurrent file sorting and merging
- Solution: lab06
- Lab07: Bash scripts
- Solution: lab07
- Lab08: Access to critical sections, precedence graphs with semaphores
- Lab09: Concurrent programs with semaphores
Guides
- Ubuntu installation: Possible guide to follow to install Ubuntu on the Virtualbox virtual machine https://itsfoss.com/install-linux-in-virtualbox/ (download Ubuntu 18.04 LTS for a stable version, or the latest Ubuntu 19.04)
- Vim: Text editor vimbook-OPL.pdf (book about VIM), vimguide.pdf (most important commands)
- Emacs: Text editor emacs.pdf, Emacs-Beginner-HOWTO.pdf (beginner)
Exams
Cheat sheet
Cheat sheet that can be used during the exam (PRINT them!)
- Cheat Sheet Commands: cheatSheetCommands.pdf
- Cheat Sheet Threads: cheatSheetThreads.pdf
- Cheat Sheet Bash: cheatSheetBash.pdf
- Cheat Sheet All together: cheatSheetAll.pdf
Exam texts and solutions (before the "exam" platform)
- IMP: Exercises from exams (analyzed in class): exercises_exams.pdf (exercises_exams_sol.pdf)
- 2019: 20190905.pdf (20190905_sol.pdf)
- 2020: 20200127.pdf (20200127_sol.pdf), 20200212.pdf (20200212_sol.pdf),20200616e.pdf - exams platform (Video solution: 20200616e_sol), 20200914e.pdf - exams platform (Video solution: 20200914e_sol)
Exam in Italian (before the "exam" platform)
In the following link you can find previous exams with solutions of the Italian version of the course: http://fmgroup.polito.it/quer/teaching/so/teaching.htm
Proposed Theses (Master Degree)
New Master Thesis
New research Master Theses (Research thesis, four different topics, starting July-December 2024) (watch the video)
Thesis proposals can be downloaded here: https://www.skenz.it/ss/theses
If interested, for informations, contact: stefano.scanzio [ AT_SYMBOL ] polito.it www: https://www.skenz.it/ss
If you found any error, or if you want to partecipate to the editing of this wiki, please contact: admin [at] skenz.it
You can reuse, distribute or modify the content of this page, but you must cite in any document (or webpage) this url: https://www.skenz.it/os