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.
- write an multithreaded program and program which creates multiple processes
- demonstrate how interrupt service routine works
- apply synchronization mechanisms
- list components of operating system kernel
- analyze deterministic and non-deterministic task system behaviour
- list and explain CPU scheduling algorithms
- employ memory allocation mechanisms
- 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.Exams
Short tests. Midterm exam. Final exam.Laboratory Work
5 laboratory exercisesConsultations
|Type||Threshold||Percent of Grade||Threshold||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
- 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.
- I/O structure. Interrupts. Interrupt service routine. Interrupts handling. Transferring block of data. Direct Memory Access (DMA) devices.
- Basic terms: programs, tasks, processes and threads. Multithreading. Independent and cooperating threads. Critical regions. Mutual-exclusion algorithms. Dekker's algorithm. Peterson's algorithm.
- Mutual-exclusion for any number of concurrent threads. Lamport's protocol. Hardware support for mutual-exclusion. Simple kernel model. Kernel data structures.
- Thread descriptor. Thread states. Entering and leaving kernel. Mutual-exclusion and synchronization: semaphores.
- Basic I/O kernel functions. Kernel implementation in multiprocessor system. Producer and consumer problem. Interprocess communication. Bounded and unbounded buffer problem. Message queue.
- Thread synchronization. Deadlock and starvation. Avoiding deadlock. Necessary conditions for deadlock. Dining-philosophers problem. Monitors. Synchronization examples with monitors.
- Midterm exam
- Introduction to computer systems behaviour analysis. Periodic and aperiodic tasks. Deterministic task system behaviour. Stochastic task system models.
- Poisson distribution of task arrivals. Exponential distribution for processing time. CPU scheduling. First-come, first-served scheduling. Priority scheduling. Round-robin scheduling.
- Logical and physical address space. Secondary-storage structure. Memory allocation. Internal and external fragmentation.
- Segmentation. Paging. Virtual memory.
- Demand paging. Page-replacement algorithms.
- File-system. File-system organization. Disk free space management. File descriptor. Typical file-system functions.
- Final exam