After finishing the course, student should demonstrate the following skills:
1) Ability to differentiate between different process and thread management concepts and compare between different scheduling, synchronization, and deadlock resolving algorithms.
2) Ability to write multi-threading programs.
3) Ability to differentiate between memory management concepts and compare between different replacement and allocation algorithms.
4) Ability to explain basic file systems and Inputs/Output systems concepts.