Skip to content

Free University of Bozen-Bolzano

Operating Systems

Semester 2 · 76270 · Bachelor in Computer Science · 9CP · EN · IT


This course belongs to the type "Attività formative di base" and the subject area is "Informatica".

The goal of this module is to provide students with a solid understanding of operating systems and their core components and functionalities, the fundamentals of programming in C, scheduling algorithms, process management and synchronization, as well as memory management techniques.

Lecturers: Andrea Alexander Janes, Nicola Gigante

Teaching Hours: 50
Lab Hours: 40
Mandatory Attendance: Attendance is not compulsory; non-attending students may contact the lecturer at the start of the course to get support on the modalities of the independent study.

Course Topics
- Operating Systems Structures - Processes, Threads and Concurrency - CPU Scheduling and Synchronization - Memory and Mass-Storage - I/O, File Systems - Networks and Distributed Systems - Data types, variables, operators, control structures (loops, conditionals), functions, and pointers - Dynamic memory allocation, arrays, structures, linked lists, stacks, and queues - File handling, bitwise operations, multi-file programs, debugging, and optimization

Teaching format
The course includes frontal lectures and lab sessions.

Educational objectives
Knowledge and Understanding - Know the fundamental principles of programming. - Know the innovative aspects of the last generation of operating systems. Applying knowledge and understanding - Ability to develop programs to interact with microcontrollers and the operating systems of modern computers. Ability to make judgments - Be able to work autonomously according to the own level of knowledge and understanding. Communication skills - Be able to use one of the three languages English, Italian and German, and be able to use technical terms and communication appropriately. Learning skills - Have developed learning capabilities to pursue further studies with a high degree of autonomy. - Be able to follow the fast technological evolution and to learn cutting edge IT technologies and innovative aspects of last generation information systems.

Assessment
Assessment includes programming assignments and projects aimed at implementing operating system functionalities or simulating system behavior, as well as a written exam designed to evaluate the understanding of fundamental concepts and in-depth knowledge of operating systems. The exam features open-ended questions that cover both theoretical topics and practical lab exercises. Non-attending students are expected to contact the lecturer at the beginning of the course to arrange an appropriate plan for independent study.

Evaluation criteria
The final grade is a weighted average of the grades obtained in the two modules: Operating Systems and Networking (70%) and Programming in C (30%). In each module, the grade is based entirely on a written exam, which consists of two parts: a written part (counting 2/3 of the exam) assessing conceptual understanding, problem-solving skills, and the ability to explain key principles, and a practical part (counting 1/3 of the exam) evaluating hands-on proficiency in applying the concepts through code. The practical part is assessed based on the correctness of the solution, the structure and readability of the code, and the ability to explain the implementation. Attending students (attendance will be verified) can cover the practical part (1/3 of the exam) during the semester by participating in lab sessions and submitting exercises. Working students or those who do not attend the labs can present or solve a sub-set of the lab exercises during the final exam. A passing grade in both parts is required to pass the module. Project grades remain valid for the entire academic year. All grades reflect both correctness and, to a lesser extent, clarity of answers. Attending and non-attending students are assessed in the same way.

Required readings
  • Abraham Silberschatz, Peter Baer Galvin, Greg Gagne, and Riccardo Melen. Sistemi operativi. Concetti ed esempi. Ediz. Mylab. Con Contenuto digitale per accesso online. Pearson, 10th edition, February 2019. ISBN 978-88-919-0455-3. 
  • C tutorial at https://www.w3schools.com/c/ 


Supplementary readings
  • Burattini and P. Chianese. Che C serve? Per iniziare a programmare. Maggioli Editore, 2nd edition, 2016. ISBN 978-88-916-1173-4. 
  • Andrew Tanenbaum and Herbert Bos. Modern Operating Systems. Pearson, Boston, 4th edition, March 2014. ISBN 978-0-13-359162-0. 


Further information
The following software will be used during the course: - Ubuntu (https://ubuntu.com) - C (https://gcc.gnu.org) - Oracle VirtualBox (https://www.virtualbox.org) - Visual Studio Code (https://code.visualstudio.com) - Code Runner (https://marketplace.visualstudio.com/items?itemName=formulahendry.code-runner) - clang-format (https://docs.kernel.org/dev-tools/clang-format.html)


Download as pdf

Sustainable Development Goals
This teaching activity contributes to the achievement of the following Sustainable Development Goals.

4

Modules

Semester 2 · 76270A · Bachelor in Computer Science · 6CP · EN

Module A — Operating Systems M1:Operating Systems and Networking

This course belongs to the type "Attività formative di base" and the subject area is "Informatica".

The goal of this module is to provide students with a solid understanding of operating systems and their core components and functionalities, the fundamentals of programming in C, scheduling algorithms, process management and synchronization, as well as memory management techniques.

Lecturers: Andrea Alexander Janes

Teaching Hours: 40
Lab Hours: 20

Course Topics
- Operating Systems Structures - Processes, Threads and Concurrency - CPU Scheduling and Synchronization - Memory and Mass-Storage - I/O, File Systems - Networks and Distributed Systems

Teaching format
The course includes frontal lectures and lab sessions.

Required readings
  • Abraham Silberschatz, Peter Baer Galvin, Greg Gagne, and Riccardo Melen. Sistemi operativi. Concetti ed esempi. Ediz. Mylab. Con Contenuto digitale per accesso online. Pearson, 10th edition, February 2019. ISBN 978-88-919-0455-3.


Semester 2 · 76270B · Bachelor in Computer Science · 3CP · IT

Module B — Operating Systems M2: Programming in C

This course belongs to the type "Attività formative di base" and the subject area is "Informatica".

The goal of this module is to provide students with a solid understanding of operating systems and their core components and functionalities, the fundamentals of programming in C, scheduling algorithms, process management and synchronization, as well as memory management techniques.

Lecturers: Nicola Gigante

Teaching Hours: 10
Lab Hours: 20

Request info