* Load is given in academic hour (1 academic hour = 45 minutes)
COURSE GOALS: 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.
LEARNING OUTCOMES AT THE LEVEL OF THE PROGRAMME:
1. KNOWLEDGE AND UNDERSTANDING
1.4. list and describe basic concepts and abstract principles of computing machines, information and communication technology;
1.5. describe the purpose and use of common software packages;
1.6. list and describe the methods for manipulating data, basic principles of databases and fundamental algorithms in programming;
2. APPLYING KNOWLEDGE AND UNDERSTANDING
2.5. describe the basic concepts of digital technology;
2.6. apply fundamental algorithms in programming;
2.7. use computing technology to solve scientific and technological problems;
2.8. prepare pupils for lifelong learning in digital environment
5. LEARNING SKILLS
5.1. search for and use professional literature as well as any other sources of relevant information
LEARNING OUTCOMES SPECIFIC FOR THE COURSE:
Upon passing the course on Operating Systems, the student will be able to:
* 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
* analyse deterministic and non-deterministic task system behaviour
* list and explain CPU scheduling algorithms
* employ memory allocation mechanisms
Lectures per weeks (15 weeks in total):
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. Computing process. 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
REQUIREMENTS FOR STUDENTS:
Students must complete all mandatory laboratory exercises and cumulatively achieve at least 50% of total points, which include laboratory score, two written exams (midterm and final) and short tests in classroom.
GRADING AND ASSESSING THE WORK OF STUDENTS:
Grading and assessing the work of students during the semesters:
* Short tests in classroom
* Laboratory exercises
* Midterm and final exam
Contributions to the final grade:
* 10% of the grade is carried by short tests in classroom
* 15% of the grade is carried by laboratory exercises
* 30% of the grade is carried by the results of midterm exam
* 45% of the grade is carried by the results of final exam
- L. Budin, M. Golub, D. Jakobovic, L. Jelenkovic, Operacijski sustavi, Element, Zagreb, 2010.