Table of Contents
Operating Systems Course
Teacher: Stefano Scanzio
www: https://www.skenz.it/ss
email: stefano.scanzio [ AT_SYMBOL ] polito.it
News
- [2024/01/17]: Added all the material of the course
- [2023/12/20]: Updated exam section
- [2023/10/02]: Part of the material of the 2023/2024 academic year was uploaded on the website.
- [2023/10/02]: Added calendar of all the course: calendar
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
In the LAIBs you can use a virtual machine with Ubuntu: guide (link accessible only within the Polito network), 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
- Solution: lab08
- Lab09: Concurrent programs with semaphores
- Solution: lab09
- Lab10: Pseudo-exam test
- Solution: lab10
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 (Research thesis, starting time from now to October 2022)
Thesis about reducing communication latency in TSCH wireless sensor networks by using black and white listening techniques (see 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 (tel. 011 090 5438) 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