Operating Systems

Course Description

An operating system is a set of programs that act as an intermediary between a user of a computer, the computer hardware and the applications programs. The purpose of an operating system is to provide an environment in which a user can execute programs in a convenient and efficient manner.

General Competencies

Students will be acquainted with functioning of modern operating systems. Students will be able to use the standard programming tools to develop program modules which include interrupts handling, multithreading, synchronization mechanisms and inter-process communication.

Learning Outcomes

  1. write an multithreaded program and program which creates multiple processes
  2. demonstrate how interrupt service routine works
  3. apply synchronization mechanisms
  4. list components of operating system kernel
  5. analyze deterministic and non-deterministic task system behaviour
  6. list and explain CPU scheduling algorithms
  7. employ memory allocation mechanisms
  8. develop file-system functions

Forms of Teaching


Teaching is organized into two teaching cycles (15-week classes, 5 hours per week). First cycle consists of 7-week classes and midterm exam. Second cycle consists of 6-week classes and final exam.


Short tests. Midterm exam. Final exam.

Laboratory Work

5 laboratory exercises



Programming Exercises

Programming tasks.

Grading Method

Continuous Assessment Exam
Type Threshold Percent of Grade Comment: Percent of Grade
Laboratory Exercises 0 % 16 % 0 % 0 %
Homeworks 0 % 4 % 0 % 0 %
Quizzes 0 % 10 % 0 % 0 %
Mid Term Exam: Written 0 % 30 % 0 %
Final Exam: Written 0 % 40 %
Exam: Written 50 % 50 %
Exam: Oral 50 %

Week by Week Schedule

  1. Introduction. Operating system roles. Interfaces. Computer and operating system components. Operating system services. Model of simple computer. The role of processor and memory in a simple computer. Računalni proces. Zamjena konteksta. Threads. Processes. Context switching.
  2. I/O structure. Interrupts. Interrupt service routine. Interrupts handling. Transferring block of data. Direct Memory Access (DMA) devices.
  3. Basic terms: programs, tasks, processes and threads. Multithreading. Independent and cooperating threads. Critical regions. Mutual-exclusion algorithms. Dekker's algorithm. Peterson's algorithm.
  4. Mutual-exclusion for any number of concurrent threads. Lamport's protocol. Hardware support for mutual-exclusion. Simple kernel model. Kernel data structures.
  5. Thread descriptor. Thread states. Entering and leaving kernel. Mutual-exclusion and synchronization: semaphores.
  6. Basic I/O kernel functions. Kernel implementation in multiprocessor system. Producer and consumer problem. Interprocess communication. Bounded and unbounded buffer problem. Message queue.
  7. Thread synchronization. Deadlock and starvation. Avoiding deadlock. Necessary conditions for deadlock. Dining-philosophers problem. Monitors. Synchronization examples with monitors.
  8. Midterm exam
  9. Introduction to computer systems behaviour analysis. Periodic and aperiodic tasks. Deterministic task system behaviour. Stochastic task system models.
  10. Poisson distribution of task arrivals. Exponential distribution for processing time. CPU scheduling. First-come, first-served scheduling. Priority scheduling. Round-robin scheduling.
  11. Logical and physical address space. Secondary-storage structure. Memory allocation. Internal and external fragmentation.
  12. Segmentation. Paging. Virtual memory.
  13. Demand paging. Page-replacement algorithms.
  14. File-system. File-system organization. Disk free space management. File descriptor. Typical file-system functions.
  15. Final exam

Study Programmes

University undergraduate
Computing (study)
(3. semester)


Budin, L.; Golub, M; Jakobovic, D., Jelenkovic, L (2010.), Operacijski sustavi, Element, Zagreb
Silberschatz, A., P.B. Galvin, G. Gagne (2003.), Operating Systems Concepts, John Wiley&Sons, New York
Tannenbaum, A. S. (2001.), Modern Operating Systems, Prentice Hall
Silberschatz, A., P.B. Galvin, G. Gagne (2000.), Applied Operating Systems Concepts, John Wiley&Sons, New York


Laboratory exercises

Grading System

ID 31501
  Winter semester
L1 English Level
L1 e-Learning
75 Lecturers
0 Exercises
15 Laboratory exercises


88 Excellent
75 Very Good
63 Good
50 Acceptable